Исправлен id по can: был std, теперь ext (бит IDE в msgHeaderSend)
Сделано моргание диодом только по успешной отправке по CAN
This commit is contained in:
parent
327f65e16b
commit
d9c19bf743
@ -151,6 +151,7 @@ int CAN_send(uint16_t data[], int Addr, int Qua)
|
||||
|
||||
if (HAL_CAN_GetTxMailboxesFreeLevel(&hcan) != 0)
|
||||
{
|
||||
msgHeaderSend.IDE = 1;
|
||||
msgHeaderSend.ExtId = TX_box_ID | (Addr & 0xFFFF);
|
||||
msgHeaderSend.DLC = Qua*2;
|
||||
|
||||
@ -165,13 +166,13 @@ int CAN_send(uint16_t data[], int Addr, int Qua)
|
||||
|
||||
HAL_CAN_AddTxMessage(&hcan, &msgHeaderSend, msgDataSend, &mailBoxNum);
|
||||
|
||||
LED_0_TGL;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
HAL_CAN_Stop(&hcan);
|
||||
HAL_CAN_Start(&hcan);
|
||||
HAL_CAN_ActivateNotification(&hcan, CAN_IT_TX_MAILBOX_EMPTY|CAN_IT_ERROR);
|
||||
return 0;
|
||||
} }
|
||||
void Setup_CAN_addr(uint8_t mode)
|
||||
@ -180,5 +181,22 @@ void Setup_CAN_addr(uint8_t mode)
|
||||
RX_box_ID = (0x80+mode)<<20;
|
||||
TX_box_ID = RX_box_ID | (1L<<28);
|
||||
}
|
||||
|
||||
// Успешная отправка - моргание диодом
|
||||
void HAL_CAN_TxMailbox0CompleteCallback(CAN_HandleTypeDef *hcan)
|
||||
{
|
||||
LED_0_TGL;
|
||||
}
|
||||
void HAL_CAN_TxMailbox1CompleteCallback(CAN_HandleTypeDef *hcan)
|
||||
{
|
||||
LED_0_TGL;
|
||||
}
|
||||
void HAL_CAN_TxMailbox2CompleteCallback(CAN_HandleTypeDef *hcan)
|
||||
{
|
||||
LED_0_TGL;
|
||||
}
|
||||
// Ошибки: выключение диода
|
||||
void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan)
|
||||
{
|
||||
LED_0_OFF;
|
||||
}
|
||||
/* USER CODE END 1 */
|
||||
|
@ -539,16 +539,20 @@ void Millisecond()
|
||||
power_lamp = norm_diod = 0; // Базовое состояние - выключено
|
||||
|
||||
// Уровень освещенности 2: постоянно включено
|
||||
if(Lightness == 2) power_lamp = norm_diod = 1;
|
||||
if(Lightness == 2)
|
||||
power_lamp = norm_diod = 1;
|
||||
|
||||
// Уровень освещенности 3: медленное мигание (50%)
|
||||
if(Lightness == 3) power_lamp = norm_diod = blink_over;
|
||||
if(Lightness == 3)
|
||||
power_lamp = norm_diod = blink_over;
|
||||
|
||||
// Уровень освещенности 4: быстрое мигание (12.5%)
|
||||
if(Lightness == 4) power_lamp = norm_diod = blink_alarm;
|
||||
if(Lightness == 4)
|
||||
power_lamp = norm_diod = blink_alarm;
|
||||
|
||||
// Уровень освещенности 5: инверсное быстрое мигание (87.5%)
|
||||
if(Lightness == 5) power_lamp = norm_diod = !blink_alarm;
|
||||
if(Lightness == 5)
|
||||
power_lamp = norm_diod = !blink_alarm;
|
||||
}
|
||||
//=== РЕЖИМ ОШИБОК ===//
|
||||
else if(Errors.all)
|
||||
@ -567,20 +571,27 @@ void Millisecond()
|
||||
if(++count_bright == 10) // maximum_bright (100%)
|
||||
{
|
||||
count_bright = 0;
|
||||
if(power_lamp) Pvt1_ON; // Включение на полную яркость
|
||||
else Pvt1_OFF; // Выключение
|
||||
if(power_lamp)
|
||||
Pvt1_ON; // Включение на полную яркость
|
||||
else
|
||||
Pvt1_OFF; // Выключение
|
||||
}
|
||||
|
||||
//=== УПРАВЛЕНИЕ ЯРКОСТЬЮ ===//
|
||||
if(count_bright == Brightness)
|
||||
if(!TST) Pvt1_OFF; // Отключение лампочки с регулировкой яркости
|
||||
if(!TST)
|
||||
Pvt1_OFF; // Отключение лампочки с регулировкой яркости
|
||||
|
||||
//=== УПРАВЛЕНИЕ СВЕТОДИОДАМИ ===//
|
||||
if(work_diod) LED_2_ON; // Включение рабочего светодиода
|
||||
else LED_2_OFF; // Выключение рабочего светодиода
|
||||
if(work_diod)
|
||||
LED_2_ON; // Включение рабочего светодиода
|
||||
else
|
||||
LED_2_OFF; // Выключение рабочего светодиода
|
||||
|
||||
if(norm_diod) LED_3_ON; // Включение нормального светодиода
|
||||
else LED_3_OFF; // Выключение нормального светодиода
|
||||
if(norm_diod)
|
||||
LED_3_ON; // Включение нормального светодиода
|
||||
else
|
||||
LED_3_OFF; // Выключение нормального светодиода
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user