/C-OSD/trunk/CHANGE.LOG |
---|
18,6 → 18,9 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
20100531-1530 |
*fixed bug in stats when max-distance > 999m |
20100501-1130 |
*distance to home now 4 digits for long distance flights |
*max height and speed shown again in stats |
/C-OSD/trunk/buttons.h |
---|
18,8 → 18,12 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _BUTTONS_H |
#define _BUTTONS_H |
/* ########################################################################## |
* debounce buttons |
* ##########################################################################*/ |
int s1_pressed(); |
int s2_pressed(); |
#endif |
/C-OSD/trunk/c-osd.aws |
---|
1,0 → 0,0 |
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA162"/><Files><File00000 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.c" Position="1142 155 1691 613" LineCol="397 0" State="Maximized"/><File00001 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\mk-data-structs.h" Position="1164 177 1705 605" LineCol="68 0" State="Maximized"/><File00002 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.h" Position="1186 199 1727 627" LineCol="0 0" State="Maximized"/><File00003 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.c" Position="1208 221 1749 649" LineCol="92 0" State="Maximized"/><File00004 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.c" Position="1230 243 1771 671" LineCol="117 0" State="Maximized"/><File00005 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.h" Position="1252 265 1793 693" LineCol="0 0" State="Maximized"/><File00006 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.c" Position="1274 287 1815 715" LineCol="2924 0" State="Maximized"/><File00007 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.h" Position="1296 309 1837 737" LineCol="146 0" State="Maximized"/><File00008 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.c" Position="1318 331 1859 759" LineCol="215 0" State="Maximized"/><File00009 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.h" Position="1340 353 1881 781" LineCol="70 0" State="Maximized"/><File00010 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.c" Position="1138 132 1889 789" LineCol="137 96" State="Maximized"/><File00011 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.c" Position="1164 177 1705 605" LineCol="104 0" State="Maximized"/><File00012 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.c" Position="1186 199 1727 627" LineCol="337 0" State="Maximized"/><File00013 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.h" Position="1208 221 1749 649" LineCol="25 0" State="Maximized"/><File00014 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.c" Position="1230 243 1771 671" LineCol="0 0" State="Maximized"/><File00015 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.h" Position="1252 265 1793 693" LineCol="0 0" State="Maximized"/><File00016 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.c" Position="1274 287 1815 715" LineCol="0 0" State="Maximized"/><File00017 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.h" Position="1296 309 1837 737" LineCol="0 0" State="Maximized"/><File00018 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.c" Position="1318 331 1859 759" LineCol="43 0" State="Maximized"/><File00019 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.h" Position="1340 353 1881 781" LineCol="0 0" State="Maximized"/><File00020 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.c" Position="1142 155 1683 583" LineCol="171 0" State="Maximized"/><File00021 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.h" Position="1164 177 1705 605" LineCol="0 0" State="Maximized"/><File00022 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.h" Position="1186 199 1727 627" LineCol="0 0" State="Maximized"/><File00023 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.h" Position="1208 221 1749 649" LineCol="7 0" State="Maximized"/><File00024 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.h" Position="1230 243 1771 671" LineCol="24 0" State="Maximized"/><File00025 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_jopl.c" Position="1252 265 1793 693" LineCol="28 0" State="Maximized"/><File00026 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\default\Makefile" Position="1274 287 1815 715" LineCol="16 0" State="Maximized"/></Files></AVRWorkspace> |
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA162"/><Files><File00000 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.c" Position="1146 120 1695 578" LineCol="145 37" State="Maximized"/><File00001 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\mk-data-structs.h" Position="1168 142 1709 570" LineCol="142 0" State="Maximized"/><File00002 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.h" Position="1190 164 1731 592" LineCol="147 0" State="Maximized"/><File00003 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.c" Position="1212 186 1753 614" LineCol="92 0" State="Maximized"/><File00004 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.c" Position="1234 208 1775 636" LineCol="117 0" State="Maximized"/><File00005 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.h" Position="1256 230 1797 658" LineCol="97 0" State="Maximized"/><File00006 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.c" Position="1278 252 1819 680" LineCol="5893 18" State="Maximized"/><File00007 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.h" Position="1300 274 1841 702" LineCol="36 20" State="Maximized"/><File00008 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.c" Position="1322 296 1863 724" LineCol="304 0" State="Maximized"/><File00009 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.h" Position="1344 318 1885 746" LineCol="77 0" State="Maximized"/><File00010 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.c" Position="1142 97 1891 754" LineCol="186 44" State="Maximized"/><File00011 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.c" Position="1168 142 1709 570" LineCol="104 0" State="Maximized"/><File00012 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.c" Position="1190 164 1731 592" LineCol="44 0" State="Maximized"/><File00013 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.h" Position="1212 186 1753 614" LineCol="21 17" State="Maximized"/><File00014 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.c" Position="1234 208 1775 636" LineCol="0 0" State="Maximized"/><File00015 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.h" Position="1256 230 1797 658" LineCol="70 0" State="Maximized"/><File00016 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.c" Position="1278 252 1819 680" LineCol="0 0" State="Maximized"/><File00017 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.h" Position="1300 274 1841 702" LineCol="20 0" State="Maximized"/><File00018 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.c" Position="1322 296 1863 724" LineCol="43 0" State="Maximized"/><File00019 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.h" Position="1344 318 1885 746" LineCol="36 0" State="Maximized"/><File00020 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.c" Position="1146 120 1687 548" LineCol="171 0" State="Maximized"/><File00021 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.h" Position="1168 142 1709 570" LineCol="26 0" State="Maximized"/><File00022 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.h" Position="1190 164 1731 592" LineCol="26 0" State="Maximized"/><File00023 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.h" Position="1212 186 1753 614" LineCol="20 0" State="Maximized"/><File00024 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.h" Position="1234 208 1775 636" LineCol="20 0" State="Maximized"/><File00025 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_jopl.c" Position="1256 230 1797 658" LineCol="28 0" State="Maximized"/><File00026 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\default\Makefile" Position="1278 252 1819 680" LineCol="19 26" State="Maximized"/><File00027 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_jopl.h" Position="1300 274 1845 706" LineCol="26 0" State="Maximized"/></Files></AVRWorkspace> |
/C-OSD/trunk/characters.h |
---|
18,7 → 18,12 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _CHARACTERS_H |
#define _CHARACTERS_H |
/** |
* put the above chars in the memory of the MAX7456 |
*/ |
void learn_all_chars_pgm(void); |
#endif |
/C-OSD/trunk/config.c |
---|
29,6 → 29,8 |
#include "buttons.h" |
#include "usart1.h" |
#if !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
uint8_t EEMEM ee_checkbyte1 = CHECKBYTE1; |
uint8_t EEMEM ee_checkbyte2 = CHECKBYTE2; |
uint8_t EEMEM ee_COSD_FLAGS_MODES = 0; |
35,17 → 37,12 |
uint8_t EEMEM ee_COSD_FLAGS_CONFIG = 0; |
uint8_t EEMEM ee_COSD_DISPLAYMODE = 0; |
#if !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
// video modes |
const char VM_PAL[] PROGMEM = "PAL "; |
const char VM_NTSC[] PROGMEM = "NTSC"; |
const displaymode_t * mode; |
#endif |
const char ee_message0[] PROGMEM = "Loading Data from EEPROM"; |
const char ee_message1[] PROGMEM = "No saved Data in EEPROM"; |
const char* ee_msg[] PROGMEM = {ee_message0, ee_message1}; |
55,21 → 52,16 |
*/ |
void get_eeprom(uint8_t verbose) { |
if (eeprom_read_byte(&ee_checkbyte1) == CHECKBYTE1 && eeprom_read_byte(&ee_checkbyte2) == CHECKBYTE2) { |
#if !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
if (verbose) write_ascii_string_pgm(2, 9, ee_msg[0]); // Loading data |
#endif |
COSD_FLAGS_MODES = eeprom_read_byte(&ee_COSD_FLAGS_MODES); |
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); |
} else { |
#if !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
if (verbose) write_ascii_string_pgm(2, 9, ee_msg[1]); // Loading data |
#endif |
} |
} |
#if !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
/** |
* save data to eeprom |
/C-OSD/trunk/config.h |
---|
18,6 → 18,10 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _CONFIG_H |
#define _CONFIG_H |
#define CHECKBYTE1 64 |
#define CHECKBYTE2 46 |
47,3 → 51,4 |
*/ |
void get_eeprom(uint8_t); |
#endif |
/C-OSD/trunk/default/dist.bat |
---|
19,7 → 19,7 |
:: * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
:: ****************************************************************************/ |
set DATE=20100501-1130 |
set DATE=20100531-1530 |
:: date /T |
:: clean up first |
/C-OSD/trunk/main.c |
---|
55,6 → 55,7 |
/* ########################################################################## |
* global definitions and global vars |
* ##########################################################################*/ |
#if !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
volatile NaviData_t naviData; |
volatile DebugOut_t debugData; |
83,8 → 84,8 |
// Flags |
uint8_t COSD_FLAGS_MODES = 0, COSD_FLAGS_CONFIG = 0, COSD_FLAGS_RUNTIME = 0, COSD_DISPLAYMODE = 0; |
#if !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
// stats for after flight |
int16_t max_Altimeter = 0; |
uint8_t min_UBat = 255; |
193,7 → 194,7 |
} |
} |
} |
#endif // ends !(ALLCHARSDEBUG|(WRITECHARS != -1))#endif // ends !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
#endif // ends !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
/* ########################################################################## |
* MAIN |
319,8 → 320,8 |
// enable interrupts |
sei(); |
#endif |
//write_ascii_string(2, 7, " CaScAdE "); |
//write_ascii_string(2, 8, "is TESTING his open source"); |
//write_ascii_string(2, 9, " EPi OSD Firmware"); |
328,18 → 329,9 |
// we are ready |
LED3_ON |
#if ALLCHARSDEBUG | (WRITECHARS != -1) |
clear(); |
write_all_chars(); |
LED1_ON |
LED2_ON |
LED3_ON |
LED4_ON |
#else |
// clear serial screen |
//usart1_puts("\x1B[2J\x1B[H"); |
//usart1_puts("hello world!123\r\n"); |
while (1) { |
// in case SPI is ready and there is nothing to send right now |
427,6 → 419,19 |
usart1_DisableTXD(); |
} |
} |
#else // character flashing... |
clear(); |
write_all_chars(); |
LED1_ON |
LED2_ON |
LED3_ON |
LED4_ON |
while(1) { |
}; |
#endif |
return 0; |
} |
/C-OSD/trunk/main.h |
---|
18,6 → 18,9 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _MAIN_H |
#define _MAIN_H |
#include <avr/pgmspace.h> |
#include "mk-data-structs.h" |
106,6 → 109,7 |
#define S1_PRESSED !(PINC & (1<<PC5)) |
#define S2_PRESSED !(PINC & (1<<PC4)) |
/* ########################################################################## |
* extern spi controlled vars |
* ##########################################################################*/ |
176,3 → 180,5 |
const char *directions[8]; |
const char *stats_item_pointers[8]; |
#endif |
/C-OSD/trunk/max7456_software_spi.h |
---|
18,6 → 18,10 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _MAX7456_SOFTWARE_SPI_H |
#define _MAX7456_SOFTWARE_SPI_H |
/* ########################################################################## |
* Software SPI to communicate with MAX7456 |
* ##########################################################################*/ |
139,3 → 143,5 |
* wirte a <position> at <x>/<y> assuming it is a gps position for long-/latitude |
*/ |
void write_gps_pos(uint8_t, uint8_t, int32_t); |
#endif |
/C-OSD/trunk/mk-data-structs.h |
---|
18,6 → 18,9 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _MK_DATA_STRUCTS_H |
#define _MK_DATA_STRUCTS_H |
/* ########################################################################## |
* gain some fake arm compat :) |
* ##########################################################################*/ |
136,3 → 139,4 |
#define NC_FLAG_8 0x80 |
#endif |
/C-OSD/trunk/osd_fcmode_default.h |
---|
18,4 → 18,9 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _OSD_FCMODE_DEFAULT_H |
#define _OSD_FCMODE_DEFAULT_H |
int osd_fcmode_default(void); |
#endif |
/C-OSD/trunk/osd_fcmode_jopl.h |
---|
18,4 → 18,9 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _OSD_FCMODE_JOPL_H |
#define _OSD_FCMODE_JOPL_H |
int osd_fcmode_jopl(void); |
#endif |
/C-OSD/trunk/osd_helpers.h |
---|
18,6 → 18,9 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _OSD_HELPERS_H |
#define _OSD_HELPERS_H |
/* ########################################################################## |
* compass stuff |
* ##########################################################################*/ |
69,3 → 72,6 |
void draw_artificial_horizon(uint8_t, uint8_t, int16_t, int16_t); |
void draw_agressiva_artificial_horizon(uint8_t, uint8_t, int16_t, int16_t); |
#endif |
/C-OSD/trunk/osd_ncmode_default.c |
---|
184,7 → 184,7 |
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(17, line - 0, max_Distance / 10 * 32 / 10, 3, 0); |
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); |
191,7 → 191,7 |
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(17, line - 0, max_Distance / 10, 3, 0); |
write_ndigit_number_u(16, line - 0, max_Distance / 10, 4, 0); |
write_char_xy(20, line - 0, 204); // small meters m |
} |
/C-OSD/trunk/osd_ncmode_default.h |
---|
18,4 → 18,9 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _OSD_NCMODE_DEFAULT_H |
#define _OSD_NCMODE_DEFAULT_H |
int osd_ncmode_default(void); |
#endif |
/C-OSD/trunk/osd_ncmode_minimal.h |
---|
18,4 → 18,9 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _OSD_NCMODE_MINIMAL_H |
#define _OSD_NCMODE_MINIMAL_H |
int osd_ncmode_minimal(void); |
#endif |
/C-OSD/trunk/ppm.h |
---|
18,6 → 18,9 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _PPM_H |
#define _PPM_H |
extern uint8_t COSD_FLAGS, COSD_FLAGS2; |
/** |
29,3 → 32,5 |
* Handle INT2 interrupts that occur on changing edges of ppm signal |
*/ |
ISR(INT2_vect); |
#endif |
/C-OSD/trunk/spi.h |
---|
18,6 → 18,9 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _SPI_H |
#define _SPI_H |
/* |
* structs 'n union for easy SPI transfer |
*/ |
63,3 → 66,5 |
* send next command through spi |
*/ |
void spi_send_next(); |
#endif |
/C-OSD/trunk/usart1.h |
---|
18,6 → 18,9 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
#ifndef _USART1_H |
#define _USART1_H |
#define baud 57600 |
#define RXD_BUFFER_LEN 150 |
90,3 → 93,5 |
* and <ms> represents the milliseconds delay between data |
*/ |
//void usart1_request_mk_data(uint8_t, char, uint8_t); |
#endif |