comparison Small_CPU/Src/scheduler.c @ 704:f1b40364b0af

Added protocol functions for UART DiveO2 sensor: The code has been modified to support the handling of several protocols (including baud rate changes). The data is requested by polling and passed via DMA into a ringbuffer which is then parsed by a cyclic function call in the main loop. At the moment only the O2 values are forwarded but because the sensor send several types of data within a signle message already more is extracted but yet discarded.
author Ideenmodellierer
date Fri, 28 Oct 2022 20:49:21 +0200
parents 52d68cf9994c
children 045ff7800501
comparison
equal deleted inserted replaced
703:2f457024049b 704:f1b40364b0af
316 if(((global.dataSendToSlave.data.externalInterface_Cmd & EXT_INTERFACE_ADC_ON) != 0) != externalInterface_isEnabledADC()) 316 if(((global.dataSendToSlave.data.externalInterface_Cmd & EXT_INTERFACE_ADC_ON) != 0) != externalInterface_isEnabledADC())
317 { 317 {
318 externalInterface_SwitchADC(global.dataSendToSlave.data.externalInterface_Cmd && EXT_INTERFACE_ADC_ON); 318 externalInterface_SwitchADC(global.dataSendToSlave.data.externalInterface_Cmd && EXT_INTERFACE_ADC_ON);
319 } 319 }
320 320
321 if(((global.dataSendToSlave.data.externalInterface_Cmd >> 8) & 0x0F) != externalInterface_GetUARTProtocol())
322 {
323 externalInterface_SwitchUART((global.dataSendToSlave.data.externalInterface_Cmd >> 8) & 0x0F);
324 }
321 325
322 if(global.dataSendToSlave.data.externalInterface_Cmd & 0x00FF) /* lowest nibble for commands */ 326 if(global.dataSendToSlave.data.externalInterface_Cmd & 0x00FF) /* lowest nibble for commands */
323 { 327 {
324 externalInterface_ExecuteCmd(global.dataSendToSlave.data.externalInterface_Cmd); 328 externalInterface_ExecuteCmd(global.dataSendToSlave.data.externalInterface_Cmd);
325 } 329 }
521 if(global.dataSendToSlave.data.externalInterface_Cmd & EXT_INTERFACE_UART_SENTINEL) 525 if(global.dataSendToSlave.data.externalInterface_Cmd & EXT_INTERFACE_UART_SENTINEL)
522 { 526 {
523 HandleUARTSentinelData(); 527 HandleUARTSentinelData();
524 } 528 }
525 #endif 529 #endif
526 530 if(global.dataSendToSlave.data.externalInterface_Cmd & EXT_INTERFACE_UART_O2)
531 {
532 HandleUARTDigitalO2();
533 }
527 534
528 if(ticksdiff >= Scheduler.counterSPIdata100msec * 100 + 10) 535 if(ticksdiff >= Scheduler.counterSPIdata100msec * 100 + 10)
529 { 536 {
530 if(SPI_Evaluate_RX_Data()!=0) /* did we receive something ? */ 537 if(SPI_Evaluate_RX_Data()!=0) /* did we receive something ? */
531 { 538 {
841 { 848 {
842 HandleUARTSentinelData(); 849 HandleUARTSentinelData();
843 } 850 }
844 #endif 851 #endif
845 852
853 if(global.dataSendToSlave.data.externalInterface_Cmd & EXT_INTERFACE_UART_O2)
854 {
855 HandleUARTDigitalO2();
856 }
857
846 /* Evaluate received data at 10 ms, 110 ms, 210 ms,... duration ~<1ms */ 858 /* Evaluate received data at 10 ms, 110 ms, 210 ms,... duration ~<1ms */
847 if(ticksdiff >= Scheduler.counterSPIdata100msec * 100 + 10) 859 if(ticksdiff >= Scheduler.counterSPIdata100msec * 100 + 10)
848 { 860 {
849 if(SPI_Evaluate_RX_Data()!=0) /* did we receive something ? */ 861 if(SPI_Evaluate_RX_Data()!=0) /* did we receive something ? */
850 { 862 {