summaryrefslogtreecommitdiffstats
path: root/app/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/main.c')
-rw-r--r--app/main.c84
1 files changed, 62 insertions, 22 deletions
diff --git a/app/main.c b/app/main.c
index 368839c..984e74b 100644
--- a/app/main.c
+++ b/app/main.c
@@ -1,23 +1,31 @@
#include "project.h"
+int time_known;
+
static void cmd_dispatch()
{
-uint8_t c;
-while (!ring_read_byte(&rx1_ring,&c)) {
+ uint8_t c;
- printf("KEY> %c\r\n",c);
+ while (!ring_read_byte (&rx1_ring, &c)) {
-switch(c) {
+ printf ("KEY> %c\r\n", c);
+ switch (c) {
case 'R':
- gps_reset ();
+ scb_reset_system();
+
+ break;
+
+ case 'G':
+ gps_reset();
break;
+
case 'A':
- gps_almanac ();
+ gps_almanac();
break;
-}
-}
+ }
+ }
}
@@ -25,22 +33,29 @@ static void
board_setup (void)
{
rcc_clock_setup_hse_3v3 (&hse_8mhz_3v3[CLOCK_3V3_168MHZ]);
+
rcc_periph_clock_enable (RCC_SYSCFG);
rcc_periph_clock_enable (RCC_GPIOA);
rcc_periph_clock_enable (RCC_GPIOB);
rcc_periph_clock_enable (RCC_GPIOC);
rcc_periph_clock_enable (RCC_GPIOD);
+ rcc_periph_clock_enable (RCC_GPIOE);
rcc_periph_clock_enable (RCC_USART1);
rcc_periph_clock_enable (RCC_USART3);
- rcc_periph_clock_enable (RCC_SYSCFG);
+ rcc_periph_clock_enable (RCC_ETHMAC);
+ rcc_periph_clock_enable (RCC_ETHMACTX);
+ rcc_periph_clock_enable (RCC_ETHMACRX);
+ rcc_periph_clock_enable (RCC_ETHMACPTP);
+
- nvic_set_priority (NVIC_EXTI2_IRQ, 0);
- nvic_set_priority (NVIC_EXTI0_IRQ, 1);
- nvic_set_priority (NVIC_EXTI15_10_IRQ, 2);
- nvic_set_priority (NVIC_USART1_IRQ, 3);
- nvic_set_priority (NVIC_ETH_IRQ, 4);
- nvic_set_priority (NVIC_SYSTICK_IRQ, 5) ;
+ nvic_set_priority (NVIC_EXTI2_IRQ, 0x0);
+ nvic_set_priority (NVIC_EXTI0_IRQ, 0x10);
+ nvic_set_priority (NVIC_EXTI15_10_IRQ, 0x20);
+ nvic_set_priority (NVIC_USART1_IRQ, 0x30);
+ nvic_set_priority (NVIC_USART3_IRQ, 0x30);
+ nvic_set_priority (NVIC_ETH_IRQ, 0x40);
+ nvic_set_priority (NVIC_SYSTICK_IRQ, 0x50);
}
@@ -51,6 +66,7 @@ system_init (void)
board_setup();
led_init();
ticker_init();
+
usart_init();
msf_init();
@@ -61,7 +77,7 @@ system_init (void)
printf ("STETH\r\n");
steth_init();
- //gps_init();
+ gps_init();
}
@@ -74,17 +90,41 @@ main (void)
printf ("Boot\r\n");
+#if 0
+ while (1) {
+ uint32_t now = SCS_DWT_CYCCNT;
+ uint64_t abs= abs_extend (now);
+ EPOCH e = pll_decompose (abs);
+ time_print_epoch ("TEST: ", e);
+ delay_ms(100);
+}
+#endif
+
+
+
+
+
while (1) {
-// msf_dispatch();
-// dcf77_dispatch();
+#if 0
+ {
+ uint32_t now = SCS_DWT_CYCCNT;
+ uint64_t abs= abs_extend (now);
+ EPOCH e = pll_decompose (abs);
+ time_print_epoch ("TEST: ", e);
+ delay_ms(100);
+ }
- //gps_dispatch();
-
- cmd_dispatch();
+ abs_meh();
+#endif
+
+ msf_dispatch();
+ dcf77_dispatch();
+
+ gps_dispatch();
+ cmd_dispatch();
dispatch_lwip();
- steth_dispatch();
}