/C-OSD/trunk/CHANGE.LOG |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
18,6 → 18,13 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
20110202-1323 |
*added big speed indicator (credits to: uwerner) |
*added possibility to show GPS-Coordinates during flight |
*added more _brackets_ |
@To see correct corner-chars when using scope, flash the character-set |
included in this release! |
20101218-2030 |
*added _brackets_ to mark a scope when using a second camera |
(might help to remember what the second camera is filming) |
/C-OSD/trunk/README.TXT |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/buttons.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/buttons.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/c-osd.mcm |
---|
15362,145 → 15362,120 |
01010101 |
01010101 |
01010101 |
00000000 |
00000000 |
00000000 |
10101010 |
10101010 |
10101010 |
00000000 |
00000000 |
00000000 |
10101010 |
10100001 |
01010101 |
10101010 |
10100001 |
01010101 |
10101010 |
10100001 |
01010101 |
10101010 |
10100001 |
01010101 |
10101010 |
10100001 |
01010101 |
10101010 |
10100001 |
01010101 |
10101010 |
10100001 |
01010101 |
10101010 |
10100001 |
01010101 |
10101010 |
10100001 |
01010101 |
10101010 |
10100001 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01000000 |
00000000 |
01010101 |
00101010 |
10101000 |
01010101 |
00100000 |
00000000 |
00000000 |
10101010 |
10101010 |
10101010 |
00000000 |
00000000 |
00000000 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
00000000 |
00000000 |
00000000 |
10101010 |
10101010 |
10101010 |
00000000 |
00000000 |
00000000 |
10101000 |
01010101 |
00000001 |
01010101 |
10101000 |
01010101 |
01010101 |
10101000 |
01010101 |
01010101 |
10101000 |
01010101 |
01010101 |
10101000 |
01010101 |
01010101 |
10101000 |
01010101 |
01010101 |
10101000 |
01010101 |
01010101 |
10101000 |
01010101 |
01010101 |
10101000 |
01010101 |
01010101 |
10101000 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
00000000 |
00000001 |
01010101 |
00101010 |
10101000 |
01010101 |
00000000 |
00000000 |
10101010 |
10101010 |
10101010 |
00000000 |
00000000 |
00000000 |
00001000 |
01010101 |
01010101 |
01001000 |
01010101 |
01010101 |
01001000 |
01010101 |
01010101 |
01001000 |
01010101 |
01010101 |
01001000 |
01010101 |
01010101 |
01001000 |
01010101 |
01010101 |
01001000 |
01010101 |
01010101 |
01001000 |
01010101 |
01010101 |
00000000 |
00000000 |
00000000 |
10101010 |
10101010 |
10101010 |
00000000 |
00000000 |
00000000 |
01001000 |
01010101 |
01010101 |
01000000 |
01010101 |
01010101 |
01010101 |
15513,31 → 15488,41 |
01010101 |
01010101 |
01010101 |
00000001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100000 |
00000000 |
01010101 |
00101010 |
10101000 |
01010101 |
01000000 |
00000000 |
00000000 |
10101010 |
10101010 |
10101010 |
00000000 |
00000000 |
00000000 |
01010101 |
01010101 |
01010101 |
15554,54 → 15539,53 |
01010101 |
01010101 |
01010101 |
00000101 |
01010101 |
01010101 |
10100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01010101 |
00100001 |
01010101 |
01000000 |
01010101 |
00100001 |
01010101 |
01001000 |
01010101 |
00100001 |
01010101 |
01001000 |
01010101 |
00100001 |
01010101 |
01001000 |
01010101 |
00100001 |
01010101 |
01001000 |
01010101 |
00100001 |
01010101 |
01001000 |
01010101 |
00100001 |
01010101 |
01001000 |
01010101 |
00100001 |
01010101 |
01001000 |
01010101 |
10100001 |
01010101 |
01001000 |
01010101 |
00000101 |
00000000 |
00001000 |
01010101 |
00101010 |
10101000 |
01010101 |
00000000 |
00000001 |
01010101 |
01010101 |
01010101 |
15618,6 → 15602,22 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
01010101 |
00000000 |
00000000 |
00000001 |
/C-OSD/trunk/characters.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
33,7 → 33,7 |
*/ |
// chars 0 - 255 with 54 byte per char |
// orginal filename: c-osd.mcm |
// Sat, 18 Dec 2010 19:59:48 +0100 |
// Wed, 02 Feb 2011 12:29:26 +0100 |
5558,95 → 5558,95 |
// 0 ------------ |
// 1 ############ |
// 2 |
// 3 ############ |
// 4 #----- |
// 5 #----- |
// 6 #----- |
// 7 #----- |
// 8 #----- |
// 9 #----- |
// 10 #----- |
// 11 #----- |
// 12 #----- |
// 13 #----- |
// 14 ############ |
// 15 |
// 16 ############ |
// 17 ------------ |
// 1 ------------ |
// 2 ------------ |
// 3 ------------ |
// 4 ------------ |
// 5 ------------ |
// 6 -----####### |
// 7 ----# # |
// 8 ----# ###### |
// 9 ----# #----- |
// 10 ----# #----- |
// 11 ----# #----- |
// 12 ----# #----- |
// 13 ----# #----- |
// 14 ----# #----- |
// 15 ----# #----- |
// 16 ----# #----- |
// 17 ----###----- |
// 000000000011 |
// 012345678901 |
const char chr240[] PROGMEM = {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0xaa, 0xa1, 0x55, 0xaa, 0xa1, 0x55, 0xaa, 0xa1, 0x55, 0xaa, 0xa1, 0x55, 0xaa, 0xa1, 0x55, 0xaa, 0xa1, 0x55, 0xaa, 0xa1, 0x55, 0xaa, 0xa1, 0x55, 0xaa, 0xa1, 0x55, 0xaa, 0xa1, 0x55, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55}; |
const char chr240[] PROGMEM = {0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x40,0x00,0x55,0x2a,0xa8,0x55,0x20,0x00,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x01,0x55}; |
// 0 ------------ |
// 1 ############ |
// 2 |
// 3 ############ |
// 4 #-------- |
// 5 #-------- |
// 6 #-------- |
// 7 #-------- |
// 8 #-------- |
// 9 #-------- |
// 10 #-------- |
// 11 #-------- |
// 12 #-------- |
// 13 #-------- |
// 14 ############ |
// 15 |
// 16 ############ |
// 17 ------------ |
// 1 ------------ |
// 2 ------------ |
// 3 ------------ |
// 4 ------------ |
// 5 ------------ |
// 6 #######----- |
// 7 # #---- |
// 8 ###### #---- |
// 9 -----# #---- |
// 10 -----# #---- |
// 11 -----# #---- |
// 12 -----# #---- |
// 13 -----# #---- |
// 14 -----# #---- |
// 15 -----# #---- |
// 16 -----# #---- |
// 17 -----###---- |
// 000000000011 |
// 012345678901 |
const char chr241[] PROGMEM = {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0xa8, 0x55, 0x55, 0xa8, 0x55, 0x55, 0xa8, 0x55, 0x55, 0xa8, 0x55, 0x55, 0xa8, 0x55, 0x55, 0xa8, 0x55, 0x55, 0xa8, 0x55, 0x55, 0xa8, 0x55, 0x55, 0xa8, 0x55, 0x55, 0xa8, 0x55, 0x55, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55}; |
const char chr241[] PROGMEM = {0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00,0x01,0x55,0x2a,0xa8,0x55,0x00,0x08,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x40,0x55}; |
// 0 ------------ |
// 1 ############ |
// 2 |
// 3 ############ |
// 4 ------------ |
// 5 ------------ |
// 6 ------------ |
// 7 ------------ |
// 8 ------------ |
// 9 ------------ |
// 10 ------------ |
// 11 ------------ |
// 0 ----###----- |
// 1 ----# #----- |
// 2 ----# #----- |
// 3 ----# #----- |
// 4 ----# #----- |
// 5 ----# #----- |
// 6 ----# #----- |
// 7 ----# #----- |
// 8 ----# #----- |
// 9 ----# ###### |
// 10 ----# # |
// 11 -----####### |
// 12 ------------ |
// 13 ------------ |
// 14 ############ |
// 15 |
// 16 ############ |
// 14 ------------ |
// 15 ------------ |
// 16 ------------ |
// 17 ------------ |
// 000000000011 |
// 012345678901 |
const char chr242[] PROGMEM = {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55}; |
const char chr242[] PROGMEM = {0x55,0x01,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x21,0x55,0x55,0x20,0x00,0x55,0x2a,0xa8,0x55,0x40,0x00,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55}; |
// 0 ------------ |
// 1 ##---------- |
// 2 #--------- |
// 3 # #--------- |
// 4 # #--------- |
// 5 # #--------- |
// 6 # #--------- |
// 7 # #--------- |
// 8 # #--------- |
// 9 # #--------- |
// 10 # #--------- |
// 11 # #--------- |
// 12 # #--------- |
// 13 # #--------- |
// 14 # #--------- |
// 15 #--------- |
// 16 ##---------- |
// 0 -----###---- |
// 1 -----# #---- |
// 2 -----# #---- |
// 3 -----# #---- |
// 4 -----# #---- |
// 5 -----# #---- |
// 6 -----# #---- |
// 7 -----# #---- |
// 8 -----# #---- |
// 9 ###### #---- |
// 10 # #---- |
// 11 #######----- |
// 12 ------------ |
// 13 ------------ |
// 14 ------------ |
// 15 ------------ |
// 16 ------------ |
// 17 ------------ |
// 000000000011 |
// 012345678901 |
const char chr243[] PROGMEM = {0x55, 0x55, 0x55, 0x05, 0x55, 0x55, 0xa1, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0x21, 0x55, 0x55, 0xa1, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55}; |
const char chr243[] PROGMEM = {0x55,0x40,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x55,0x48,0x55,0x00,0x08,0x55,0x2a,0xa8,0x55,0x00,0x01,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55}; |
// 0 ------------ |
5924,7 → 5924,6 |
// 012345678901 |
const char chr255[] PROGMEM = {0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}; |
const char *chars[] PROGMEM = {chr0, chr1, chr2, chr3, chr4, chr5, chr6, chr7, chr8, chr9, chr10, chr11, chr12, chr13, chr14, chr15, chr16, chr17, chr18, chr19, chr20, chr21, chr22, chr23, chr24, chr25, chr26, chr27, chr28, chr29, chr30, chr31, chr32, chr33, chr34, chr35, chr36, chr37, chr38, chr39, chr40, chr41, chr42, chr43, chr44, chr45, chr46, chr47, chr48, chr49, chr50, chr51, chr52, chr53, chr54, chr55, chr56, chr57, chr58, chr59, chr60, chr61, chr62, chr63, chr64, chr65, chr66, chr67, chr68, chr69, chr70, chr71, chr72, chr73, chr74, chr75, chr76, chr77, chr78, chr79, chr80, chr81, chr82, chr83, chr84, chr85, chr86, chr87, chr88, chr89, chr90, chr91, chr92, chr93, chr94, chr95, chr96, chr97, chr98, chr99, chr100, chr101, chr102, chr103, chr104, chr105, chr106, chr107, chr108, chr109, chr110, chr111, chr112, chr113, chr114, chr115, chr116, chr117, chr118, chr119, chr120, chr121, chr122, chr123, chr124, chr125, chr126, chr127, chr128, chr129, chr130, chr131, chr132, chr133, chr134, chr135, chr136, chr137, chr138, chr139, chr140, chr141, chr142, chr143, chr144, chr145, chr146, chr147, chr148, chr149, chr150, chr151, chr152, chr153, chr154, chr155, chr156, chr157, chr158, chr159, chr160, chr161, chr162, chr163, chr164, chr165, chr166, chr167, chr168, chr169, chr170, chr171, chr172, chr173, chr174, chr175, chr176, chr177, chr178, chr179, chr180, chr181, chr182, chr183, chr184, chr185, chr186, chr187, chr188, chr189, chr190, chr191, chr192, chr193, chr194, chr195, chr196, chr197, chr198, chr199, chr200, chr201, chr202, chr203, chr204, chr205, chr206, chr207, chr208, chr209, chr210, chr211, chr212, chr213, chr214, chr215, chr216, chr217, chr218, chr219, chr220, chr221, chr222, chr223, chr224, chr225, chr226, chr227, chr228, chr229, chr230, chr231, chr232, chr233, chr234, chr235, chr236, chr237, chr238, chr239, chr240, chr241, chr242, chr243, chr244, chr245, chr246, chr247, chr248, chr249, chr250, chr251, chr252, chr253, chr254, chr255}; |
/** |
/C-OSD/trunk/characters.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/config.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
37,11 → 37,11 |
uint8_t EEMEM ee_COSD_FLAGS_MODES = 0; |
uint8_t EEMEM ee_COSD_FLAGS_CONFIG = 0; |
uint8_t EEMEM ee_COSD_DISPLAYMODE = 0; |
uint8_t EEMEM ee_COSD_SCOPE [8] = { |
5, 5, |
25, 5, |
5, 10, |
25, 10 |
uint8_t EEMEM ee_COSD_SCOPE [12] = { |
5, 5, 0, |
25, 5, 0, |
5, 10, 0, |
25, 10, 0 |
}; |
// video modes |
64,7 → 64,7 |
COSD_FLAGS_CONFIG = eeprom_read_byte(&ee_COSD_FLAGS_CONFIG); |
COSD_DISPLAYMODE = eeprom_read_byte(&ee_COSD_DISPLAYMODE); |
//if (verbose) write_ndigit_number_u(23, 11, COSD_DISPLAYMODE, 2, 0); |
for (int i = 0; i < 8; i++) { |
for (int i = 0; i < 12; i++) { |
scope[i] = eeprom_read_byte(&ee_COSD_SCOPE[i]); |
} |
} else { |
81,7 → 81,7 |
eeprom_write_byte(&ee_COSD_FLAGS_MODES, COSD_FLAGS_MODES); |
eeprom_write_byte(&ee_COSD_FLAGS_CONFIG, COSD_FLAGS_CONFIG); |
eeprom_write_byte(&ee_COSD_DISPLAYMODE, COSD_DISPLAYMODE); |
for (int i = 0; i < 8; i++) { |
for (int i = 0; i < 12; i++) { |
eeprom_write_byte(&ee_COSD_SCOPE[i], scope[i]); |
} |
} |
227,14 → 227,14 |
void config_menu_drawings(uint8_t chosen) { |
static uint8_t old_y = 0; |
uint8_t x = MENU_LEFT, y = MENU_TOP, line = MENU_TOP; |
if (chosen > 5 && chosen < 13) { // right |
//************************************************* 13 to 14 |
if (chosen > 6 && chosen < 15) { // right |
x = MENU_MIDDLE; |
y = chosen - 6 + MENU_TOP; |
} else if (chosen < 7) { |
y = chosen - 7 + MENU_TOP; |
} else if (chosen < 8) { |
y = chosen + MENU_TOP; |
} else { |
y = chosen - 6 + MENU_TOP; |
y = chosen - 7 + MENU_TOP; |
} |
// clear prevoius _cursor_ and draw current |
267,6 → 267,9 |
write_ascii_string_pgm(MENU_LEFT, ++line, PSTR("A by FC")); |
onoff(MENU_LEFT + 10, line, COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT); |
write_ascii_string_pgm(MENU_LEFT, ++line, PSTR("GPS Pos")); |
onoff(MENU_LEFT + 10, line, COSD_FLAGS_CONFIG & COSD_FLAG_SHOW_COORDS); |
// 2nd col |
line = 2; |
286,6 → 289,9 |
write_ascii_string_pgm(MENU_MIDDLE, ++line, PSTR("Big Vario")); |
onoff(MENU_MIDDLE + 10, line, COSD_FLAGS_MODES & COSD_FLAG_BIGVARIO); |
write_ascii_string_pgm(MENU_MIDDLE, ++line, PSTR("Big Speed")); |
onoff(MENU_MIDDLE + 10, line, COSD_FLAGS_CONFIG & COSD_FLAG_BIGSPEED); |
write_ascii_string_pgm(MENU_MIDDLE, ++line, PSTR("Passive")); |
onoff(MENU_MIDDLE + 10, line, COSD_FLAGS_CONFIG & COSD_FLAG_PASSIVE); |
296,13 → 302,13 |
// bottom |
write_ascii_string_pgm(MENU_LEFT, 9, PSTR("Reset uptime")); |
write_ascii_string_pgm(MENU_LEFT, 10, PSTR("Reset uptime")); |
write_ascii_string_pgm(MENU_LEFT, 10, PSTR("Display Mode")); |
write_ascii_string_pgm(18, 10, (const char *)(pgm_read_word(&(mode->desc)))); |
write_ascii_string_pgm(MENU_LEFT, 11, PSTR("Display Mode")); |
write_ascii_string_pgm(15, 11, (const char *)(pgm_read_word(&(mode->desc)))); |
write_ascii_string_pgm(MENU_LEFT, 11, PSTR("Save config")); |
write_ascii_string_pgm(MENU_LEFT, 12, PSTR("EXIT")); |
write_ascii_string_pgm(MENU_LEFT, 12, PSTR("Save config")); |
write_ascii_string_pgm(MENU_LEFT, 13, PSTR("EXIT")); |
old_y = y; |
} |
324,12 → 330,16 |
clear(); |
draw_scope(); |
_delay_ms(500); |
while (mode < 8) { |
while (mode < 12) { |
if (s2_pressed()) { // next |
mode++; |
_delay_ms(500); |
} else if (s1_pressed()) { |
scope[mode] = (scope[mode] + 1) % (mode % 2 == 0 ? 30 : bottom_line); |
if (mode % 3 == 2) { |
scope[mode] = (scope[mode] + 1) % 2; |
} else { |
scope[mode] = (scope[mode] + 1) % ((mode % 3) % 2 == 0 ? 30 : bottom_line); |
} |
clear(); |
draw_scope(); |
_delay_ms(100); |
359,7 → 369,7 |
while (inmenu) { |
if (s2_pressed()) { |
chosen = (chosen + 1) % 17; |
chosen = (chosen + 1) % 19; |
//if (chosen == 12) chosen = 13; // SKIP unused menu space for now |
config_menu_drawings(chosen); |
_delay_ms(500); |
395,32 → 405,38 |
case 5: // current by fc |
COSD_FLAGS_MODES ^= COSD_FLAG_FCCURRENT; |
break; |
case 6: // 2nd voltage by c-strom |
case 6: // GPS coordinates while flying |
COSD_FLAGS_CONFIG ^= COSD_FLAG_SHOW_COORDS; |
break; |
case 7: // 2nd voltage by c-strom |
COSD_FLAGS_MODES ^= COSD_FLAG_STROMVOLT; |
break; |
case 7: // GPS or BARO height |
case 8: // GPS or BARO height |
COSD_FLAGS_CONFIG ^= COSD_FLAG_GPSHEIGHT; |
break; |
case 8: // Feet and mph? |
case 9: // Feet and mph? |
COSD_FLAGS_CONFIG ^= COSD_FLAG_FEET; |
break; |
case 9: // big vario |
case 10: // big vario |
COSD_FLAGS_MODES ^= COSD_FLAG_BIGVARIO; |
break; |
case 10: // passive |
case 11: // big Speed |
COSD_FLAGS_CONFIG ^= COSD_FLAG_BIGSPEED; |
break; |
case 12: // passive |
COSD_FLAGS_CONFIG ^= COSD_FLAG_PASSIVE; |
break; |
case 11: // scope |
case 13: // scope |
COSD_FLAGS_CONFIG ^= COSD_FLAG_SHOW_SCOPE; |
break; |
case 12: // move scope |
case 14: // move scope |
move_scope(); |
break; |
case 13: // reset uptime |
case 15: // reset uptime |
uptime = 0; |
config_menu_doclick(chosen); |
break; |
case 14: // change mode |
case 16: // change mode |
#if FCONLY |
COSD_DISPLAYMODE = (COSD_DISPLAYMODE + 1) % (sizeof (fcdisplaymodes) / sizeof (displaymode_t)); |
mode = fcdisplaymodes; |
433,11 → 449,11 |
osd_ncmode = (int(*)(void)) pgm_read_word(&mode->dfun); |
#endif |
break; |
case 15: // save |
case 17: // save |
save_eeprom(); |
config_menu_doclick(chosen); |
break; |
case 16: // exit |
case 18: // exit |
inmenu = 0; |
config_menu_doclick(chosen); |
break; |
/C-OSD/trunk/config.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
23,7 → 23,7 |
#define CHECKBYTE1 230 |
#define CHECKBYTE2 32 |
#define CHECKBYTE2 223 |
#define MENU_LEFT 1 |
#define MENU_MIDDLE 15 |
36,7 → 36,7 |
extern volatile uint16_t uptime; |
extern uint8_t scope[8]; |
extern uint8_t scope[12]; |
/** |
* read data saved in eeprom, print out message if <verbose> is set |
/C-OSD/trunk/default/Makefile |
---|
1,7 → 1,24 |
############################################################################### |
# Makefile for the project C-OSD |
############################################################################### |
#/**************************************************************************** |
# * Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
# * admiralcascade@gmail.com * |
# * Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
# * * |
# * This program is free software; you can redistribute it and/or modify * |
# * it under the terms of the GNU General Public License as published by * |
# * the Free Software Foundation; either version 2 of the License. * |
# * * |
# * This program is distributed in the hope that it will be useful, * |
# * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
# * GNU General Public License for more details. * |
# * * |
# * You should have received a copy of the GNU General Public License * |
# * along with this program; if not, write to the * |
# * Free Software Foundation, Inc., * |
# * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
# ****************************************************************************/ |
## General Flags |
PROJECT = C-OSD |
MCU = atmega162 |
/C-OSD/trunk/default/dist.bat |
---|
1,6 → 1,6 |
@echo off |
:: /**************************************************************************** |
:: * Copyright (C) 2010 by Claas Anders "CaScAdE" Rathje * |
:: * Copyright (C) 2010-2011 by Claas Anders "CaScAdE" Rathje * |
:: * admiralcascade@gmail.com * |
:: * Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
:: * * |
19,7 → 19,7 |
:: * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
:: ****************************************************************************/ |
set DATE=20101218-2030 |
set DATE=20110202-1323 |
:: date /T |
/C-OSD/trunk/main.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
84,11 → 84,11 |
uint8_t min_voltage = 0; |
uint8_t max_voltage = 0; |
uint8_t scope[8] = { |
5, 5, |
25, 5, |
5, 10, |
25, 10 |
uint8_t scope[12] = { |
5, 5, 0, |
25, 5, 0, |
5, 10, 0, |
25, 10, 0 |
}; |
// Flags |
/C-OSD/trunk/main.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
97,6 → 97,8 |
#define COSD_FLAG_FEET 8 |
#define COSD_FLAG_PASSIVE 16 |
#define COSD_FLAG_SHOW_SCOPE 32 |
#define COSD_FLAG_SHOW_COORDS 64 |
#define COSD_FLAG_BIGSPEED 128 |
/* ########################################################################## |
* FLAGS only usable during runtime (not saved) |
180,7 → 182,7 |
uint8_t max_voltage; |
// scope for 2nd camera field of view |
uint8_t scope[8]; |
uint8_t scope[12]; |
// Flags |
uint8_t COSD_FLAGS_MODES, COSD_FLAGS_CONFIG, COSD_FLAGS_RUNTIME, COSD_DISPLAYMODE; |
/C-OSD/trunk/max7456_software_spi.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/max7456_software_spi.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/mk-data-structs.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/osd_fcmode_default.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/osd_fcmode_default.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/osd_fcmode_jopl.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/osd_fcmode_jopl.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/osd_helpers.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
328,8 → 328,66 |
*/ |
// save 20 byte :) |
for (int i = 0; i < 4; i++) { |
write_char_xy(scope[i * 2], scope[(i * 2) + 1], 0xEC + i); |
write_char_xy( |
scope[i * 3], |
scope[(i * 3) + 1], |
0xEC + i + (scope[(i * 3) + 2] * 4)); |
} |
} |
/** |
* draw stats |
*/ |
void draw_stats() { |
#if FCONLY |
#else |
uint8_t line = 3; |
write_ascii_string_pgm(1, line, (const char *)(pgm_read_word(&(stats_item_pointers[0])))); // max Altitude |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[1])))); // max Speed |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[2])))); // max Distance |
if (COSD_FLAGS_CONFIG & COSD_FLAG_FEET) { |
write_ndigit_number_s(16, line - 2, max_Altimeter * 32 / 10, 4, 0); |
write_char_xy(20, line - 2, 0x7E); // small feet ft |
write_ndigit_number_u(17, line - 1, (uint16_t)(((uint32_t)max_GroundSpeed * (uint32_t)279) / (uint32_t)12500), 3, 0); |
write_char_xy(20, line - 1, 0x7D); // mp/h |
write_ndigit_number_u(16, line - 0, max_Distance / 10 * 32 / 10, 4, 0); |
write_char_xy(20, line - 0, 0x7E); // small feet ft |
} else { |
write_ndigit_number_s(16, line - 2, max_Altimeter, 4, 0); |
write_char_xy(20, line - 2, 204); // small meters m |
write_ndigit_number_u(17, line - 1, (uint16_t)(((uint32_t)max_GroundSpeed * (uint32_t)9) / (uint32_t)250), 3, 0); |
write_char_xy(20, line - 1, 203); // km/h |
write_ndigit_number_u(16, line - 0, max_Distance / 10, 4, 0); |
write_char_xy(20, line - 0, 204); // small meters m |
} |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[3])))); // min voltage |
write_ndigit_number_u_10th(16, line, min_UBat, 3, 0); |
write_char_xy(20, line, 0x9E); // small V |
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) || (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) { |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[7])))); // ampere |
write_ndigit_number_u_10th(16, line, max_ampere / 10, 3, 0); |
write_char_xy(20, line, 0x9F); // small A |
// wasted mampere in this flight (will count up after landing) |
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) && !(COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) { |
write_ndigit_number_u(21, line, (ampere_wasted / 10) - wasted_ampere_offset, 5, 0); |
} else if (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT) { |
write_ndigit_number_u(21, line, naviData.UsedCapacity - wasted_ampere_offset, 5, 0); |
} |
write_char_xy(26, line, 0xB5); // mah |
} |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[4])))); // max time |
write_time(14, line, max_FlyingTime); |
write_char_xy(20, line, 210); // fly clock |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[5])))); // longitude |
write_gps_pos(14, line, naviData.CurrentPosition.Longitude); |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[6])))); // latitude |
write_gps_pos(14, line, naviData.CurrentPosition.Latitude); |
#endif |
} |
#endif |
/C-OSD/trunk/osd_helpers.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
77,4 → 77,9 |
* draw scope of a second camera |
*/ |
void draw_scope(); |
/** |
* draw stats |
*/ |
void draw_stats(); |
#endif |
/C-OSD/trunk/osd_ncmode_default.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
69,7 → 69,15 |
write_ndigit_number_u(2, top_line, (uint16_t)(((uint32_t)naviData.GroundSpeed * (uint32_t)279) / (uint32_t)12500), 3, 0); |
} else { |
write_ndigit_number_u(2, top_line, (uint16_t)(((uint32_t)naviData.GroundSpeed * (uint32_t)9) / (uint32_t)250), 3, 0); |
// draw big speed-meter only if configure AND not flying OR stats off and not flying |
if ((COSD_FLAGS_CONFIG & COSD_FLAG_BIGSPEED) |
&& ((naviData.FCFlags & FCFLAG_MOTOR_RUN) |
|| !((COSD_FLAGS_RUNTIME & COSD_WASFLYING) && (COSD_FLAGS_MODES & COSD_FLAG_STATS)))) { |
draw_big_variometer(2, 8, (uint16_t)((uint32_t)naviData.GroundSpeed / (uint32_t)125)); |
} |
} |
write_ndigit_number_u(7, top_line, rc_signal, 3, 0); |
if (rc_signal <= RCLVL_WRN && last_RC_Quality > RCLVL_WRN) { |
178,52 → 186,7 |
} |
// stats |
if ((COSD_FLAGS_RUNTIME & COSD_WASFLYING) && (COSD_FLAGS_MODES & COSD_FLAG_STATS)) { |
uint8_t line = 3; |
write_ascii_string_pgm(1, line, (const char *)(pgm_read_word(&(stats_item_pointers[0])))); // max Altitude |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[1])))); // max Speed |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[2])))); // max Distance |
if (COSD_FLAGS_CONFIG & COSD_FLAG_FEET) { |
write_ndigit_number_s(16, line - 2, max_Altimeter * 32 / 10, 4, 0); |
write_char_xy(20, line - 2, 0x7E); // small feet ft |
write_ndigit_number_u(17, line - 1, (uint16_t)(((uint32_t)max_GroundSpeed * (uint32_t)279) / (uint32_t)12500), 3, 0); |
write_char_xy(20, line - 1, 0x7D); // mp/h |
write_ndigit_number_u(16, line - 0, max_Distance / 10 * 32 / 10, 4, 0); |
write_char_xy(20, line - 0, 0x7E); // small feet ft |
} else { |
write_ndigit_number_s(16, line - 2, max_Altimeter, 4, 0); |
write_char_xy(20, line - 2, 204); // small meters m |
write_ndigit_number_u(17, line - 1, (uint16_t)(((uint32_t)max_GroundSpeed * (uint32_t)9) / (uint32_t)250), 3, 0); |
write_char_xy(20, line - 1, 203); // km/h |
write_ndigit_number_u(16, line - 0, max_Distance / 10, 4, 0); |
write_char_xy(20, line - 0, 204); // small meters m |
} |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[3])))); // min voltage |
write_ndigit_number_u_10th(16, line, min_UBat, 3, 0); |
write_char_xy(20, line, 0x9E); // small V |
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) || (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) { |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[7])))); // ampere |
write_ndigit_number_u_10th(16, line, max_ampere / 10, 3, 0); |
write_char_xy(20, line, 0x9F); // small A |
// wasted mampere in this flight (will count up after landing) |
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) && !(COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) { |
write_ndigit_number_u(21, line, (ampere_wasted / 10) - wasted_ampere_offset, 5, 0); |
} else if (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT) { |
write_ndigit_number_u(21, line, naviData.UsedCapacity - wasted_ampere_offset, 5, 0); |
} |
write_char_xy(26, line, 0xB5); // mah |
} |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[4])))); // max time |
write_time(14, line, max_FlyingTime); |
write_char_xy(20, line, 210); // fly clock |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[5])))); // longitude |
write_gps_pos(14, line, naviData.CurrentPosition.Longitude); |
write_ascii_string_pgm(1, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[6])))); // latitude |
write_gps_pos(14, line, naviData.CurrentPosition.Latitude); |
draw_stats(); |
} else if (COSD_FLAGS_MODES & COSD_FLAG_ARTHORIZON) { // if no stats there is space horizon |
uint8_t horizon_bottom = bottom_line - 1; |
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) || (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) { |
236,6 → 199,15 |
} |
} |
} |
// show coords only when configure AND stats are off OR stats are on and motors are off |
if ((COSD_FLAGS_CONFIG & COSD_FLAG_SHOW_COORDS) |
&& ((naviData.FCFlags & FCFLAG_MOTOR_RUN) |
|| !((COSD_FLAGS_RUNTIME & COSD_WASFLYING) && (COSD_FLAGS_MODES & COSD_FLAG_STATS)))) { |
write_gps_pos(15, bottom_line - 2, naviData.CurrentPosition.Longitude); |
write_gps_pos(15, bottom_line - 1, naviData.CurrentPosition.Latitude); |
} |
if (COSD_FLAGS_MODES & COSD_FLAG_BIGVARIO) { |
draw_big_variometer(27, 8, naviData.Variometer); |
} |
293,9 → 265,10 |
write_char_xy(27, bottom_line, 201); // sat2 (free) |
} |
// after all, draw scope |
if (COSD_FLAGS_CONFIG & COSD_FLAG_SHOW_SCOPE) { |
// after all, draw scope WHEN configured AND flying OR Stats are off |
if ((COSD_FLAGS_CONFIG & COSD_FLAG_SHOW_SCOPE) |
&& ((naviData.FCFlags & FCFLAG_MOTOR_RUN) |
|| !((COSD_FLAGS_RUNTIME & COSD_WASFLYING) && (COSD_FLAGS_MODES & COSD_FLAG_STATS)))) { |
draw_scope(); |
} |
} |
/C-OSD/trunk/osd_ncmode_default.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/osd_ncmode_minimal.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
80,39 → 80,9 |
} else { |
// stats |
if ((COSD_FLAGS_RUNTIME & COSD_WASFLYING) && (COSD_FLAGS_MODES & COSD_FLAG_STATS)) { |
uint8_t line = 3; |
write_ascii_string_pgm(2, line, (const char *)(pgm_read_word(&(stats_item_pointers[0])))); // max Altitude |
write_ndigit_number_s(18, line, max_Altimeter / 20, 4, 0); |
write_char_xy(22, line, 204); // small meters m |
write_ascii_string_pgm(2, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[1])))); // max Speed |
write_ndigit_number_u(19, line, (uint16_t)(((uint32_t)max_GroundSpeed * (uint32_t)9) / (uint32_t)250), 3, 0); |
write_char_xy(22, line, 203); // km/h |
write_ascii_string_pgm(2, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[2])))); // max Distance |
write_ndigit_number_u(19, line, max_Distance / 10, 3, 0); |
write_char_xy(22, line, 204); // small meters m |
write_ascii_string_pgm(2, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[3])))); // min voltage |
write_ndigit_number_u_10th(18, line, min_UBat, 3, 0); |
write_char_xy(22, line, 0x9E); // small V |
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) { |
write_ascii_string_pgm(2, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[7])))); // ampere |
write_ndigit_number_u_10th(18, line, max_ampere / 10, 3, 0); |
write_char_xy(22, line, 0x9F); // small A |
draw_stats(); |
} |
write_ascii_string_pgm(2, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[4])))); // max time |
write_time(16, line, max_FlyingTime); |
write_char_xy(22, line, 210); // fly clock |
write_ascii_string_pgm(2, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[5])))); // longitude |
write_gps_pos(15, line, naviData.CurrentPosition.Longitude); |
write_ascii_string_pgm(2, ++line, (const char *)(pgm_read_word(&(stats_item_pointers[6])))); // latitude |
write_gps_pos(15, line, naviData.CurrentPosition.Latitude); |
} else if (COSD_FLAGS_MODES & COSD_FLAG_ARTHORIZON) { // if no stats there is space horizon |
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) { |
draw_artificial_horizon(top_line + 2, bottom_line - 2, naviData.AngleNick, naviData.AngleRoll); |
} else { |
draw_artificial_horizon(top_line + 2, bottom_line - 1, naviData.AngleNick, naviData.AngleRoll); |
} |
} |
} |
if (COSD_FLAGS_MODES & COSD_FLAG_BIGVARIO) { |
draw_big_variometer(27, 8, naviData.Variometer); |
} |
/C-OSD/trunk/osd_ncmode_minimal.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/ppm.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/ppm.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/spi.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/spi.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/usart0.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/usart0.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/usart1.c |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |
/C-OSD/trunk/usart1.h |
---|
1,5 → 1,5 |
/**************************************************************************** |
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
* Copyright (C) 2009-2011 by Claas Anders "CaScAdE" Rathje * |
* admiralcascade@gmail.com * |
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
* * |