|
用中断将接收的数据按顺序存放在数组中,但用串口将数据发送到电脑中时,顺序就乱了?
[复制链接]
本帖最后由 ena 于 2016-2-18 09:58 编辑
volatile unsigned char SZ[5];
volatile char int_flag=0;//int6_flag;
char keydisp[5];
static unsigned char read165(void)
{
unsigned char i,data1=0;
for(i=0;i<8;i++)
{
data1<<=1;
CLK_L()
NOP();
data1|=PINA&1;
CLK_H()
NOP();
}
return data1;
}
char key_handle(unsigned char u)
{
char j;
forbid_all_o();
scan_mkey(u);
secure_delayms(270,0xffff);
reset_watchdog();
if(u==0xf2)
{
u=d_getkey(0xffff);
if(u==0xf2)
{
q_set_run_mode();
return 0;
}
}
for(j=0;j<5;j++)
{
d_st(SZ[j]);
reset_watchdog();
keydisp[j]=ZHB[SZ[j]&0x0f];
// reset_watchdog();
//d_st(ZHB[SZ[j]&0x0f]);
// d_st(keydisp[j]);
disp_string(keydisp,5,5,1);
}
reset_watchdog();
}
#pragma interrupt_handler int5_INT:7
void int5_INT(void)
{
char j;
set_PNAIN()
set_SHI_H()
SZ[int_flag++]=read165();
if(int_flag>4)
int_flag=0;
set_SHI_L()
set_PNAOUT()
}
|
|