這幾天用到很老的固定嗎解碼,有用到的么 ,為什么我感覺我寫的程序好復(fù)雜啊 ;
void exint0() interrupt 0 //INT0中斷入口 { static bit flag_start=0; static u8 temp_pl=0; //TR0=0; //經(jīng)過測(cè)試定時(shí)器0使用不自動(dòng)重裝模式之后不用再頻繁開關(guān)定時(shí)器 EX0 = 0; //執(zhí)行中斷里面的程序的時(shí)候關(guān)閉外部中斷防止里面數(shù)據(jù)沒有處理完外部中斷就進(jìn)來 //sum=ace*65536+TH0*256+TL0; sum=TH0*256+TL0; TH0=0; TL0=0; ace=0; //TR0=1; test=~test; if((ap==1)&&(sum>14000)&&(sum<16000)) { temp2=sum; flag_start=1; ap=2; cp=0; pl=temp_pl; temp_pl=0; } if((ap==0)&&(sum>14000)&&(sum<16000)) { temp1=sum; ap=1; temp_pl=0; } temp_pl++; if(temp_pl==60) { temp_pl=0; temp1=temp2=0; ap=0; } if((flag_start==1)&&(cp==48)){ ccap[47]=sum/((temp2+temp1)>>8);cp=0;flag_start=0;ap=0;test1=~test1;} if((flag_start==1)&&(cp==47)){ ccap[46]=sum/((temp2+temp1)>>8);cp=48;test1=~test1;} if((flag_start==1)&&(cp==46)){ ccap[45]=sum/((temp2+temp1)>>8);cp=47;test1=~test1;} if((flag_start==1)&&(cp==45)){ ccap[44]=sum/((temp2+temp1)>>8);cp=46;test1=~test1;} if((flag_start==1)&&(cp==44)){ ccap[43]=sum/((temp2+temp1)>>8);cp=45;test1=~test1;} if((flag_start==1)&&(cp==43)){ ccap[42]=sum/((temp2+temp1)>>8);cp=44;test1=~test1;}
大概思路就是,找到兩次間隔小于兩個(gè)周期的同步脈沖,然后就開始逐個(gè)解碼收到的;然后在處理