BSP.c 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #include "BSP.h"
  2. #include "app_def.h"
  3. #include "IIC_FM1288.h"
  4. #include "gpio_key.h"
  5. static VU16 s_vu8SysSched0Tmr = 0;
  6. static VU16 s_vu8SysSched1Tmr = 0;
  7. static VU16 s_vu8SysSched2Tmr = 0;
  8. unsigned int LocalTime=0;
  9. U16 BufSentTime=0; //bus 数据发送延时
  10. void SysTick_init(void)
  11. {
  12. //================================================
  13. //系统Tick定时配置
  14. SysTick_Config(SystemCoreClock / (1000));
  15. //定时器系统中断
  16. NVIC_SetPriority(SysTick_IRQn,(0<<2)+(0));
  17. //================================================
  18. }
  19. void SysTick_Handler(void)
  20. {
  21. if (s_vu8SysSched0Tmr != 0xffff) { s_vu8SysSched0Tmr++; }
  22. if (s_vu8SysSched1Tmr != 0xffff) { s_vu8SysSched1Tmr++; }
  23. if (s_vu8SysSched2Tmr != 0xffff) { s_vu8SysSched2Tmr++; }
  24. LocalTime ++; //49天后归0
  25. if (UartBusTime != 0xffff) { UartBusTime++; }
  26. if (BufSentTime != 0) { BufSentTime--; }
  27. I2cFM1288TaskTmr ();
  28. KeyTaskTmr();
  29. }
  30. int BSP_init(void)
  31. {
  32. //===================================
  33. NVIC_SetVectorTable(NVIC_VectTab_FLASH,0);
  34. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  35. SysTick_init();
  36. //===================================
  37. TIM1_init();
  38. UART_ARM_init();
  39. TIM6_init();
  40. GPIO_LED_init();
  41. GPIO_SYS_init();
  42. WDG_Init(4,625);
  43. GPIO_KEY_init();
  44. //===================================
  45. GPIO_FM1288_Init();
  46. //===================================
  47. return 1;
  48. }
  49. void BSP_Tick(void)
  50. {
  51. if (s_vu8SysSched0Tmr >= OS_TIMER_15MS) { //dwdtest 15ms
  52. BUS_Rev_TxTask();
  53. s_vu8SysSched0Tmr = 0;
  54. }
  55. if (s_vu8SysSched1Tmr >= OS_TIMER_35MS) { /* Schedule 15ms task with priority 0 */
  56. UART_Tick();
  57. BUSMODE_SendTick();
  58. s_vu8SysSched1Tmr = 0;
  59. }
  60. if (s_vu8SysSched2Tmr >= OS_TIMER_12S) { /* Schedule 15ms task with priority 0 */
  61. if (gt_busrxflag ==1) {
  62. s_vu8SysSched2Tmr = 0;
  63. gt_busrxflag =2;
  64. } else if (gt_busrxflag ==2) {
  65. s_vu8SysSched2Tmr = 0;
  66. gt_busrxflag =0;
  67. }
  68. }
  69. BUS_Rev_Tick();
  70. // UART_Tick();
  71. GPIO_LED_Tick();
  72. GPIO_KEY_Tick();
  73. IIC_FM1288_Tick();
  74. }