扫描第一按键
SET_SCAN1_HI(); //IO输出高
SET_SCAN2_LO(); //IO输出低
SET_SCAN3_LO(); //IO输出低
SET_SCAN4_LO(); //IO输出低
for(uint16_t i=0;i<50;i++){;} //wait min=50 这里为什么要必须大于等于50才正确呢?
t_mac[0]=GET_ADDR0_IN0(); //IO读取值
t_mac[1]=GET_ADDR1_IN1(); //IO读取值
扫描第二按键
SET_SCAN1_LO(); //IO输出低
SET_SCAN2_HI(); //IO输出高
SET_SCAN3_LO(); //IO输出低
SET_SCAN4_LO(); //IO输出低
for(uint16_t i=0;i<50;i++){;} //wait min=50 这里为什么要必须等50才正确呢?
t_mac[2]=GET_ADDR0_IN0(); //IO读取值
t_mac[3]=GET_ADDR1_IN1(); //IO读取值
通过二极管返回高电平, 输入GET_ADDR0_IN0和IN1是下拉输入,这个延时不加的话 就不能保证后面正确读值(这里实际是电阻长短接,和按键闭合一个意思) |