73e379ca62144c9c33f5ab892c729cd69d136bf5.svn-base 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. C51 COMPILER V9.53.0.0 LED 08/23/2018 15:10:00 PAGE 1
  2. C51 COMPILER V9.53.0.0, COMPILATION OF MODULE LED
  3. OBJECT MODULE PLACED IN .\Output\Led.obj
  4. COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE Code\User\Driver\Led.c LARGE OPTIMIZE(2,SPEED) BROWSE INCDIR(Code/Includ
  5. -e;Code/User;Code/User/Common;Code/User/Driver) DEFINE(FOSC_160000) DEBUG OBJECTEXTEND PRINT(.\Output\LST\Led.lst) TABS(2
  6. -) OBJECT(.\Output\Led.obj)
  7. line level source
  8. 1 #include "multi_led.h"
  9. 2 #include "led.h"
  10. 3 #include "N76E003.h"
  11. 4
  12. 5 struct Led lRun,lAla,lErr;
  13. 6
  14. 7 void ScanLed ( void ) //100ms
  15. 8 {
  16. 9 1 led_ticks();
  17. 10 1 }
  18. 11
  19. 12 void Set_RUN_GPIO(bool state)
  20. 13 {
  21. 14 1 P12 = state;
  22. 15 1 }
  23. 16
  24. 17
  25. 18 void Leds_Init(void)
  26. 19 {
  27. 20 1 led_init_Head();
  28. 21 1 led_init(&lRun, Set_RUN_GPIO);
  29. 22 1
  30. 23 1 led_set_state(&lRun, LED_WORK, 0, LED_STATE2_FLASH, 1000, 0, 0 );
  31. 24 1
  32. 25 1 led_start(&lRun);
  33. 26 1 //make the timer invoking the button_ticks() interval 5ms.
  34. 27 1 //This function is implemented by yourself.
  35. 28 1 //__timer_start(button_ticks, 0, 100);
  36. 29 1
  37. 30 1 }
  38. 31
  39. 32
  40. 33 /*
  41. 34 通用:WorkLed闪动
  42. 35 通信正常: TxLed 亮 (其他功能可共用), GZLed 灭; 传输TxLed 闪
  43. 36 通信故障: TxLed 灭, GZLed 亮:电源故障
  44. 37 通信故障,100s声光提示,声可消除;光保持到,无线模块复位,或故障消除
  45. 38 */
  46. 39 #if 0
  47. pFault FAULT_State = {.State = Bin ( 00 ) };
  48. pFault FAULT_StateOld = {.State = Bin ( 00 ) };
  49. bool FAULT_State_NoChange = true;
  50. u8 sysLed_Pretreat ( u8 State ) //预处理一下:故障和恢复
  51. {
  52. u8 Res = State;
  53. //3G/电源 故障与恢复
  54. switch ( State )
  55. {
  56. case LED_MODE_WORK_3G_OK:
  57. FAULT_State.Flag._3g = 0;
  58. break;
  59. C51 COMPILER V9.53.0.0 LED 08/23/2018 15:10:00 PAGE 2
  60. case LED_MODE_WORK_3G_FAIL:
  61. FAULT_State.Flag._3g = 1;
  62. break;
  63. case LED_MODE_WORK_DC_BAT_OK:
  64. FAULT_State.Flag._dc_bat = 0;
  65. break;
  66. case LED_MODE_WORK_DC_BAT_FAIL:
  67. FAULT_State.Flag._dc_bat = 1;
  68. break;
  69. default:
  70. return State;
  71. }
  72. if ( FAULT_State.Flag._3g ) Res = LED_MODE_WORK_3G_FAIL; //最优先3G
  73. else if ( FAULT_State.Flag._dc_bat ) Res = LED_MODE_WORK_DC_BAT_FAIL;
  74. FAULT_State_NoChange = false;
  75. return Res;
  76. }
  77. //灯的控制和蜂鸣器的控制
  78. void sysLed_Set ( u8 State )
  79. {
  80. State = sysLed_Pretreat ( State );
  81. switch ( SysRunType )
  82. {
  83. case SysRun_Norm:
  84. switch ( State )
  85. {
  86. case LED_MODE_WORK_RUN:
  87. LedDoing ( LED_WORK, 0, LED_STATE2_FLASH, 1000, 0, 0 ); //单位100ms: 500ms开,500ms关
  88. if ( FAULT_State_NoChange ) //初始化状态
  89. {
  90. LedDoing ( LED_TX, 0, LED_STATE0_OFF, 0, 0, 0 );
  91. LedDoing ( LED_GZ, 0, LED_STATE0_OFF, 0, 0, 0 );
  92. }
  93. else if ( FAULT_State.Flag._3g ) //1.3g故障, 2.3g+电源故障
  94. {
  95. LedDoing ( LED_TX, 0, LED_STATE0_OFF, 0, 0, 0 );
  96. LedDoing ( LED_GZ, 0, LED_STATE1_ON, 0, 0, 0 );
  97. }
  98. else if ( FAULT_State.Flag._dc_bat ) //3g正常, 电源故障
  99. {
  100. LedDoing ( LED_TX, 0, LED_STATE1_ON, 0, 0, 0 );
  101. LedDoing ( LED_GZ, 0, LED_STATE2_FLASH, 500, 0, 0 );
  102. }
  103. else //3g正常, 电源正常
  104. {
  105. LedDoing ( LED_TX, 0, LED_STATE1_ON, 0, 0, 0 );
  106. LedDoing ( LED_GZ, 0, LED_STATE0_OFF, 0, 0, 0 );
  107. }
  108. C51 COMPILER V9.53.0.0 LED 08/23/2018 15:10:00 PAGE 3
  109. break;
  110. case LED_MODE_WORK_3G_OK:
  111. LedDoing ( LED_TX, 0, LED_STATE1_ON, 0, 0, 0 );
  112. LedDoing ( LED_GZ, 0, LED_STATE0_OFF, 0, 0, 0 );
  113. break;
  114. case LED_MODE_WORK_3G_FAIL:
  115. LedDoing ( LED_TX, 0, LED_STATE0_OFF, 0, 0, 0 );
  116. LedDoing ( LED_GZ, 0, LED_STATE1_ON, 0, 0, 0 );
  117. break;
  118. case LED_MODE_WORK_DC_BAT_OK:
  119. LedDoing ( LED_GZ, 0, LED_STATE0_OFF, 0, 0, 0 );
  120. break;
  121. case LED_MODE_WORK_DC_BAT_FAIL:
  122. LedDoing ( LED_GZ, 0, LED_STATE2_FLASH, 500, 0, 0 );
  123. break;
  124. case LED_MODE_WORK_3G_TX:
  125. LedDoing ( LED_TX, 0, LED_STATE5_FLASH_DELAY, 100, 200, 1 ); //100ms开,开关1次
  126. break;
  127. case LED_MODE_WORK_3G_RX:
  128. LedDoing ( LED_TX, 0, LED_STATE5_FLASH_DELAY, 100, 400, 1 ); //100ms开,开关2次
  129. break;
  130. case LED_MODE_TEST_RUN:
  131. case LED_MODE_TEST_KGL_IN:
  132. break;
  133. }
  134. break;
  135. case SysRun_Test:
  136. switch ( State )
  137. {
  138. case LED_MODE_WORK_RUN:
  139. break;
  140. case LED_MODE_WORK_3G_OK:
  141. LedDoing ( LED_TX, 0, LED_STATE1_ON, 0, 0, 0 );
  142. break;
  143. case LED_MODE_WORK_3G_FAIL:
  144. LedDoing ( LED_TX, 0, LED_STATE0_OFF, 0, 0, 0 );
  145. break;
  146. case LED_MODE_WORK_DC_BAT_OK:
  147. case LED_MODE_WORK_DC_BAT_FAIL:
  148. case LED_MODE_WORK_3G_TX:
  149. case LED_MODE_WORK_3G_RX:
  150. break;
  151. case LED_MODE_TEST_RUN:
  152. LedDoing ( LED_WORK, 0, LED_STATE2_FLASH, 200, 0, 0 );
  153. LedDoing ( LED_GZ, 0, LED_STATE2_FLASH, 200, 0, 0 );
  154. LedDoing ( LED_TX, 0, LED_STATE2_FLASH, 200, 0, 0 );
  155. break;
  156. case LED_MODE_TEST_KGL_IN:
  157. C51 COMPILER V9.53.0.0 LED 08/23/2018 15:10:00 PAGE 4
  158. LedDoing ( LED_GZ, 0, LED_STATE4_NOT, 0, 0, 0 );
  159. break;
  160. }
  161. break;
  162. }
  163. if ( SysRunType == SysRun_Norm )
  164. {
  165. if ( FAULT_StateOld.State != FAULT_State.State )
  166. {
  167. FAULT_StateOld.State = FAULT_State.State;
  168. ( FAULT_State.State == 0 ) ? StopBeep() : StartBeep ( WARMING_BEEP ); //判断是否是正常状态�
  169. -�钦�T蛲#�婢�蛳�
  170. }
  171. }
  172. }
  173. #endif
  174. MODULE INFORMATION: STATIC OVERLAYABLE
  175. CODE SIZE = 116 ----
  176. CONSTANT SIZE = ---- ----
  177. XDATA SIZE = 48 1
  178. PDATA SIZE = ---- ----
  179. DATA SIZE = ---- ----
  180. IDATA SIZE = ---- ----
  181. BIT SIZE = ---- ----
  182. END OF MODULE INFORMATION.
  183. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)