本帖最后由 onbluesun 于 2012-5-31 17:45 编辑
我在原本ENC28j60的驱动的MAIN中加了如下代码:
- unsigned char dsa1=50;
- extern void dsinit()
- {
- TMOD=0x01;
- TH0=0x70;
- TL0=0x00;
- ET0=1;
- EA=1;
- TR0=1;
- }
- void dstime() interrupt 1
- {
- TH0=0x70;
- TL0=0x00;
- dsa1--;
- if(dsa1==0)
- {
- l1=~l1;
- dsa1=50;
- }
- }
复制代码再在main里面调用子程序,但是中断却出问题了,l1不会高低电平转换,也就是说中断程序出问题了。经过我进一步排查,发现unsigned char dsa1=50;没有生效,dsa1的值在执行中断函数时变成了8。
一周热门 更多>