summaryrefslogtreecommitdiffstats
path: root/app/main.c
blob: 368839c2a1a0e09a764da9878b325e6243abb294 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include "project.h"


static void cmd_dispatch()
{
uint8_t c;
while (!ring_read_byte(&rx1_ring,&c)) {

  printf("KEY> %c\r\n",c);

switch(c) {

    case 'R':
      gps_reset ();
      break;
    case 'A':
      gps_almanac ();
      break;
}
}
}


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_USART1);
  rcc_periph_clock_enable (RCC_USART3);
  rcc_periph_clock_enable (RCC_SYSCFG);


  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) ;
}


static void
system_init (void)
{

  board_setup();
  led_init();
  ticker_init();
  usart_init();

  msf_init();
  dcf77_init();

  printf ("LWIP\r\n");
  start_lwip();
  printf ("STETH\r\n");
  steth_init();

  //gps_init();

}

int
main (void)
{


  system_init();

  printf ("Boot\r\n");


  while (1) {
//    msf_dispatch();
//    dcf77_dispatch();

    //gps_dispatch();
  
    cmd_dispatch();

    dispatch_lwip();
    steth_dispatch();

  }

  return 0;
}