/C-OSD/trunk/CHANGE.LOG |
---|
18,10 → 18,6 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
20090706-2000 |
*hopefully fixed the new 10th number showing functions |
+support for GPS height instead of Baro |
20090703-0005 |
*write-number-functions changed, using itoa now, saves space, should be faster |
*inline added for basic max7456-spi_send because saves procedure call (^= time) |
/C-OSD/trunk/c-osd.aws |
---|
1,0 → 0,0 |
<AVRWorkspace><IOSettings><CurrentRegisters><USART1><register register="UBRR1L" group="USART1" display="1" locked="0"/></USART1><USART1><register register="UCSR1B" group="USART1" display="1" locked="0"/></USART1><USART1><register register="UCSR1A" group="USART1" display="1" locked="0"/></USART1><USART1><register register="UDR" group="USART1" display="1" locked="0"/></USART1><CPU><register register="OSCCAL" group="CPU" display="1" locked="0"/></CPU><JTAG><register register="OCDR" group="JTAG" display="1" locked="0"/></JTAG><PORTE><register register="PINE" group="PORTE" display="1" locked="0"/></PORTE><PORTE><register register="DDRE" group="PORTE" display="1" locked="0"/></PORTE><PORTE><register register="PORTE" group="PORTE" display="1" locked="0"/></PORTE><ANALOG_COMPARATOR><register register="ACSR" group="ANALOG_COMPARATOR" display="1" locked="0"/></ANALOG_COMPARATOR><USART0><register register="UBRR0L" group="USART0" display="1" locked="0"/></USART0><USART0><register register="UCSR0B" group="USART0" display="1" locked="0"/></USART0><USART0><register register="UCSR0A" group="USART0" display="1" locked="0"/></USART0><USART0><register register="UDR0" group="USART0" display="1" locked="0"/></USART0><SPI><register register="SPCR" group="SPI" display="1" locked="0"/></SPI><SPI><register register="SPSR" group="SPI" display="1" locked="0"/></SPI><SPI><register register="SPDR" group="SPI" display="1" locked="0"/></SPI><PORTD><register register="PIND" group="PORTD" display="1" locked="0"/></PORTD><PORTD><register register="DDRD" group="PORTD" display="1" locked="0"/></PORTD><PORTD><register register="PORTD" group="PORTD" display="1" locked="0"/></PORTD><PORTC><register register="PINC" group="PORTC" display="1" locked="0"/></PORTC><PORTC><register register="DDRC" group="PORTC" display="1" locked="0"/></PORTC><PORTC><register register="PORTC" group="PORTC" display="1" locked="0"/></PORTC><PORTB><register register="PINB" group="PORTB" display="1" locked="0"/></PORTB><PORTB><register register="DDRB" group="PORTB" display="1" locked="0"/></PORTB><PORTB><register register="PORTB" group="PORTB" display="1" locked="0"/></PORTB><PORTA><register register="PINA" group="PORTA" display="1" locked="0"/></PORTA><PORTA><register register="DDRA" group="PORTA" display="1" locked="0"/></PORTA><PORTA><register register="PORTA" group="PORTA" display="1" locked="0"/></PORTA><EEPROM><register register="EECR" group="EEPROM" display="1" locked="0"/></EEPROM><EEPROM><register register="EEDR" group="EEPROM" display="1" locked="0"/></EEPROM><EEPROM><register register="EEAR" group="EEPROM" display="1" locked="0"/></EEPROM><USART0><register register="UBRR0H" group="USART0" display="1" locked="0"/></USART0><USART0><register register="UCSR0C" group="USART0" display="1" locked="0"/></USART0><WATCHDOG><register register="WDTCR" group="WATCHDOG" display="1" locked="0"/></WATCHDOG><TIMER_COUNTER_2><register register="OCR2" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><TIMER_COUNTER_2><register register="TCNT2" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><TIMER_COUNTER_1><register register="ICR1" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_2><register register="ASSR" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><TIMER_COUNTER_2><register register="TCCR2" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><TIMER_COUNTER_1><register register="OCR1B" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_1><register register="OCR1A" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_1><register register="TCNT1" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_1><register register="TCCR1B" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_1><register register="TCCR1A" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><CPU><register register="SFIOR" group="CPU" display="1" locked="0"/></CPU><TIMER_COUNTER_0><register register="OCR0" group="TIMER_COUNTER_0" display="1" locked="0"/></TIMER_COUNTER_0><TIMER_COUNTER_0><register register="TCNT0" group="TIMER_COUNTER_0" display="1" locked="0"/></TIMER_COUNTER_0><TIMER_COUNTER_0><register register="TCCR0" group="TIMER_COUNTER_0" display="1" locked="0"/></TIMER_COUNTER_0><CPU><register register="MCUCSR" group="CPU" display="1" locked="0"/></CPU><JTAG><register register="MCUCSR" group="JTAG" display="1" locked="0"/></JTAG><CPU><register register="MCUCR" group="CPU" display="1" locked="0"/></CPU><EXTERNAL_INTERRUPT><register register="MCUCR" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><CPU><register register="EMCUCR" group="CPU" display="1" locked="0"/></CPU><EXTERNAL_INTERRUPT><register register="EMCUCR" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><BOOT_LOAD><register register="SPMCR" group="BOOT_LOAD" display="1" locked="0"/></BOOT_LOAD><TIMER_COUNTER_0><register register="TIFR" group="TIMER_COUNTER_0" display="1" locked="0"/></TIMER_COUNTER_0><TIMER_COUNTER_1><register register="TIFR" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_2><register register="TIFR" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><TIMER_COUNTER_0><register register="TIMSK" group="TIMER_COUNTER_0" display="1" locked="0"/></TIMER_COUNTER_0><TIMER_COUNTER_1><register register="TIMSK" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_2><register register="TIMSK" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><EXTERNAL_INTERRUPT><register register="GIFR" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><EXTERNAL_INTERRUPT><register register="GICR" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><USART1><register register="UBRR1H" group="USART1" display="1" locked="0"/></USART1><USART1><register register="UCSR1C" group="USART1" display="1" locked="0"/></USART1><CPU><register register="SP" group="CPU" display="1" locked="0"/></CPU><CPU><register register="SREG" group="CPU" display="1" locked="0"/></CPU><CPU><register register="CLKPR" group="CPU" display="1" locked="0"/></CPU><EXTERNAL_INTERRUPT><register register="PCMSK0" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><EXTERNAL_INTERRUPT><register register="PCMSK1" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><TIMER_COUNTER_3><register register="ETIFR" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="ETIMSK" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="ICR3" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="OCR3B" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="OCR3A" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="TCNT3" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="TCCR3B" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="TCCR3A" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3></CurrentRegisters></IOSettings><part name="ATmega162"/><Files><File00000 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.c" Position="706 126 1554 576" LineCol="122 8" State="Maximized"/><File00001 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\mk-data-structs.h" Position="728 148 1590 590" LineCol="0 0" State="Maximized"/><File00002 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.h" Position="750 170 1612 612" LineCol="0 0" State="Maximized"/><File00003 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.c" Position="772 192 1634 634" LineCol="0 0" State="Maximized"/><File00004 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.c" Position="794 214 1656 656" LineCol="0 0" State="Maximized"/><File00005 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.h" Position="816 236 1678 678" LineCol="0 0" State="Maximized"/><File00006 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.c" Position="838 258 1700 700" LineCol="0 0" State="Maximized"/><File00007 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.h" Position="860 280 1722 722" LineCol="155 39" State="Maximized"/><File00008 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.c" Position="882 302 1744 744" LineCol="0 0" State="Maximized"/><File00009 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.h" Position="904 324 1766 766" LineCol="0 0" State="Maximized"/><File00010 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.c" Position="702 103 1774 774" LineCol="100 0" State="Maximized"/><File00011 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.c" Position="728 148 1590 590" LineCol="0 0" State="Maximized"/><File00012 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.c" Position="750 170 1612 612" LineCol="130 26" State="Maximized"/><File00013 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.h" Position="772 192 1634 634" LineCol="0 0" State="Maximized"/><File00014 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.c" Position="794 214 1656 656" LineCol="0 0" State="Maximized"/><File00015 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.h" Position="816 236 1678 678" LineCol="0 0" State="Maximized"/><File00016 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.c" Position="838 258 1700 700" LineCol="0 0" State="Maximized"/><File00017 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.h" Position="860 280 1722 722" LineCol="0 0" State="Maximized"/><File00018 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.c" Position="882 302 1744 744" LineCol="0 0" State="Maximized"/><File00019 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.h" Position="904 324 1766 766" LineCol="0 0" State="Maximized"/><File00020 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.c" Position="706 126 1568 568" LineCol="0 0" State="Maximized"/><File00021 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.h" Position="728 148 1590 590" LineCol="0 0" State="Maximized"/><File00022 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.h" Position="750 170 1612 612" LineCol="0 0" State="Maximized"/><File00023 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.h" Position="772 192 1634 634" LineCol="0 0" State="Maximized"/><File00024 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.h" Position="794 214 1656 656" LineCol="0 0" State="Maximized"/></Files></AVRWorkspace> |
<AVRWorkspace><IOSettings><CurrentRegisters><USART1><register register="UBRR1L" group="USART1" display="1" locked="0"/></USART1><USART1><register register="UCSR1B" group="USART1" display="1" locked="0"/></USART1><USART1><register register="UCSR1A" group="USART1" display="1" locked="0"/></USART1><USART1><register register="UDR" group="USART1" display="1" locked="0"/></USART1><CPU><register register="OSCCAL" group="CPU" display="1" locked="0"/></CPU><JTAG><register register="OCDR" group="JTAG" display="1" locked="0"/></JTAG><PORTE><register register="PINE" group="PORTE" display="1" locked="0"/></PORTE><PORTE><register register="DDRE" group="PORTE" display="1" locked="0"/></PORTE><PORTE><register register="PORTE" group="PORTE" display="1" locked="0"/></PORTE><ANALOG_COMPARATOR><register register="ACSR" group="ANALOG_COMPARATOR" display="1" locked="0"/></ANALOG_COMPARATOR><USART0><register register="UBRR0L" group="USART0" display="1" locked="0"/></USART0><USART0><register register="UCSR0B" group="USART0" display="1" locked="0"/></USART0><USART0><register register="UCSR0A" group="USART0" display="1" locked="0"/></USART0><USART0><register register="UDR0" group="USART0" display="1" locked="0"/></USART0><SPI><register register="SPCR" group="SPI" display="1" locked="0"/></SPI><SPI><register register="SPSR" group="SPI" display="1" locked="0"/></SPI><SPI><register register="SPDR" group="SPI" display="1" locked="0"/></SPI><PORTD><register register="PIND" group="PORTD" display="1" locked="0"/></PORTD><PORTD><register register="DDRD" group="PORTD" display="1" locked="0"/></PORTD><PORTD><register register="PORTD" group="PORTD" display="1" locked="0"/></PORTD><PORTC><register register="PINC" group="PORTC" display="1" locked="0"/></PORTC><PORTC><register register="DDRC" group="PORTC" display="1" locked="0"/></PORTC><PORTC><register register="PORTC" group="PORTC" display="1" locked="0"/></PORTC><PORTB><register register="PINB" group="PORTB" display="1" locked="0"/></PORTB><PORTB><register register="DDRB" group="PORTB" display="1" locked="0"/></PORTB><PORTB><register register="PORTB" group="PORTB" display="1" locked="0"/></PORTB><PORTA><register register="PINA" group="PORTA" display="1" locked="0"/></PORTA><PORTA><register register="DDRA" group="PORTA" display="1" locked="0"/></PORTA><PORTA><register register="PORTA" group="PORTA" display="1" locked="0"/></PORTA><EEPROM><register register="EECR" group="EEPROM" display="1" locked="0"/></EEPROM><EEPROM><register register="EEDR" group="EEPROM" display="1" locked="0"/></EEPROM><EEPROM><register register="EEAR" group="EEPROM" display="1" locked="0"/></EEPROM><USART0><register register="UBRR0H" group="USART0" display="1" locked="0"/></USART0><USART0><register register="UCSR0C" group="USART0" display="1" locked="0"/></USART0><WATCHDOG><register register="WDTCR" group="WATCHDOG" display="1" locked="0"/></WATCHDOG><TIMER_COUNTER_2><register register="OCR2" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><TIMER_COUNTER_2><register register="TCNT2" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><TIMER_COUNTER_1><register register="ICR1" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_2><register register="ASSR" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><TIMER_COUNTER_2><register register="TCCR2" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><TIMER_COUNTER_1><register register="OCR1B" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_1><register register="OCR1A" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_1><register register="TCNT1" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_1><register register="TCCR1B" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_1><register register="TCCR1A" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><CPU><register register="SFIOR" group="CPU" display="1" locked="0"/></CPU><TIMER_COUNTER_0><register register="OCR0" group="TIMER_COUNTER_0" display="1" locked="0"/></TIMER_COUNTER_0><TIMER_COUNTER_0><register register="TCNT0" group="TIMER_COUNTER_0" display="1" locked="0"/></TIMER_COUNTER_0><TIMER_COUNTER_0><register register="TCCR0" group="TIMER_COUNTER_0" display="1" locked="0"/></TIMER_COUNTER_0><CPU><register register="MCUCSR" group="CPU" display="1" locked="0"/></CPU><JTAG><register register="MCUCSR" group="JTAG" display="1" locked="0"/></JTAG><CPU><register register="MCUCR" group="CPU" display="1" locked="0"/></CPU><EXTERNAL_INTERRUPT><register register="MCUCR" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><CPU><register register="EMCUCR" group="CPU" display="1" locked="0"/></CPU><EXTERNAL_INTERRUPT><register register="EMCUCR" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><BOOT_LOAD><register register="SPMCR" group="BOOT_LOAD" display="1" locked="0"/></BOOT_LOAD><TIMER_COUNTER_0><register register="TIFR" group="TIMER_COUNTER_0" display="1" locked="0"/></TIMER_COUNTER_0><TIMER_COUNTER_1><register register="TIFR" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_2><register register="TIFR" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><TIMER_COUNTER_0><register register="TIMSK" group="TIMER_COUNTER_0" display="1" locked="0"/></TIMER_COUNTER_0><TIMER_COUNTER_1><register register="TIMSK" group="TIMER_COUNTER_1" display="1" locked="0"/></TIMER_COUNTER_1><TIMER_COUNTER_2><register register="TIMSK" group="TIMER_COUNTER_2" display="1" locked="0"/></TIMER_COUNTER_2><EXTERNAL_INTERRUPT><register register="GIFR" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><EXTERNAL_INTERRUPT><register register="GICR" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><USART1><register register="UBRR1H" group="USART1" display="1" locked="0"/></USART1><USART1><register register="UCSR1C" group="USART1" display="1" locked="0"/></USART1><CPU><register register="SP" group="CPU" display="1" locked="0"/></CPU><CPU><register register="SREG" group="CPU" display="1" locked="0"/></CPU><CPU><register register="CLKPR" group="CPU" display="1" locked="0"/></CPU><EXTERNAL_INTERRUPT><register register="PCMSK0" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><EXTERNAL_INTERRUPT><register register="PCMSK1" group="EXTERNAL_INTERRUPT" display="1" locked="0"/></EXTERNAL_INTERRUPT><TIMER_COUNTER_3><register register="ETIFR" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="ETIMSK" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="ICR3" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="OCR3B" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="OCR3A" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="TCNT3" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="TCCR3B" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3><TIMER_COUNTER_3><register register="TCCR3A" group="TIMER_COUNTER_3" display="1" locked="0"/></TIMER_COUNTER_3></CurrentRegisters></IOSettings><part name="ATMEGA162"/><Files><File00000 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.c" Position="839 128 1687 578" LineCol="312 0" State="Maximized"/><File00001 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\mk-data-structs.h" Position="861 150 1723 592" LineCol="48 0" State="Maximized"/><File00002 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.h" Position="883 172 1745 614" LineCol="113 0" State="Maximized"/><File00003 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.c" Position="905 194 1767 636" LineCol="276 0" State="Maximized"/><File00004 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.c" Position="927 216 1789 658" LineCol="47 0" State="Maximized"/><File00005 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.h" Position="949 238 1811 680" LineCol="24 0" State="Maximized"/><File00006 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.c" Position="971 260 1833 702" LineCol="5938 0" State="Maximized"/><File00007 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.h" Position="993 282 1855 724" LineCol="55 0" State="Maximized"/><File00008 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.c" Position="1015 304 1877 746" LineCol="197 0" State="Maximized"/><File00009 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.h" Position="1037 326 1899 768" LineCol="20 0" State="Maximized"/><File00010 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.c" Position="839 128 1701 570" LineCol="77 0" State="Maximized"/><File00011 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.c" Position="861 150 1723 592" LineCol="29 0" State="Maximized"/><File00012 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.c" Position="835 105 1907 776" LineCol="132 0" State="Maximized"/><File00013 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.h" Position="905 194 1767 636" LineCol="23 0" State="Maximized"/><File00014 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.c" Position="927 216 1789 658" LineCol="19 0" State="Maximized"/><File00015 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.h" Position="949 238 1811 680" LineCol="26 0" State="Maximized"/><File00016 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.c" Position="971 260 1833 702" LineCol="0 0" State="Maximized"/><File00017 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.h" Position="993 282 1855 724" LineCol="0 0" State="Maximized"/><File00018 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.c" Position="1015 304 1877 746" LineCol="19 0" State="Maximized"/><File00019 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.h" Position="1037 326 1899 768" LineCol="18 0" State="Maximized"/><File00020 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.c" Position="839 128 1701 570" LineCol="138 0" State="Maximized"/><File00021 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.h" Position="861 150 1723 592" LineCol="20 0" State="Maximized"/><File00022 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.h" Position="883 172 1745 614" LineCol="20 0" State="Maximized"/><File00023 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.h" Position="905 194 1767 636" LineCol="20 0" State="Maximized"/><File00024 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.h" Position="927 216 1789 658" LineCol="22 0" State="Maximized"/></Files></AVRWorkspace> |
/C-OSD/trunk/config.c |
---|
33,8 → 33,7 |
uint8_t EEMEM ee_checkbyte2 = CHECKBYTE2; |
uint16_t EEMEM ee_cal_ampere = 512; |
uint8_t EEMEM ee_sensor = 50; |
uint8_t EEMEM ee_COSD_FLAGS_MODES = 0; |
uint8_t EEMEM ee_COSD_FLAGS_CONFIG = 0; |
uint8_t EEMEM ee_COSD_FLAGS; |
uint8_t EEMEM ee_COSD_DISPLAYMODE = 0; |
#if !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
67,11 → 66,10 |
const char menu_item6[] PROGMEM = "Voltage by C-Strom"; |
const char menu_item7[] PROGMEM = "Reset uptime"; |
const char menu_item8[] PROGMEM = "Display Mode"; |
const char menu_item9[] PROGMEM = "Height by"; |
const char menu_item10[] PROGMEM = "Save config"; |
const char menu_item11[] PROGMEM = "EXIT"; |
const char menu_item9[] PROGMEM = "Save config"; |
const char menu_item10[] PROGMEM = "EXIT"; |
const char* menu[] = {menu_item0, menu_item1, menu_item2, menu_item3, menu_item4, |
menu_item5, menu_item6, menu_item7, menu_item8, menu_item9, menu_item10, menu_item11}; |
menu_item5, menu_item6, menu_item7, menu_item8, menu_item9, menu_item10}; |
const displaymode_t * mode; |
89,8 → 87,7 |
#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_FLAGS = eeprom_read_byte(&ee_COSD_FLAGS); |
COSD_DISPLAYMODE = eeprom_read_byte(&ee_COSD_DISPLAYMODE); |
//if (verbose) write_ndigit_number_u(23, 11, COSD_DISPLAYMODE, 2, 0); |
} else { |
108,8 → 105,7 |
void save_eeprom() { |
eeprom_write_byte(&ee_checkbyte1, CHECKBYTE1); |
eeprom_write_byte(&ee_checkbyte2, CHECKBYTE2); |
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_FLAGS, COSD_FLAGS); |
eeprom_write_byte(&ee_COSD_DISPLAYMODE, COSD_DISPLAYMODE); |
} |
128,7 → 124,7 |
write_ascii_string_pgm(2, 2, init_point[2]); // NaviCtrl Mode |
//write_ascii_string(2, 2, "NaviCtrl Mode"); |
#endif |
write_ascii_string_pgm(2, 3, PSTR(BUILDDATE)); |
write_ascii_string(2, 3, BUILDDATE); |
uint8_t cellnum = 0; |
if (CELL_NUM == -1) { |
write_ascii_string_pgm(2, 4, init_point[3]); // Guessing Number of Cells |
154,7 → 150,7 |
get_eeprom(1); |
//write_ascii_string_pgm(23, 2, vm[COSD_FLAGS & COSD_FLAG_NTSC]); |
if (COSD_FLAGS_CONFIG & COSD_FLAG_NTSC) { |
if (COSD_FLAGS & COSD_FLAG_NTSC) { |
write_ascii_string_pgm(23, 2, VM_NTSC); |
} else { |
write_ascii_string_pgm(23, 2, VM_PAL); |
176,7 → 172,7 |
_delay_ms(200); |
clear(); |
// update flags to paint display again because of clear |
COSD_FLAGS_RUNTIME &= ~COSD_ICONS_WRITTEN; |
COSD_FLAGS2 &= ~COSD_ICONS_WRITTEN; |
} |
/* ########################################################################## |
192,38 → 188,38 |
// draw current _cursor_ |
write_ascii_string(3, chosen + 2, ">"); |
if (COSD_FLAGS_CONFIG & COSD_FLAG_NTSC) { |
if (COSD_FLAGS & COSD_FLAG_NTSC) { |
write_ascii_string_pgm(23, 2, VM_NTSC); |
} else { |
write_ascii_string_pgm(23, 2, VM_PAL); |
} |
if (COSD_FLAGS_MODES & COSD_FLAG_HUD) { |
if (COSD_FLAGS & COSD_FLAG_HUD) { |
write_ascii_string_pgm(23, 3, ON); |
} else { |
write_ascii_string_pgm(23, 3, OFF); |
} |
if (COSD_FLAGS_MODES & COSD_FLAG_ARTHORIZON) { |
if (COSD_FLAGS & COSD_FLAG_ARTHORIZON) { |
write_ascii_string_pgm(23, 4, ON); |
} else { |
write_ascii_string_pgm(23, 4, OFF); |
} |
if (COSD_FLAGS_MODES & COSD_FLAG_BIGVARIO) { |
if (COSD_FLAGS & COSD_FLAG_BIGVARIO) { |
write_ascii_string_pgm(23, 5, ON); |
} else { |
write_ascii_string_pgm(23, 5, OFF); |
} |
if (COSD_FLAGS_MODES & COSD_FLAG_STATS) { |
if (COSD_FLAGS & COSD_FLAG_STATS) { |
write_ascii_string_pgm(23, 6, ON); |
} else { |
write_ascii_string_pgm(23, 6, OFF); |
} |
if (COSD_FLAGS_MODES & COSD_FLAG_WARNINGS) { |
if (COSD_FLAGS & COSD_FLAG_WARNINGS) { |
write_ascii_string_pgm(23, 7, ON); |
} else { |
write_ascii_string_pgm(23, 7, OFF); |
} |
if (COSD_FLAGS_MODES & COSD_FLAG_STROMVOLT) { |
if (COSD_FLAGS & COSD_FLAG_STROMVOLT) { |
write_ascii_string_pgm(23, 8, ON); |
} else { |
write_ascii_string_pgm(23, 8, OFF); |
231,11 → 227,6 |
//write_ndigit_number_u(23, 10, COSD_DISPLAYMODE, 2, 0); |
write_ascii_string_pgm(18, 10, (const char *) (pgm_read_word(&(mode->desc)))); |
if (COSD_FLAGS_CONFIG & COSD_FLAG_GPSHEIGHT) { |
write_ascii_string_pgm(20, 11, PSTR(" GPS")); |
} else { |
write_ascii_string_pgm(20, 11, PSTR("BARO")); |
} |
} |
/** |
242,7 → 233,7 |
* some sort of clicking response in the menu |
*/ |
void config_menu_doclick(uint8_t chosen, const char* menu[]) { |
write_ascii_string_pgm(4, chosen + 2, PSTR("DONE ")); |
write_ascii_string(4, chosen + 2, "DONE "); |
_delay_ms(500); |
write_ascii_string_pgm(4, chosen + 2, menu[chosen]); |
} |
259,7 → 250,7 |
uint8_t inmenu = 1; |
uint8_t chosen = 0; |
write_ascii_string_pgm(6, 1, PSTR("C-OSD Config Menu")); |
write_ascii_string(6, 1, "C-OSD Config Menu"); |
// wait a bit before doing stuff so user has chance to release button |
_delay_ms(250); |
275,7 → 266,6 |
write_ascii_string_pgm(4, 10, menu[8]); |
write_ascii_string_pgm(4, 11, menu[9]); |
write_ascii_string_pgm(4, 12, menu[10]); |
write_ascii_string_pgm(4, 13, menu[11]); |
config_menu_drawings(chosen); |
282,15 → 272,15 |
while (inmenu) { |
if (s2_pressed()) { |
write_ascii_string(3, chosen + 2, " "); |
chosen = (chosen + 1) % 12; |
chosen = (chosen + 1) % 11; |
write_ascii_string(3, chosen + 2, ">"); |
_delay_ms(500); |
} else if (s1_pressed()) { |
switch (chosen) { |
case 0: // NTSC or PAL |
COSD_FLAGS_CONFIG ^= COSD_FLAG_NTSC; |
case 0: // full HUD |
COSD_FLAGS ^= COSD_FLAG_NTSC; |
// Setup Video Mode |
if (COSD_FLAGS_CONFIG & COSD_FLAG_NTSC) { |
if (COSD_FLAGS & COSD_FLAG_NTSC) { |
// NTSC + enable display immediately (VM0) |
spi_send_byte(0x00, 0b00001000); |
304,27 → 294,27 |
config_menu_drawings(chosen); |
break; |
case 1: // full HUD |
COSD_FLAGS_MODES ^= COSD_FLAG_HUD; |
COSD_FLAGS ^= COSD_FLAG_HUD; |
config_menu_drawings(chosen); |
break; |
case 2: // art horizon |
COSD_FLAGS_MODES ^= COSD_FLAG_ARTHORIZON; |
COSD_FLAGS ^= COSD_FLAG_ARTHORIZON; |
config_menu_drawings(chosen); |
break; |
case 3: // big vario |
COSD_FLAGS_MODES ^= COSD_FLAG_BIGVARIO; |
COSD_FLAGS ^= COSD_FLAG_BIGVARIO; |
config_menu_drawings(chosen); |
break; |
case 4: // statistics |
COSD_FLAGS_MODES ^= COSD_FLAG_STATS; |
COSD_FLAGS ^= COSD_FLAG_STATS; |
config_menu_drawings(chosen); |
break; |
case 5: // warnings |
COSD_FLAGS_MODES ^= COSD_FLAG_WARNINGS; |
COSD_FLAGS ^= COSD_FLAG_WARNINGS; |
config_menu_drawings(chosen); |
break; |
case 6: // 2nd voltage by c-strom |
COSD_FLAGS_MODES ^= COSD_FLAG_STROMVOLT; |
COSD_FLAGS ^= COSD_FLAG_STROMVOLT; |
config_menu_drawings(chosen); |
break; |
case 7: // reset uptime |
345,15 → 335,11 |
#endif |
config_menu_drawings(chosen); |
break; |
case 9: // GPS or BARO height |
COSD_FLAGS_CONFIG ^= COSD_FLAG_GPSHEIGHT; |
config_menu_drawings(chosen); |
break; |
case 10: // save |
case 9: // save |
save_eeprom(); |
config_menu_doclick(chosen, menu); |
break; |
case 11: // exit |
case 10: // exit |
inmenu = 0; |
break; |
} |
365,7 → 351,7 |
clear(); |
// update flags to paint display again if needed |
COSD_FLAGS_RUNTIME &= ~COSD_ICONS_WRITTEN; |
COSD_FLAGS2 &= ~COSD_ICONS_WRITTEN; |
// enable interrupts again |
sei(); |
/C-OSD/trunk/config.h |
---|
19,9 → 19,9 |
****************************************************************************/ |
#define CHECKBYTE1 23 |
#define CHECKBYTE2 5 |
#define CHECKBYTE2 23 |
extern uint8_t COSD_FLAGS_MODES, COSD_FLAGS_CONFIG, COSD_FLAGS_RUNTIME, COSD_DISPLAYMODE; |
extern uint8_t COSD_FLAGS, COSD_FLAGS2; |
extern uint8_t min_voltage; |
extern uint8_t max_voltage; |
extern uint8_t bottom_line; |
/C-OSD/trunk/main.c |
---|
190,27 → 190,27 |
* ##########################################################################*/ |
int main(void) { |
// set up FLAGS |
COSD_FLAGS_MODES = 0, COSD_FLAGS_CONFIG = 0, COSD_FLAGS_RUNTIME = 0; |
COSD_FLAGS = 0; |
#if NTSC |
COSD_FLAGS_CONFIG |= COSD_FLAG_NTSC; |
COSD_FLAGS |= COSD_FLAG_NTSC; |
#endif |
#if HUD |
COSD_FLAGS_MODES |= COSD_FLAG_HUD; |
COSD_FLAGS |= COSD_FLAG_HUD; |
#endif |
#if ARTHORIZON |
COSD_FLAGS_MODES |= COSD_FLAG_ARTHORIZON; |
COSD_FLAGS |= COSD_FLAG_ARTHORIZON; |
#endif |
#if BIGVARIO |
COSD_FLAGS_MODES |= COSD_FLAG_BIGARIO; |
COSD_FLAGS |= COSD_FLAG_BIGARIO; |
#endif |
#if STATS |
COSD_FLAGS_MODES |= COSD_FLAG_STATS; |
COSD_FLAGS |= COSD_FLAG_STATS; |
#endif |
#if WARNINGS |
COSD_FLAGS_MODES |= COSD_FLAG_WARNINGS; |
COSD_FLAGS |= COSD_FLAG_WARNINGS; |
#endif |
#if FCONLY |
COSD_FLAGS_CONFIG |= COSD_FLAG_FCMODE; |
COSD_FLAGS |= COSD_FLAG_FCMODE; |
#endif |
/C-OSD/trunk/main.h |
---|
61,16 → 61,14 |
/* ########################################################################## |
* FLAGS usable during runtime that get saved |
* ##########################################################################*/ |
#define COSD_FLAG_HUD 1 |
#define COSD_FLAG_ARTHORIZON 2 |
#define COSD_FLAG_BIGVARIO 4 |
#define COSD_FLAG_STATS 8 |
#define COSD_FLAG_WARNINGS 16 |
#define COSD_FLAG_STROMVOLT 32 |
#define COSD_FLAG_NTSC 1 |
#define COSD_FLAG_GPSHEIGHT 2 |
#define COSD_FLAG_FCMODE 4 |
#define COSD_FLAG_HUD 2 |
#define COSD_FLAG_ARTHORIZON 4 |
#define COSD_FLAG_BIGVARIO 8 |
#define COSD_FLAG_STATS 16 |
#define COSD_FLAG_WARNINGS 32 |
#define COSD_FLAG_STROMVOLT 64 |
#define COSD_FLAG_FCMODE 128 |
/* ########################################################################## |
* FLAGS only usable during runtime (not saved) |
150,10 → 148,10 |
uint8_t max_voltage; |
// Flags |
uint8_t COSD_FLAGS_MODES, COSD_FLAGS_CONFIG, COSD_FLAGS_RUNTIME, COSD_DISPLAYMODE; |
uint8_t COSD_FLAGS, COSD_FLAGS2, COSD_DISPLAYMODE; |
// stats for after flight |
int16_t max_Altimeter, altimeter_offset; |
int16_t max_Altimeter; |
uint8_t min_UBat; |
uint16_t max_GroundSpeed; |
/C-OSD/trunk/max7456_software_spi.c |
---|
247,22 → 247,15 |
void write_ndigit_number_u_10th(uint8_t x, uint8_t y, uint16_t number, int16_t length, uint8_t pad) { |
char s[7]; |
itoa(number, s, 10 ); |
uint8_t len = strlen(s); |
for (uint8_t i = 0; i < length - len; i++) { |
if (pad) write_char((x++)+(y * 30), 10); // zero |
else write_char((x++)+(y * 30), 0); // blank |
for (uint8_t i = 0; i < length - strlen(s); i++) { |
if (pad) write_char((x++)+(y * 30), 10); |
else write_ascii_char((x++)+(y * 30), 0); |
} |
char rest = s[len - 1]; |
s[len - 1] = 0; |
if (len == 1) { |
write_char((x-1)+(y * 30), 10); // zero |
} else if (len == 2 && s[0] == '-') { |
write_char((x-1)+(y * 30), 0x49); // minus |
write_char((x)+(y * 30), 10); // zero |
} else { |
write_ascii_string(x, y, s); |
} |
x += len - 1; |
char rest = s[strlen(s)-1]; |
s[strlen(s)-1] = 0; |
if (number < 10) write_char((x-1)+(y * 30), 10); // zero |
else write_ascii_string(x, y, s); |
x += strlen(s); |
write_char((x++)+(y * 30), 65); // decimal point |
write_ascii_char((x++)+(y * 30), rest); // after dot |
} |
275,24 → 268,20 |
void write_ndigit_number_s_10th(uint8_t x, uint8_t y, int16_t number, int16_t length, uint8_t pad) { |
char s[7]; |
itoa(number, s, 10 ); |
uint8_t len = strlen(s); |
for (uint8_t i = 0; i < length - len; i++) { |
if (pad) write_char((x++)+(y * 30), 10); // zero |
else write_char((x++)+(y * 30), 0); // blank |
for (uint8_t i = 0; i < length - strlen(s); i++) { |
if (pad) write_char((x++)+(y * 30), 10); |
else write_char((x++)+(y * 30), 0); |
} |
char rest = s[len - 1]; |
s[len - 1] = 0; |
if (len == 1) { |
write_char((x-1)+(y * 30), 10); // zero |
} else if (len == 2 && s[0] == '-') { |
write_char((x-1)+(y * 30), 0x49); // minus |
write_char((x)+(y * 30), 10); // zero |
} else { |
char rest = s[strlen(s)-1]; |
s[strlen(s)-1] = 0; |
if (number < 10) write_char((x)+(y * 30), 10); // zero |
else { |
write_ascii_string(x, y, s); |
} |
x += len - 1; |
x += strlen(s); |
write_char((x++)+(y * 30), 65); // decimal point |
write_ascii_char((x++)+(y * 30), rest); // after dot |
} |
/** |
/C-OSD/trunk/osd_fcmode_default.c |
---|
26,20 → 26,20 |
#if !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
int osd_fcmode_default() { |
if (COSD_FLAGS_MODES & COSD_FLAG_HUD) { |
if (COSD_FLAGS & COSD_FLAG_HUD) { |
// write icons at init or after menu/mode-switch |
if (!(COSD_FLAGS_RUNTIME & COSD_ICONS_WRITTEN)) { |
if (!(COSD_FLAGS2 & COSD_ICONS_WRITTEN)) { |
write_char_xy(10, top_line, 0xCA); // RC-transmitter |
write_char_xy(27, top_line, 0xCC); // small meters m height |
write_char_xy(7, bottom_line, 0x9E); // small v |
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) { |
if (COSD_FLAGS2 & COSD_FLAG_STROMREC) { |
write_char_xy(7, bottom_line - 1, 0x9F); // small A |
write_char_xy(14, bottom_line - 1, 0xB5); // mah |
if (COSD_FLAGS_MODES & COSD_FLAG_STROMVOLT) { |
if (COSD_FLAGS & COSD_FLAG_STROMVOLT) { |
write_char_xy(21, bottom_line - 1, 0x9E); // small V |
} |
} |
COSD_FLAGS_RUNTIME |= COSD_ICONS_WRITTEN; |
COSD_FLAGS2 |= COSD_ICONS_WRITTEN; |
} |
write_ndigit_number_u(7, top_line, debugData.Analog[10], 3, 0); |
60,16 → 60,16 |
} |
if (debugData.Analog[5] > max_Altimeter) max_Altimeter = debugData.Analog[5]; |
if (COSD_FLAGS_MODES & COSD_FLAG_ARTHORIZON) { |
if (COSD_FLAGS & COSD_FLAG_ARTHORIZON) { |
draw_artificial_horizon(top_line + 2, bottom_line - 1, debugData.Analog[0], debugData.Analog[1]); |
} |
// pre-bottom line |
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) { |
if (COSD_FLAGS2 & COSD_FLAG_STROMREC) { |
//write_ndigit_number_s(3, bottom_line - 1, ampere, 4, 0); |
write_ndigit_number_u_10th(3, bottom_line - 1, ampere / 10, 3, 0); |
write_ndigit_number_s(10, bottom_line - 1, ampere_wasted / 10, 4, 0); |
if (COSD_FLAGS_MODES & COSD_FLAG_STROMVOLT) { |
if (COSD_FLAGS & COSD_FLAG_STROMVOLT) { |
write_ndigit_number_u_10th(17, bottom_line - 1, s_volt, 3, 0); |
} |
} |
/C-OSD/trunk/osd_ncmode_default.c |
---|
26,9 → 26,9 |
#if !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
int osd_ncmode_default() { |
if (COSD_FLAGS_MODES & COSD_FLAG_HUD) { |
if (COSD_FLAGS & COSD_FLAG_HUD) { |
// write icons at init or after menu/mode-switch |
if (!(COSD_FLAGS_RUNTIME & COSD_ICONS_WRITTEN)) { |
if (!(COSD_FLAGS2 & COSD_ICONS_WRITTEN)) { |
write_char_xy(5, top_line, 0xCB); // km/h |
write_char_xy(10, top_line, 0xCA); // RC-transmitter |
write_char_xy(16, top_line, 0xD0); // degree symbol |
37,10 → 37,10 |
write_char_xy(22, top_line + 1, 0xB2); // right circle |
write_char_xy(27, top_line + 1, 0xCC); // small meters m home |
write_char_xy(7, bottom_line, 0x9E); // small V |
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) { |
if (COSD_FLAGS2 & COSD_FLAG_STROMREC) { |
write_char_xy(7, bottom_line - 1, 0x9F); // small A |
write_char_xy(14, bottom_line - 1, 0xB5); // mah |
if (COSD_FLAGS_MODES & COSD_FLAG_STROMVOLT) { |
if (COSD_FLAGS & COSD_FLAG_STROMVOLT) { |
write_char_xy(21, bottom_line - 1, 0x9E); // small V |
} |
} |
48,7 → 48,7 |
write_char_xy(21, bottom_line, 0xD2); // fly clock |
write_char_xy(26, bottom_line, 0xC8); // sat1 |
write_char_xy(27, bottom_line, 0xC9); // sat2 |
COSD_FLAGS_RUNTIME |= COSD_ICONS_WRITTEN; |
COSD_FLAGS2 |= COSD_ICONS_WRITTEN; |
} |
// first line |
76,25 → 76,16 |
draw_variometer(21, top_line, naviData.Variometer); |
if (COSD_FLAGS_CONFIG & COSD_FLAG_GPSHEIGHT) { |
if (naviData.CurrentPosition.Altitude / 1000 - altimeter_offset > 10 || naviData.CurrentPosition.Altitude / 1000 - altimeter_offset < -10) { |
// above 10m only write full meters |
write_ndigit_number_s(23, top_line, (int16_t) (naviData.CurrentPosition.Altitude / 1000 - altimeter_offset), 4, 0); // GPS |
} else { |
// up to 10m write meters.dm |
write_ndigit_number_s_10th(23, top_line, (int16_t) (naviData.CurrentPosition.Altitude / 100 - altimeter_offset * 10), 3, 0); // GPS |
} |
//note:lephisto:according to several sources it's /30 |
if (naviData.Altimeter > 300 || naviData.Altimeter < -300) { |
// above 10m only write full meters |
write_ndigit_number_s(23, top_line, naviData.Altimeter / 30, 4, 0); // BARO |
//write_ndigit_number_s(23, top_line, (int16_t) (naviData.CurrentPosition.Altitude / 1000), 4, 0); // GPS |
} else { |
//note:lephisto:according to several sources it's /30 |
if (naviData.Altimeter > 300 || naviData.Altimeter < -300) { |
// above 10m only write full meters |
write_ndigit_number_s(23, top_line, naviData.Altimeter / 30, 4, 0); // BARO |
} else { |
// up to 10m write meters.dm |
write_ndigit_number_s_10th(23, top_line, naviData.Altimeter / 3, 3, 0); // BARO |
} |
} |
+ // up to 10m write meters.dm |
+ write_ndigit_number_s_10th(23, top_line, naviData.Altimeter / 3, 3, 0); // BARO |
+ //write_ndigit_number_s_10th(23, top_line, (int16_t) (naviData.CurrentPosition.Altitude / 1000), 3, 0); // GPS |
// seccond line |
draw_compass(11, top_line + 1, naviData.CompassHeading); |
@@ -111,13 +102,11 @@ |
if (naviData.MKFlags & FLAG_MOTOR_RUN) { // should be engines running |
if (!(old_MKFlags & FLAG_MOTOR_RUN)) { // motors just started, clear middle |
clear(); |
- // remember current heigth for gps offset |
- altimeter_offset = naviData.CurrentPosition.Altitude / 1000; |
// update flags to paint display again if needed |
- COSD_FLAGS_RUNTIME &= ~COSD_ICONS_WRITTEN; |
+ COSD_FLAGS2 &= ~COSD_ICONS_WRITTEN; |
} |
- if (COSD_FLAGS_MODES & COSD_FLAG_ARTHORIZON) { |
- if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) { |
+ if (COSD_FLAGS & COSD_FLAG_ARTHORIZON) { |
+ if (COSD_FLAGS2 & 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); |
@@ -124,13 +113,13 @@ |
} |
} |
// motors are on, assume we were/are flying |
- COSD_FLAGS_RUNTIME |= COSD_WASFLYING; |
+ COSD_FLAGS2 |= COSD_WASFLYING; |
} else { |
// stats |
- if ((COSD_FLAGS_RUNTIME & COSD_WASFLYING) && (COSD_FLAGS_MODES & COSD_FLAG_STATS)) { |
+ if ((COSD_FLAGS2 & COSD_WASFLYING) && (COSD_FLAGS & 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, 4, 0); |
+ write_ndigit_number_s(18, line, max_Altimeter / 30, 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); |
@@ -141,7 +130,7 @@ |
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) { |
+ if (COSD_FLAGS2 & 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 |
@@ -153,8 +142,8 @@ |
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) { |
+ } else if (COSD_FLAGS & COSD_FLAG_ARTHORIZON) { // if no stats there is space horizon |
+ if (COSD_FLAGS2 & 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); |
@@ -161,16 +150,16 @@ |
} |
} |
} |
- if (COSD_FLAGS_MODES & COSD_FLAG_BIGVARIO) { |
+ if (COSD_FLAGS & COSD_FLAG_BIGVARIO) { |
draw_big_variometer(27, 8, naviData.Variometer); |
} |
// pre-bottom line |
- if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) { |
+ if (COSD_FLAGS2 & COSD_FLAG_STROMREC) { |
//write_ndigit_number_s(3, bottom_line - 1, ampere, 4, 0); |
write_ndigit_number_u_10th(3, bottom_line - 1, ampere / 10, 3, 0); |
write_ndigit_number_s(10, bottom_line - 1, ampere_wasted / 10, 4, 0); |
- if (COSD_FLAGS_MODES & COSD_FLAG_STROMVOLT) { |
+ if (COSD_FLAGS & COSD_FLAG_STROMVOLT) { |
write_ndigit_number_u_10th(17, bottom_line - 1, s_volt, 3, 0); |
} |
} |
@@ -211,11 +200,7 @@ |
// remember statistics (only when engines running) |
if (naviData.MKFlags & FLAG_MOTOR_RUN) { |
- if (COSD_FLAGS_CONFIG & COSD_FLAG_GPSHEIGHT) { |
- if (naviData.CurrentPosition.Altitude / 1000 - altimeter_offset > max_Altimeter) max_Altimeter = naviData.CurrentPosition.Altitude / 1000; |
- } else { |
- if (naviData.Altimeter / 30 > max_Altimeter) max_Altimeter = naviData.Altimeter / 30; |
- } |
+ if (naviData.Altimeter > max_Altimeter) max_Altimeter = naviData.Altimeter; |
if (naviData.GroundSpeed > max_GroundSpeed) max_GroundSpeed = naviData.GroundSpeed; |
if (naviData.HomePositionDeviation.Distance > max_Distance) { |
max_Distance = naviData.HomePositionDeviation.Distance; |
/C-OSD/trunk/osd_ncmode_minimal.c |
---|
26,9 → 26,9 |
#if !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
int osd_ncmode_minimal() { |
if (COSD_FLAGS_MODES & COSD_FLAG_HUD) { |
if (COSD_FLAGS & COSD_FLAG_HUD) { |
// write icons at init or after menu/mode-switch |
if (!(COSD_FLAGS_RUNTIME & COSD_ICONS_WRITTEN)) { |
if (!(COSD_FLAGS2 & COSD_ICONS_WRITTEN)) { |
write_char_xy(4, top_line, 0xCB); // km/h |
write_char_xy(15, top_line, 0xCC); // small meters m height |
write_char_xy(26, top_line, 0xCC); // small meters m height |
38,7 → 38,7 |
write_char_xy(17, bottom_line, 0xD2); // fly clock |
write_char_xy(26, bottom_line, 0xC8); // sat1 |
write_char_xy(27, bottom_line, 0xC9); // sat2 |
COSD_FLAGS_RUNTIME |= COSD_ICONS_WRITTEN; |
COSD_FLAGS2 |= COSD_ICONS_WRITTEN; |
} |
// first line |
65,10 → 65,10 |
if (!(old_MKFlags & FLAG_MOTOR_RUN)) { // motors just started, clear middle |
clear(); |
// update flags to paint display again if needed |
COSD_FLAGS_RUNTIME &= ~COSD_ICONS_WRITTEN; |
COSD_FLAGS2 &= ~COSD_ICONS_WRITTEN; |
} |
if (COSD_FLAGS_MODES & COSD_FLAG_ARTHORIZON) { |
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) { |
if (COSD_FLAGS & COSD_FLAG_ARTHORIZON) { |
if (COSD_FLAGS2 & 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); |
75,10 → 75,10 |
} |
} |
// motors are on, assume we were/are flying |
COSD_FLAGS_RUNTIME |= COSD_WASFLYING; |
COSD_FLAGS2 |= COSD_WASFLYING; |
} else { |
// stats |
if ((COSD_FLAGS_RUNTIME & COSD_WASFLYING) && (COSD_FLAGS_MODES & COSD_FLAG_STATS)) { |
if ((COSD_FLAGS2 & COSD_WASFLYING) && (COSD_FLAGS & 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 / 30, 4, 0); |
92,7 → 92,7 |
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) { |
if (COSD_FLAGS2 & 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 |
104,8 → 104,8 |
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) { |
} else if (COSD_FLAGS & COSD_FLAG_ARTHORIZON) { // if no stats there is space horizon |
if (COSD_FLAGS2 & 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); |
112,12 → 112,12 |
} |
} |
} |
if (COSD_FLAGS_MODES & COSD_FLAG_BIGVARIO) { |
if (COSD_FLAGS & COSD_FLAG_BIGVARIO) { |
draw_big_variometer(27, 8, naviData.Variometer); |
} |
// pre-bottom line |
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) { |
if (COSD_FLAGS2 & COSD_FLAG_STROMREC) { |
//write_ndigit_number_s(3, bottom_line - 1, ampere, 4, 0); |
write_ndigit_number_u_10th(3, bottom_line - 1, ampere / 10, 3, 0); |
write_ndigit_number_s(10, bottom_line - 1, ampere_wasted / 10, 4, 0); |