Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
107 | mikeljo | 1 | /* |
2 | Mobiles Mikrokopter-Tool |
||
3 | +++++ BETA 0.1 +++++ |
||
4 | Diese Software ist Open-Source und darf nicht für kommerzielle Zwecke verwendet werden. |
||
5 | Die Software darf kopiert, verändert und weitergegeben werden, unter der Bedingung, |
||
6 | dass immer der komplette Source inklusive dieser Lizenz weitergegeben wird. |
||
7 | Für den LCD-Font gilt das dort angegebene Copyright. |
||
8 | (C) 2008 Thomas Kaiser, thomas@ft-fanpage.de |
||
9 | |||
10 | Die Software wird "so wie sie ist" geliefert. |
||
11 | Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion. |
||
12 | Benutzung auf eigene Gefahr. |
||
13 | Ich übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden. |
||
14 | Dies gilt insbesondere für die vorliegende Beta-Version. |
||
15 | |||
16 | Teile des Source (z.B. die base64-Funktionen) sind abgewandelte Funktionen aus dem Mikrokopter-Source, |
||
17 | siehe http://www.mikrokopter.de |
||
18 | |||
19 | */ |
||
20 | |||
21 | //#define F_CPU 7378200ul |
||
22 | |||
23 | #include <avr/io.h> |
||
24 | #include <util/delay.h> |
||
25 | #include <avr/interrupt.h> |
||
26 | #include <stdlib.h> |
||
27 | #include <avr/pgmspace.h> |
||
28 | |||
29 | #include "main.h" |
||
30 | #include "lcd.h" |
||
31 | #include "rs232.h" |
||
32 | #include "parameter.h" |
||
33 | #include "menu.h" |
||
34 | #include "display.h" |
||
35 | #include "base64.h" |
||
36 | #include "timer.h" |
||
37 | |||
38 | unsigned char EEPromArray[E2END+1] EEMEM; |
||
39 | |||
40 | void ReadParameter(void) |
||
41 | { |
||
42 | // unsigned char *buffer; |
||
43 | |||
44 | LCD_ORIENTATION = eeprom_read_byte(&EEPromArray[EEPROM_ADR_ORIENTATION]); |
||
45 | |||
46 | // set = eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]); |
||
47 | // if (number > 5) number = 5; |
||
48 | // eeprom_read_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * number], length); |
||
49 | } |
||
50 | |||
51 | void WriteParameterset(void) |
||
52 | { |
||
53 | |||
54 | eeprom_write_byte(&EEPromArray[EEPROM_ADR_VALID], 1); |
||
55 | eeprom_write_byte(&EEPromArray[EEPROM_ADR_ORIENTATION], 0); |
||
56 | |||
57 | // if(number > 5) number = 5; |
||
58 | // eeprom_write_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * number], length); |
||
59 | // eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], number); // diesen Parametersatz als aktuell merken |
||
60 | } |
||
61 | |||
62 | |||
63 | int main (void) |
||
64 | { |
||
65 | PORTA = 0xFF; // unbenutzte Pins auf Pull-Up |
||
66 | PORTB = 0x43; |
||
67 | PORTC = 0xFC; |
||
68 | PORTD = 0x7C; |
||
69 | |||
70 | DDRC = 0x03; // Pins für Beleuchtung auf Ausgang |
||
71 | DDRD = 0x80; |
||
72 | |||
73 | if ((eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID])) != 1) |
||
74 | WriteParameterset(); |
||
75 | |||
76 | ReadParameter(); |
||
77 | |||
78 | // LCD_ORIENTATION = 0; |
||
79 | |||
80 | lcd_init(); |
||
81 | RS232_init(); |
||
82 | timer_init(); |
||
83 | |||
84 | sei(); |
||
85 | |||
86 | for (;;) |
||
87 | main_menu(); |
||
88 | } |