#include "digital.h" uint8_t di_data = 0,do_data = 0; void di_do_ctrl(void) { //数字量输入 di_data = (READ_DI1() << 7) + (READ_DI2() << 6) + (NCHRG_STATE() << 5); DisState[0] = di_data; //数字量输出 if(CoilState[0] & 0x80) DO_HIGH(); else DO_LOW(); if(CoilState[0] & 0x20) BUZZER_HIGH(); else BUZZER_LOW(); // if(CoilState[0] & 0x10) POW_ON(); // else POW_OFF(); if(CoilState[0] & 0x04) { __HAL_TIM_SetCounter(&htim1, 0x9718); //初始化计数值 cnt_update = 152; CoilState[0] = CoilState[0] & 0xFB; } if(CoilState[0] & 0x02) { for(int n = 5;n < 9;n++) { HoldReg[n] = 0; } CoilState[0] = CoilState[0] & 0xFD; } if(CoilState[0] & 0x01) { for(int n = 9;n < 13;n++) { HoldReg[n] = 0; } CoilState[0] = CoilState[0] & 0xFE; } }