123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #include "BMS_Master.h"
- #define TEST_TIMEOUT 10000
- extern uint64_t Global_1msCounter;
- static vuint32_t TimeStamp;
- static void init_BoardIO();
- static const Board_Status Board_Status_INIT = {{0},0};
- Board_Status Board_S; //globaler BoardStatus
- void BoardPeriph_init()
- {
- RelaisLEDs_init();
- TempMess_init();
- ADC_1_init();
- Board_S = Board_Status_INIT;
- Board_S.FRAM_Flags.B.init_ok = (FRAM_init()>=0) ? 1:0;
- }
- void BoardPeriph_test_init()
- {
- TimeStamp = Global_1msCounter;
- FRAM_trigger_Test();
- }
- int8_t BoardPeriph_test_update_polled()
- {
- static uint8_t state = 0;
- static int8_t FRAM_result = 0;
- static uint64_t old_Global_1msCounter = 0;
- uint8_t tick = 0;
- int8_t result = 0;
-
- if (Global_1msCounter != old_Global_1msCounter) tick = 1;
-
- switch (state) {
- case 0:
- if ( RelaisLEDs_TM_update(tick) == 1 )
- state = 1;
- break;
- case 1:
- {
- FRAM_update(tick);
- if (FRAM_result == 0) {
- FRAM_result = FRAM_Test_update();
- if (FRAM_result > 0) Board_S.FRAM_Flags.B.test_ok = 1;
- else if (FRAM_result < 0) Board_S.FRAM_Flags.B.test_fail = 1;
- }
- result = FRAM_result;
- // Board_S.test_time = Global_1msCounter - TimeStamp;
- // if ( Board_S.test_time >= TEST_TIMEOUT ) return -100;
- break;
- }
- }
- old_Global_1msCounter = Global_1msCounter;
-
- return result;
- }
- void BoardPeriph_update_1ms()
- {
- // IMess_update();
- // IMess_URef_update();
- TempMess_update();
- }
- void BoardPeriph_update_polled()
- {
- static uint64_t old_Global_1msCounter = 0;
- uint8_t tick = 0;
- if (Global_1msCounter != old_Global_1msCounter) {
- tick = 1;
- }
-
- FRAM_update(tick);
- CAN0_update();
-
- old_Global_1msCounter = Global_1msCounter;
- }
- /*
- void do_Testroutine()
- {
- FRAM_do_Test();
- ADC_do_Test();
- IMessLEM_do_Test();
- TempADC_do_Test();
- }*/
|