/C-OSD/trunk/CHANGE.LOG |
---|
18,6 → 18,12 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
20090612-2100 |
*spi transfer now struct driven |
*lesser spi update rate (caused problems on some strom-slaves) |
*voltage gets transfered via spi as well |
*menu to switch display of 2nd voltage measured by C-Strom on and off |
20090604-1350 |
*bugfix for stats |
/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="698 169 2122 761" LineCol="108 35" State="Maximized"/><File00001 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\mk-data-structs.h" Position="720 191 2158 775" LineCol="38 0" State="Maximized"/><File00002 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.h" Position="742 213 2180 797" LineCol="40 0" State="Maximized"/><File00003 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.c" Position="764 235 2202 819" LineCol="149 71" State="Maximized"/><File00004 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.c" Position="786 257 2224 841" LineCol="0 0" State="Maximized"/><File00005 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.h" Position="808 279 2246 863" LineCol="23 0" State="Maximized"/><File00006 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.c" Position="830 301 2268 885" LineCol="27 0" State="Maximized"/><File00007 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.h" Position="852 323 2290 907" LineCol="150 0" State="Maximized"/><File00008 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.c" Position="874 345 2312 929" LineCol="178 0" State="Maximized"/><File00009 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.h" Position="896 367 2334 951" LineCol="18 0" State="Maximized"/><File00010 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.c" Position="918 389 2356 973" LineCol="133 47" State="Maximized"/><File00011 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.c" Position="694 146 1766 926" LineCol="8 0" State="Maximized"/><File00012 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.c" Position="962 433 2400 1017" LineCol="214 77" State="Maximized"/><File00013 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.h" Position="698 169 2136 753" LineCol="23 0" State="Maximized"/><File00014 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.c" Position="720 191 2158 775" LineCol="0 0" State="Maximized"/><File00015 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.h" Position="742 213 2180 797" LineCol="0 0" State="Maximized"/><File00016 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.c" Position="764 235 2202 819" LineCol="0 0" State="Maximized"/><File00017 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.h" Position="786 257 2224 841" LineCol="0 0" State="Maximized"/><File00018 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.c" Position="808 279 2246 863" LineCol="24 0" State="Maximized"/><File00019 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.h" Position="830 301 2268 885" LineCol="18 0" State="Maximized"/><File00020 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.c" Position="852 323 2290 907" LineCol="82 32" State="Maximized"/><File00021 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.h" Position="874 345 2312 929" LineCol="20 0" State="Maximized"/><File00022 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.h" Position="896 367 2334 951" LineCol="20 0" State="Maximized"/><File00023 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.h" Position="918 389 2356 973" LineCol="20 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="768 160 1594 688" LineCol="177 16" State="Maximized"/><File00001 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\mk-data-structs.h" Position="790 182 1608 680" LineCol="44 0" State="Maximized"/><File00002 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.h" Position="812 204 1630 702" LineCol="48 0" State="Maximized"/><File00003 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.c" Position="834 226 1652 724" LineCol="81 0" State="Maximized"/><File00004 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.c" Position="856 248 1674 746" LineCol="118 0" State="Maximized"/><File00005 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.h" Position="878 270 1696 768" LineCol="23 0" State="Maximized"/><File00006 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.c" Position="900 292 1718 790" LineCol="27 0" State="Maximized"/><File00007 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.h" Position="922 314 1740 812" LineCol="73 27" State="Maximized"/><File00008 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.c" Position="944 336 1762 834" LineCol="178 0" State="Maximized"/><File00009 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.h" Position="966 358 1784 856" LineCol="18 0" State="Maximized"/><File00010 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.c" Position="988 380 1806 878" LineCol="39 0" State="Maximized"/><File00011 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.c" Position="764 137 1836 908" LineCol="38 13" State="Maximized"/><File00012 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.c" Position="768 160 1586 658" LineCol="213 43" State="Maximized"/><File00013 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.h" Position="790 182 1608 680" LineCol="23 0" State="Maximized"/><File00014 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.c" Position="812 204 1630 702" LineCol="29 0" State="Maximized"/><File00015 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.h" Position="834 226 1652 724" LineCol="26 0" State="Maximized"/><File00016 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.c" Position="856 248 1674 746" LineCol="0 0" State="Maximized"/><File00017 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.h" Position="878 270 1696 768" LineCol="0 0" State="Maximized"/><File00018 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.c" Position="900 292 1718 790" LineCol="24 0" State="Maximized"/><File00019 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.h" Position="922 314 1740 812" LineCol="18 0" State="Maximized"/><File00020 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.c" Position="944 336 1762 834" LineCol="82 0" State="Maximized"/><File00021 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.h" Position="966 358 1784 856" LineCol="20 0" State="Maximized"/><File00022 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.h" Position="988 380 1806 878" LineCol="20 0" State="Maximized"/><File00023 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.h" Position="1010 402 1828 900" LineCol="20 0" State="Maximized"/></Files></AVRWorkspace> |
/C-OSD/trunk/config.c |
---|
67,8 → 67,8 |
const char menu_item3[] PROGMEM = "Big Vario bar"; |
const char menu_item4[] PROGMEM = "Statistics"; |
const char menu_item5[] PROGMEM = "Warnings"; // TODO: do it! |
const char menu_item6[] PROGMEM = "Reset uptime"; |
const char menu_item7[] PROGMEM = "Request OSD-data"; |
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 = "Save config"; |
const char menu_item10[] PROGMEM = "EXIT"; |
211,6 → 211,11 |
} else { |
write_ascii_string_pgm(23, 7, OFF); |
} |
if (COSD_FLAGS & COSD_FLAG_STROMVOLT) { |
write_ascii_string_pgm(23, 8, ON); |
} else { |
write_ascii_string_pgm(23, 8, OFF); |
} |
//write_ndigit_number_u(23, 10, COSD_DISPLAYMODE, 10, 0); |
write_ascii_string_pgm(18, 10, (const char *) (pgm_read_word(&(mode->desc)))); |
300,23 → 305,14 |
COSD_FLAGS ^= COSD_FLAG_WARNINGS; |
config_menu_drawings(chosen); |
break; |
case 6: // reset uptime |
case 6: // 2nd voltage by c-strom |
COSD_FLAGS ^= COSD_FLAG_STROMVOLT; |
config_menu_drawings(chosen); |
break; |
case 7: // reset uptime |
uptime = 0; |
config_menu_doclick(chosen, menu); |
break; |
case 7: // re-request OSD data |
#if FCONLY |
// request data ever 100ms from FC; |
usart1_request_mk_data(0, 'd', 100); |
#else |
// request OSD Data from NC every 100ms |
usart1_request_mk_data(1, 'o', 100); |
// and disable debug... |
usart1_request_mk_data(0, 'd', 0); |
#endif |
config_menu_doclick(chosen, menu); |
break; |
case 8: // change mode |
#if FCONLY |
COSD_DISPLAYMODE = (COSD_DISPLAYMODE + 1) % (sizeof(fcdisplaymodes) / sizeof(displaymode_t)); |
/C-OSD/trunk/main.c |
---|
160,6 → 160,8 |
* timer stuff |
* ##########################################################################*/ |
static uint8_t delay_spi = 0; |
/** |
* timer kicks in every 1000uS ^= 1ms |
*/ |
170,10 → 172,14 |
seconds_since_last_data++; |
} |
// in case there is still some spi data to send do it now |
// delay to give the slave some time to compute values |
if (spi_ready && icnt) { |
SPDR = *iptr; |
if (!delay_spi--) { |
delay_spi = 8; |
spi_send_next(); |
} |
} |
} |
#endif // ends !(ALLCHARSDEBUG|(WRITECHARS != -1))#endif // ends !(ALLCHARSDEBUG|(WRITECHARS != -1)) |
/* ########################################################################## |
319,18 → 325,11 |
// in case SPI is ready and there is nothing to send right now |
if (!icnt && spi_ready) { |
// correct transfer ends with d (done) |
if (spi_cmd_buffer[0] == 'd') { |
ampere = spi_cmd_buffer[1] << 8; |
ampere |= spi_cmd_buffer[2]; |
ampere_wasted = spi_cmd_buffer[3]; |
ampere_wasted = ampere_wasted << 8; |
ampere_wasted |= spi_cmd_buffer[4]; |
ampere_wasted = ampere_wasted << 8; |
ampere_wasted |= spi_cmd_buffer[5]; |
ampere_wasted = ampere_wasted << 8; |
ampere_wasted |= spi_cmd_buffer[6]; |
//ampere = *((int16_t *) spi_cmd_buffer + 1); |
//ampere_wasted = *((int32_t *) &spi_cmd_buffer + 3); |
if (SPI_buffer.buffer.chk == 'd') { |
ampere = SPI_buffer.data.ampere; |
ampere_wasted = SPI_buffer.data.mah; |
s_volt = SPI_buffer.data.volt; |
// if this is the first receival we should print the small A |
if (!(COSD_FLAGS2 & COSD_FLAG_STROMREC)) { |
clear(); |
338,20 → 337,11 |
// update this flag |
COSD_FLAGS2 |= COSD_FLAG_STROMREC; |
} |
//write_ascii_char(8+4*30, 'v'); // valid |
} else { |
// update flags |
COSD_FLAGS2 &= ~COSD_FLAG_STROMREC; |
//write_ascii_char(8+4*30, 'i'); // invalid |
} |
spi_cmd_buffer[0] = 'A'; |
spi_cmd_buffer[1] = 'B'; |
spi_cmd_buffer[2] = 'C'; |
spi_cmd_buffer[3] = 'D'; |
spi_cmd_buffer[4] = 'E'; |
spi_cmd_buffer[5] = 'F'; |
spi_cmd_buffer[6] = 'G'; |
StartTransfer((unsigned char*) spi_cmd_buffer, 7); |
StartTransfer(9); |
} |
if (rxd_buffer_locked) { |
#if FCONLY |
/C-OSD/trunk/main.h |
---|
71,6 → 71,7 |
#define COSD_FLAG_BIGVARIO 8 |
#define COSD_FLAG_STATS 16 |
#define COSD_FLAG_WARNINGS 32 |
#define COSD_FLAG_STROMVOLT 64 |
/* ########################################################################## |
* FLAGS only usable during runtime (not saved) |
102,9 → 103,9 |
* ##########################################################################*/ |
extern volatile uint16_t icnt; |
extern volatile unsigned char * iptr; |
extern volatile unsigned char spi_cmd_buffer[]; |
extern volatile uint8_t spi_cmd_buffer[]; |
extern volatile uint8_t spi_ready; |
extern int16_t ampere, max_ampere; |
extern int16_t ampere, max_ampere, s_volt; |
extern int32_t ampere_wasted; |
/* ########################################################################## |
/C-OSD/trunk/osd_fcmode_default.c |
---|
35,7 → 35,10 |
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 & COSD_FLAG_STROMVOLT) { |
write_char_xy(21, bottom_line - 1, 0x9E); // small V |
} |
} |
COSD_FLAGS2 |= COSD_ICONS_WRITTEN; |
} |
66,7 → 69,10 |
//write_ndigit_number_s(3, bottom_line - 1, ampere, 1000, 0); |
write_ndigit_number_u_10th(3, bottom_line - 1, ampere / 10, 100, 0); |
write_ndigit_number_s(10, bottom_line - 1, ampere_wasted / 10, 1000, 0); |
if (COSD_FLAGS & COSD_FLAG_STROMVOLT) { |
write_ndigit_number_u_10th(17, bottom_line - 1, s_volt, 100, 0); |
} |
} |
draw_battery(2, bottom_line, min_voltage, debugData.Analog[9], max_voltage); |
write_ndigit_number_u_10th(3, bottom_line, debugData.Analog[9], 100, 0); |
/C-OSD/trunk/osd_ncmode_default.c |
---|
40,7 → 40,10 |
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 & COSD_FLAG_STROMVOLT) { |
write_char_xy(21, bottom_line - 1, 0x9E); // small V |
} |
} |
write_char_xy(14, bottom_line, 0xD1); // on clock |
write_char_xy(21, bottom_line, 0xD2); // fly clock |
write_char_xy(26, bottom_line, 0xC8); // sat1 |
155,7 → 158,10 |
//write_ndigit_number_s(3, bottom_line - 1, ampere, 1000, 0); |
write_ndigit_number_u_10th(3, bottom_line - 1, ampere / 10, 100, 0); |
write_ndigit_number_s(10, bottom_line - 1, ampere_wasted / 10, 1000, 0); |
if (COSD_FLAGS & COSD_FLAG_STROMVOLT) { |
write_ndigit_number_u_10th(17, bottom_line - 1, s_volt, 100, 0); |
} |
} |
// bottom line |
draw_battery(2, bottom_line, min_voltage, naviData.UBat, max_voltage); |
/C-OSD/trunk/spi.c |
---|
24,10 → 24,10 |
#include "main.h" |
volatile uint16_t icnt = 0; |
volatile unsigned char * iptr; |
volatile unsigned char spi_cmd_buffer[8]; |
volatile uint8_t request_count = 0; |
volatile uint8_t spi_ready = 1; |
int16_t ampere = 0, max_ampere = 0; |
volatile union SPI_buffer_t SPI_buffer; |
int16_t ampere = 0, max_ampere = 0, s_volt; |
int32_t ampere_wasted = 0; |
#define INT0_HIGH PORTD |= (1 << PD2); |
53,9 → 53,13 |
* SPI interrupt handler |
*/ |
ISR(SPI_STC_vect) { |
*iptr++ = SPDR; // safe received byte to buffer |
icnt--; // dec length |
if (icnt) { |
if (request_count == 0) { |
SPI_buffer.buffer.chk = SPDR; // firs char received is check byte from last transfer |
} else { |
SPI_buffer.buffer.c[request_count - 1] = SPDR; // safe received byte to buffer |
} |
request_count++; |
if (--icnt) { |
//SPDR = *iptr; // send next byte |
spi_ready = 1; // we _should_ send later because the slave needs more time |
} else { |
72,15 → 76,24 |
} |
/** |
* start a new transfer of <data> with length <len> |
* start a new transfer with length <len> |
*/ |
void StartTransfer(unsigned char *data, uint16_t len) { |
void StartTransfer(uint16_t len) { |
INT0_LOW // /SS LOW ^= SS HIGH ^= slave should listen |
// this is a new request |
request_count = 0; |
// set up pointer and length for interrupt handler |
iptr = data; |
icnt = len; |
SPCR |= _BV(SPIE); // enable spi interrupt |
SPDR = *iptr; // start transfer by first bye |
SPDR = 'A'; // start transfer by first command char |
} |
/** |
* send next command through spi |
*/ |
void spi_send_next() { |
SPDR = 'A' + request_count; |
} |
/C-OSD/trunk/spi.h |
---|
18,6 → 18,27 |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
****************************************************************************/ |
/* |
* structs 'n union for easy SPI transfer |
*/ |
typedef struct { |
int16_t ampere; |
int32_t mah; |
int16_t volt; |
} __attribute__((packed)) SPI_strom_data_t; |
typedef struct { |
uint8_t c[10]; |
uint8_t chk; |
} __attribute__((packed)) SPI_char_buffer_t; |
union SPI_buffer_t { |
SPI_strom_data_t data; |
SPI_char_buffer_t buffer; |
}; |
volatile union SPI_buffer_t SPI_buffer; |
/** |
* SPI interrupt handler |
*/ |
34,6 → 55,11 |
int TransferIsBusy(void); |
/** |
* start a new transfer of <data> with length <len> |
* start a new transfer with length <len> |
*/ |
void StartTransfer(unsigned char *, uint16_t); |
void StartTransfer(uint16_t); |
/** |
* send next command through spi |
*/ |
void spi_send_next(); |