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