123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- #include "led.h"
- #include "board.h"
- ledParams_ts ledParams =
- {
- .list[0].ledOn = LED1_ON,
- .list[1].ledOn = LED2_ON,
- .list[0].ledOff = LED1_OFF,
- .list[1].ledOff = LED2_OFF,
- };
- uint16_t beepOnTimeOut;
- uint8_t beepFrequence = 1;
- //·äÃùÆ÷ IO³õʼ»¯
- void beep_init(void)
- {
-
- GPIO_InitTypeDef GPIO_InitStructure;
-
- GPIO_InitStructure.GPIO_Pin = BOARD_PIN_BEEP;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(BOARD_PORT_BEEP, &GPIO_InitStructure);
-
- GPIO_WriteBit(BOARD_PORT_BEEP, BOARD_PIN_BEEP, BEEP_OFF);
- }
- void beep_onDriver(void)
- {
- static uint8_t freqCount = 0;
- freqCount ++;
- if (freqCount >= beepFrequence)
- {
- freqCount = 0;
- if (beepOnTimeOut)
- {
- GPIO_WriteBit(BOARD_PORT_BEEP, BOARD_PIN_BEEP,
- (BitAction)!GPIO_ReadOutputDataBit(BOARD_PORT_BEEP, BOARD_PIN_BEEP));
- }
- }
-
- if (beepOnTimeOut)
- {
- beepOnTimeOut --;
- if (beepOnTimeOut == 0)
- {
- GPIO_WriteBit(BOARD_PORT_BEEP, BOARD_PIN_BEEP, BEEP_OFF);
- }
- }
- for (int i = 0; i < MAX_LED_COUNT; i++)
- {
- if (ledParams.list[i].count)
- {
- ledParams.list[i].count --;
- if (ledParams.list[i].count == 0)
- {
- if (ledParams.list[i].flashCount)
- {
- ledParams.list[i].ledOff();
- ledParams.list[i].flashCount --;
- if (ledParams.list[i].flashCount == 0)
- {
- ledParams.sta.unit.led1 &= (~(1 << i));
- ledParams.list[i].intervalCnting = 0;
- }
- else
- {
- ledParams.list[i].intervalCnting = ledParams.list[i].intervalSet;
- }
- }
- }
- }
- else if(ledParams.list[i].intervalCnting)
- {
- ledParams.list[i].intervalCnting --;
- if (ledParams.list[i].intervalCnting == 0)
- {
- ledParams.list[i].count = ledParams.list[i].countSet;
- ledParams.list[i].ledOff();
- }
- }
- }
- }
- // void BEEP_ON()
- // {
- // GPIO_WriteBit(BOARD_GPIO_BEEP, BEEP_ON);
- // }
- // void BEEP_OFF()
- // {
- // GPIO_WriteBit(BOARD_GPIO_BEEP, BEEP_OFF);
- // }
- void beep_setFreq(uint8_t freq)
- {
- beepFrequence = freq;
- }
- void beep_longBeep(void)
- {
- beepOnTimeOut = 200;
- }
- void beep_shortBeep(void)
- {
- beepOnTimeOut = 60;
- }
- //LED IO³õʼ»¯
- void LED_Init(void)
- {
-
- GPIO_InitTypeDef GPIO_InitStructure;
-
- GPIO_InitStructure.GPIO_Pin = BOARD_PIN_LED1;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(BOARD_PORT_LED1, &GPIO_InitStructure);
- GPIO_InitStructure.GPIO_Pin = BOARD_PIN_LED2;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(BOARD_PORT_LED2, &GPIO_InitStructure);
- GPIO_WriteBit(BOARD_GPIO_LED1, LED_OFF);
- GPIO_WriteBit(BOARD_GPIO_LED2, LED_OFF);
- }
- void LED1_ON()
- {
- GPIO_WriteBit(BOARD_GPIO_LED1, LED_ON);
- }
- void LED1_OFF()
- {
- GPIO_WriteBit(BOARD_GPIO_LED1, LED_OFF);
- }
- void LED1_TOGGLE(void)
- {
- GPIO_WriteBit(BOARD_GPIO_LED1, (BitAction)!GPIO_ReadOutputDataBit(BOARD_GPIO_LED1));
- }
- void LED1_ON_ONE(void)
- {
- LED1_ON();
- ledParams.sta.unit.led1 = 1;
- ledParams.list[0].flashCount = 1;
- ledParams.list[0].countSet = 5 * 5;
- if(ledParams.list[0].count == 0)ledParams.list[0].count = ledParams.list[0].countSet;
- ledParams.list[0].intervalCnting = 0;
- ledParams.list[0].intervalSet = 0;
- }
- void LED2_ON()
- {
- GPIO_WriteBit(BOARD_GPIO_LED2, LED_ON);
- }
- void LED2_OFF()
- {
- GPIO_WriteBit(BOARD_GPIO_LED2, LED_OFF);
- }
- void LED2_TOGGLE(void)
- {
- GPIO_WriteBit(BOARD_GPIO_LED2, (BitAction)!GPIO_ReadOutputDataBit(BOARD_GPIO_LED2));
- }
- void LED2_ON_ONE(void)
- {
- LED2_ON();
- ledParams.sta.unit.led2 = 1;
- ledParams.list[1].flashCount = 1;
- ledParams.list[1].countSet = 5 * 5;
- if(ledParams.list[1].count == 0)ledParams.list[1].count = ledParams.list[1].countSet;
- ledParams.list[1].intervalCnting = 0;
- ledParams.list[1].intervalSet = 0;
- }
- void testAllLed(void)
- {
- static uint8_t ledSta = 1;
- GPIO_WriteBit(BOARD_GPIO_LED1, LED_OFF);
- GPIO_WriteBit(BOARD_GPIO_LED2, LED_OFF);
- switch (ledSta)
- {
- case 1:
- GPIO_WriteBit(BOARD_GPIO_LED1, LED_ON);
- break;
- case 2:
- GPIO_WriteBit(BOARD_GPIO_LED2, LED_ON);
- break;
-
- default:
- break;
- }
- ledSta ++;
- if (ledSta == 3)
- {
- ledSta = 0;
- }
-
- }
|