Subversion Repositories Projects

Rev

Rev 111 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
111 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
}