Naze32 clone with Frysky receiver
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.c 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /*
  2. * main() method
  3. */
  4. #include <avr/interrupt.h>
  5. #include <avr/wdt.h>
  6. #include "spi.h"
  7. #include "timer.h"
  8. #include "cppm.h"
  9. #include "rx.h"
  10. #include "main.h"
  11. void watchdogBoot(void) __attribute__((naked)) __attribute__((section(".init3")));
  12. void watchdogBoot(void) {
  13. MCUSR = 0;
  14. wdt_disable();
  15. }
  16. #ifdef DEBUG_UART_MENU
  17. void uartMenu(void) {
  18. if (!serialHasChar(0)) {
  19. return;
  20. }
  21. uint8_t c = serialGet(0);
  22. time_t time = timerGet();
  23. switch (c) {
  24. case 't': case 'T':
  25. debugWrite("Uptime: ");
  26. serialWriteUnsigned64(0, time);
  27. debugWrite("ms / ");
  28. serialWriteUnsigned64(0, time / 1000);
  29. debugWrite("s\n");
  30. break;
  31. case 'q': case 'Q':
  32. debugWrite("Resetting...\n\n");
  33. wdt_enable(WDTO_15MS);
  34. for (;;) { }
  35. break;
  36. default:
  37. debugWrite("Unknown command: '");
  38. serialWrite(0, c);
  39. debugWrite("'\n");
  40. case 'h': case 'H': case '?':
  41. debugWrite("Available commands:\n");
  42. debugWrite(" h - Help\n");
  43. debugWrite(" t - Time\n");
  44. debugWrite(" q - Reset\n");
  45. break;
  46. }
  47. }
  48. #endif
  49. void main(void) {
  50. //cppmInit();
  51. timerInit();
  52. #ifdef DEBUG
  53. serialInit(0, BAUD(38400, F_CPU));
  54. #endif
  55. sei(); // Enable interrupts (required for timer)
  56. //wdt_enable(WDTO_250MS); // Trigger Watchdog after 250ms
  57. wdt_enable(WDTO_2S); // Trigger Watchdog after 2s
  58. //debugWrite("RX reset.\n");
  59. spiInit();
  60. rxInit();
  61. //debugWrite("RX ready!\n");
  62. for(;;) {
  63. wdt_reset();
  64. rxReceivePacket();
  65. #ifdef DEBUG_UART_MENU
  66. uartMenu();
  67. #endif
  68. }
  69. }