Subversion Repositories Projects

Rev

Blame | Last modification | View Log | RSS feed

/*
Mobiles Mikrokopter-Tool
+++++ BETA 0.1 +++++
Diese Software ist Open-Source und darf nicht für kommerzielle Zwecke verwendet werden.
Die Software darf kopiert, verändert und weitergegeben werden, unter der Bedingung,
dass immer der komplette Source inklusive dieser Lizenz weitergegeben wird.
Für den LCD-Font gilt das dort angegebene Copyright.
(C) 2008 Thomas Kaiser, thomas@ft-fanpage.de

Die Software wird "so wie sie ist" geliefert.
Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion.
Benutzung auf eigene Gefahr.
Ich übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden.
Dies gilt insbesondere für die vorliegende Beta-Version.

Teile des Source (z.B. die base64-Funktionen) sind abgewandelte Funktionen aus dem Mikrokopter-Source,
siehe http://www.mikrokopter.de

*/


//#define F_CPU 7378200ul

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdlib.h>
#include <avr/pgmspace.h>

#include "main.h"
#include "lcd.h"
#include "rs232.h"
#include "parameter.h"
#include "menu.h"
#include "display.h"
#include "base64.h"
#include "timer.h"

unsigned char EEPromArray[E2END+1] EEMEM;

void ReadParameter(void)
{
//      unsigned char *buffer;

        LCD_ORIENTATION = eeprom_read_byte(&EEPromArray[EEPROM_ADR_ORIENTATION]);

//      set = eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]);
//   if (number > 5) number = 5;
//   eeprom_read_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * number], length);
}

void WriteParameterset(void)
{

        eeprom_write_byte(&EEPromArray[EEPROM_ADR_VALID], 1);
        eeprom_write_byte(&EEPromArray[EEPROM_ADR_ORIENTATION], 0);

//   if(number > 5) number = 5;
//   eeprom_write_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * number], length);
//   eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], number);                            // diesen Parametersatz als aktuell merken
}


int main (void)
{
        PORTA = 0xFF;           // unbenutzte Pins auf Pull-Up
        PORTB = 0x43;
        PORTC = 0xFC;
        PORTD = 0x7C;
       
        DDRC = 0x03;            // Pins für Beleuchtung auf Ausgang
        DDRD = 0x80;

        if ((eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID])) != 1)
                WriteParameterset();

        ReadParameter();
         
//      LCD_ORIENTATION = 0;

        lcd_init();
        RS232_init();
        timer_init();
       
        sei();

        for (;;)
                main_menu();
}