diff options
Diffstat (limited to 'app/main.c')
| -rw-r--r-- | app/main.c | 84 | 
1 files changed, 62 insertions, 22 deletions
| @@ -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();    } | 
