1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /*
- * main() method
- */
-
- #include <avr/interrupt.h>
- #include <avr/wdt.h>
-
- #include "spi.h"
- #include "timer.h"
- #include "cppm.h"
- #include "rx.h"
-
- #ifdef DEBUG
- #include "serial.h"
- #endif
-
- void watchdogBoot(void) __attribute__((naked)) __attribute__((section(".init3")));
- void watchdogBoot(void) {
- MCUSR = 0;
- wdt_disable();
- }
-
- void main(void) {
- cppmInit();
- timerInit();
-
- #ifdef DEBUG
- serialInit(0, BAUD(19200, F_CPU));
- #endif
-
- sei(); // Enable interrupts (required for timer)
- wdt_enable(WDTO_250MS); // Trigger Watchdog after 250ms
-
- #ifdef DEBUG
- serialWriteString(0, "RX reset.\n");
- #endif
-
- spiInit();
- rxInit();
-
- #ifdef DEBUG
- serialWriteString(0, "RX ready!\n");
- #endif
-
- for(;;) {
- wdt_reset();
- rxReceivePacket();
- }
- }
|