运行以下程序,(无论节点在不在总线上。)send( )发送后,中断EPI发生,LED1亮。(节点进入错误消极状态)证实你的系统工作正常。<br />然后在此基础上完善你的程序。<br /><br />#pragma SMALL<br />#include<reg51.h><br />#include<sjareg.h><br />#define uchar unsigned char<br /><br />bdata uchar ws1;<br />sbit LED0=P1^0;<br />sbit LED1=P1^1;<br />sbit LED2=P1^2;<br /><br />uchar xdata *SJA_Adr=0x7f00;<br />#define can_read(RegAdr) SJA_Adr[RegAdr]<br />#define can_write(RegAdr,Val) SJA_Adr[RegAdr]=Val<br /><br />void initial() using 0<br />{<br />do{ <br />can_write(MOD,0x01);<br />}while(can_read(MOD)^0x01);<br /><br />can_write(CDR,0xcf);<br />can_write(OCR,0xfa);<br />can_write(IER,0x20); <br /><br />can_write(MOD,0);<br />}<br /><br />void main(void)<br />{ <br />LED0=0;<br />initial( );<br />IE=0x81; <br /><br />send( ); //can_write(CMR,1);<br /><br />LED2=!LED2;<br />while(1);<br />}<br /><br />void int0(void) interrupt 0 using 0<br />{<br />LED1=!LED1;<br />ws1=can_read(IR);<br />}<br /><br />再次运行该程序,LED1无反应。按下硬复位按键,可重复实验。<br /><br /><br /> |
|