Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 761 → Rev 762

/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");
// clear serial screen
//usart1_puts("\x1B[2J\x1B[H");
 
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