请教:M16中断韦根读卡,AVRStudio仿真读卡正确,但是用串口调试时候发现发送卡号有时候3
void main(void){
DeviceInit();
while(1)
{
KeyRead();
KeyProc();
wiegand_rxc();
while(1)
{
if(IntrCnt>2)//每20ms跳出执行大循环
{
IntrCnt=0;
break;
}
}
}
}
//10mS定时器0中断处理函数
#pragma interrupt_handler T0COMP:20
void T0COMP(void)
{
IntrCnt++;
}
#define ReceiveOnPORTD&=0xBF
#define TransmitOn PORTD|=0x40
unsigned char bit_cnt=0,byte_cnt=0,wiegand={0},wg_store={0},mark=0x80;
unsigned char k=0;
unsigned char sounddelay=0;//蜂鸣器声音记数
void wiegand_rxc(void)
{
if(bit_cnt==26)
{
sounddelay++;
bit_cnt=0;
byte_cnt=0;
SoundReadCard();
TransmitOn;
for(k=0;k<5;k++)
{
wg_store=wiegand;
uart_transmit(wg_store);//通过串口发送储存的卡号,
}
ReceiveOn;
for(k=0;k<5;k++)
{
wiegand=0x00;
}
}
if(sounddelay!=0)
{
sounddelay++;
if(sounddelay==11)//延时200MS关闭声音
{
sounddelay=0;
SoundOff();
}
}
} 自己先顶一个 先看一看11{:smile:}{:biggrin:}{:biggrin:}{:biggrin:}{:biggrin:}{:biggrin:}
页:
[1]