b15f/firmware/main.cpp

46 lines
768 B
C++
Raw Normal View History

#include <avr/io.h>
2019-03-25 12:00:22 +00:00
#include <avr/interrupt.h>
#include <util/delay.h>
2019-03-25 14:02:24 +00:00
#include <avr/wdt.h>
2019-03-26 07:44:30 +00:00
#include "global_vars.h"
2019-03-25 15:15:00 +00:00
#include "selftest.h"
2019-03-26 14:02:58 +00:00
#include "requests.h"
2019-03-25 12:00:22 +00:00
2019-04-03 12:58:50 +00:00
int main()
2019-03-25 14:02:24 +00:00
{
2019-04-03 10:05:08 +00:00
// deactivate WDT ENTIRELY!
2019-04-03 09:38:15 +00:00
MCUSR &= ~_BV(WDRF);
WDTCSR = 0;
wdt_disable();
2019-04-03 10:05:08 +00:00
// enable interrupts before configuring io
2019-04-03 09:38:15 +00:00
sei();
2019-04-03 10:05:08 +00:00
spi.init();
2019-04-03 06:40:14 +00:00
dio0.setDirA(0x00); // alle Ausgang
dio0.setDirB(0xFF); // alle Eingang
dio1.setDirA(0x00); // alle Ausgang
dio1.setDirB(0xFF); // alle Eingang
dsw.setDirB(0xFF); // alle Eingang
adu.init();
2019-04-03 09:38:15 +00:00
2019-04-02 14:19:42 +00:00
usart.init();
2019-04-02 13:32:51 +00:00
usart.initRX();
2019-04-02 11:34:59 +00:00
2019-04-02 13:32:51 +00:00
2019-04-03 12:58:50 +00:00
// Hauptschleife, Verarbeitung der Requests
2019-03-25 14:02:24 +00:00
while(1)
{
2019-04-02 14:19:42 +00:00
if(nextRequest)
{
nextRequest = false;
handleRequest();
}
_delay_us(1);
2019-03-25 12:00:22 +00:00
}
2019-03-22 14:51:52 +00:00
return 0;
}