Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 757 → Rev 758

/C-OSD/trunk/CHANGE.LOG
18,6 → 18,10
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
****************************************************************************/
 
20100419-0020
*fixed bug causing PPM-based display on/off to fail
*fixed display of AGRESSiVA-horizion during motor run
 
20100412-2125
*added mph/ft (two new chars added, reflash characters if you need ft/mph)
*AGRESSiVA-horizion now switchable via menu
/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="1015 148 1700 605" LineCol="130 0" State="Maximized"/><File00001 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\mk-data-structs.h" Position="1037 170 1714 597" LineCol="68 0" State="Maximized"/><File00002 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.h" Position="1059 192 1736 619" LineCol="0 0" State="Maximized"/><File00003 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.c" Position="1081 214 1758 641" LineCol="182 0" State="Maximized"/><File00004 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.c" Position="1103 236 1780 663" LineCol="117 0" State="Maximized"/><File00005 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.h" Position="1125 258 1802 685" LineCol="0 0" State="Maximized"/><File00006 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.c" Position="1147 280 1824 707" LineCol="2924 13" State="Maximized"/><File00007 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.h" Position="989 103 1925 759" LineCol="50 23" State="Maximized"/><File00008 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.c" Position="1191 324 1868 751" LineCol="206 0" State="Maximized"/><File00009 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.h" Position="993 126 1670 553" LineCol="70 38" State="Maximized"/><File00010 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.c" Position="1015 148 1692 575" LineCol="204 2" State="Maximized"/><File00011 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.c" Position="1037 170 1714 597" LineCol="104 0" State="Maximized"/><File00012 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.c" Position="1059 192 1736 619" LineCol="324 20" State="Maximized"/><File00013 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.h" Position="1081 214 1758 641" LineCol="25 16" State="Maximized"/><File00014 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.c" Position="1103 236 1780 663" LineCol="0 0" State="Maximized"/><File00015 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.h" Position="1125 258 1802 685" LineCol="0 0" State="Maximized"/><File00016 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.c" Position="1147 280 1824 707" LineCol="0 0" State="Maximized"/><File00017 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.h" Position="1169 302 1846 729" LineCol="0 0" State="Maximized"/><File00018 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.c" Position="1191 324 1868 751" LineCol="0 0" State="Maximized"/><File00019 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.h" Position="993 126 1670 553" LineCol="0 0" State="Maximized"/><File00020 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.c" Position="1015 148 1692 575" LineCol="171 0" State="Maximized"/><File00021 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.h" Position="1037 170 1714 597" LineCol="0 0" State="Maximized"/><File00022 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.h" Position="1059 192 1736 619" LineCol="0 0" State="Maximized"/><File00023 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.h" Position="1081 214 1758 641" LineCol="7 0" State="Maximized"/><File00024 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.h" Position="1103 236 1780 663" LineCol="24 0" State="Maximized"/><File00025 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_jopl.c" Position="1125 258 1802 685" LineCol="28 0" State="Maximized"/><File00026 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\default\Makefile" Position="1147 280 1824 707" LineCol="11 20" 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="908 133 1642 590" LineCol="397 5" State="Maximized"/><File00001 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\mk-data-structs.h" Position="930 155 1656 582" LineCol="68 0" State="Maximized"/><File00002 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.h" Position="952 177 1678 604" LineCol="0 0" State="Maximized"/><File00003 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\max7456_software_spi.c" Position="974 199 1700 626" LineCol="92 0" State="Maximized"/><File00004 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.c" Position="996 221 1722 648" LineCol="117 0" State="Maximized"/><File00005 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\usart1.h" Position="1018 243 1744 670" LineCol="0 0" State="Maximized"/><File00006 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.c" Position="1040 265 1766 692" LineCol="2924 0" State="Maximized"/><File00007 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\main.h" Position="1062 287 1788 714" LineCol="146 24" State="Maximized"/><File00008 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.c" Position="1084 309 1810 736" LineCol="215 0" State="Maximized"/><File00009 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_helpers.h" Position="1106 331 1832 758" LineCol="70 0" State="Maximized"/><File00010 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.c" Position="908 133 1634 560" LineCol="32 47" State="Maximized"/><File00011 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.c" Position="930 155 1656 582" LineCol="104 0" State="Maximized"/><File00012 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.c" Position="904 110 1840 766" LineCol="337 45" State="Maximized"/><File00013 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\config.h" Position="974 199 1700 626" LineCol="25 0" State="Maximized"/><File00014 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.c" Position="996 221 1722 648" LineCol="0 0" State="Maximized"/><File00015 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\spi.h" Position="1018 243 1744 670" LineCol="0 0" State="Maximized"/><File00016 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.c" Position="1040 265 1766 692" LineCol="0 0" State="Maximized"/><File00017 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\buttons.h" Position="1062 287 1788 714" LineCol="0 0" State="Maximized"/><File00018 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.c" Position="1084 309 1810 736" LineCol="43 3" State="Maximized"/><File00019 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\ppm.h" Position="1106 331 1832 758" LineCol="0 0" State="Maximized"/><File00020 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.c" Position="908 133 1634 560" LineCol="171 0" State="Maximized"/><File00021 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_default.h" Position="930 155 1656 582" LineCol="0 0" State="Maximized"/><File00022 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_ncmode_minimal.h" Position="952 177 1678 604" LineCol="0 0" State="Maximized"/><File00023 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_default.h" Position="974 199 1700 626" LineCol="7 0" State="Maximized"/><File00024 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\characters.h" Position="996 221 1722 648" LineCol="24 0" State="Maximized"/><File00025 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\osd_fcmode_jopl.c" Position="1018 243 1744 670" LineCol="28 0" State="Maximized"/><File00026 Name="G:\Eigene Dateien\C-Projects\C-OSD\trunk\default\Makefile" Position="1040 265 1766 692" LineCol="16 59" State="Maximized"/></Files></AVRWorkspace>
/C-OSD/trunk/config.c
23,6 → 23,7
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <util/delay.h>
//#include <avr/delay.h>
#include "max7456_software_spi.h"
#include "config.h"
#include "main.h"
82,6 → 83,7
eeprom_write_byte(&ee_COSD_DISPLAYMODE, COSD_DISPLAYMODE);
}
 
 
/**
* auto config some stuff on startup, currently only battery cells
*/
164,7 → 166,7
//usart1_request_mk_data(1, 'o', 100);
#endif
 
_delay_ms(3000);
_delay_ms(3000);
clear();
// update flags to paint display again because of clear
COSD_FLAGS_RUNTIME &= ~COSD_ICONS_WRITTEN;
/C-OSD/trunk/osd_helpers.c
185,14 → 185,14
* ##########################################################################*/
// draw routine
int draw_noodles(int8_t pos_x, int8_t pos_y, int8_t num, int8_t old_num) {
char noodle[5] = {0x78, 0x79, 0x7A, 0x7B, 0x7C};
int8_t line,car;
const char noodle[5] = {0x78, 0x79, 0x7A, 0x7B, 0x7C};
int8_t line, car;
line = num / 5;
car = num - (line * 5);
if (num != old_num) {
write_char_xy(15 - pos_x , pos_y + (old_num), 0);
}
}
 
if (num < 0) {car = -1* car; car = 4 - car; line--; num = num - 5;}
write_char_xy(15 - pos_x , pos_y + line, noodle[car]);
211,8 → 211,8
uint8_t center_x = 15;
uint8_t center_y = lastline - firstline;
center_y = 7;
write_char_xy(center_x - 7 ,center_y,226);
write_char_xy(center_x + 6 ,center_y,226);
write_char_xy(center_x - 7 ,center_y,226); // left bar
write_char_xy(center_x + 6 ,center_y,226); // right bar
 
 
#if FCONLY
229,7 → 229,7
//write_ndigit_number_u (0 , 5 , ticy ,3, 1);
//write_ndigit_number_u (0 , 6 , ticx ,3, 1);
 
if ((ticy != old_ticy) || (ticx != old_ticx)) {
//if ((ticy != old_ticy) || (ticx != old_ticx)) {
old1 = draw_noodles( 4, 3, (ticy / 2) + 20 + ticx, old1);
old2 = draw_noodles( 3, 3, (ticy / 3) + 20 + ticx, old2);
old3 = draw_noodles( 2, 3, (ticy / 6) + 20 + ticx, old3);
238,7 → 238,7
old6 = draw_noodles( - 2, 3, -(ticy / 3) + 20 + ticx, old6);
old7 = draw_noodles( - 1, 3, -(ticy / 6) + 20 + ticx, old7);
old8 = draw_noodles( 0, 3, -(ticy / 14) + 20 + ticx, old8);
}
//}
// update old vars
old_ticy = ticy;
old_ticx = ticx;
257,7 → 257,7
* from line <firstline> to <listlines> for given <nick> and <roll> values
*/
void draw_artificial_horizon(uint8_t firstline, uint8_t lastline, int16_t nick, int16_t roll) {
char noodle[5] = {225, 225, 226, 227, 227};
const char noodle[5] = {225, 225, 226, 227, 227};
uint8_t center_x = 15;
uint8_t center_y = lastline - firstline;
center_y = 7;
/C-OSD/trunk/osd_ncmode_default.c
153,12 → 153,16
// update flags to paint display again if needed
COSD_FLAGS_RUNTIME &= ~COSD_ICONS_WRITTEN;
}
if (COSD_FLAGS_MODES & COSD_FLAG_ARTHORIZON) {
if (COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) {
draw_artificial_horizon(top_line + 2, bottom_line - 2, naviData.AngleNick, naviData.AngleRoll);
if (COSD_FLAGS_MODES & COSD_FLAG_ARTHORIZON) { // horizon
uint8_t horizon_bottom = bottom_line - 1;
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) || (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) {
horizon_bottom--;
}
if (COSD_FLAGS_MODES & COSD_FLAG_AGGRHORIZON) {
draw_agressiva_artificial_horizon(top_line + 2, horizon_bottom, naviData.AngleNick, naviData.AngleRoll);
} else {
draw_artificial_horizon(top_line + 2, bottom_line - 1, naviData.AngleNick, naviData.AngleRoll);
}
draw_artificial_horizon(top_line + 2, horizon_bottom, naviData.AngleNick, naviData.AngleRoll);
}
}
// motors are on, assume we were/are flying
COSD_FLAGS_RUNTIME |= COSD_WASFLYING;
/C-OSD/trunk/ppm.c
54,19 → 54,24
ppm = TCNT1 - old_timer1;
ppm -= 256;
if (ppm < 128) { // we want HUD
COSD_FLAGS_CONFIG |= COSD_FLAG_HUD;
if (!(COSD_FLAGS_MODES & COSD_FLAG_HUD)) {
COSD_FLAGS_RUNTIME &= ~COSD_ICONS_WRITTEN;
}
COSD_FLAGS_MODES |= COSD_FLAG_HUD;
} else { // we do not want hud
if (COSD_FLAGS_CONFIG & COSD_FLAG_HUD) {
if (COSD_FLAGS_MODES & COSD_FLAG_HUD) {
clear();
}
COSD_FLAGS_CONFIG &= ~COSD_FLAG_HUD;
COSD_FLAGS_MODES &= ~COSD_FLAG_HUD;
}
}
EMCUCR |= (1<<ISC2); // next one is rising
}
//write_ndigit_number_u(2, 2, ppm, 1000, 0); // debug
//write_ndigit_number_u(2, 3, valid_ppm_to_go, 100, 0); // debug
//write_ndigit_number_u(2, 4, COSD_FLAGS, 100, 0); // debug
//write_ndigit_number_u(2, 5, ppm, 1000, 0); // debug
//write_ndigit_number_u(2, 6, valid_ppm_to_go, 100, 0); // debug
//write_ndigit_number_u(2, 7, COSD_FLAGS_CONFIG, 100, 0); // debug
PORTC ^= (1 << PC3);
uptime = ppm;
}
 
#endif