错误1:
1376 ;isr.c: 56: rcv_cnt=1;
1377 021C 01F6 clrf _rcv_cnt
1378 021D 0AF6 incf _rcv_cnt,f
错误2:
921 ;Radar_722_v00.c: 109: if(i>=200) radar_alm=1;
922 01A4 30C8 movlw 200
923 01A5 0236 subwf dis_radar@i,w
924 01A6 1C03 skipc
925 01A7 29AB goto l2438
926 01A8 01FD clrf _radar_alm
927 01A9 0AFD incf _radar_alm,f
以上2处,想赋值1,编译结果都是先清零,再加1。导致中断里引用该数据就错了。
以下赋值2就是对的:
931 ;Radar_722_v00.c: 110: else if(i>=120) radar_alm=2;
932 01AB 3078 movlw 120
933 01AC 0236 subwf dis_radar@i,w
934 01AD 1C03 skipc
935 01AE 29B2 goto l2442
936 01AF 3002 movlw 2
937 01B0 00FD movwf _radar_alm
通过累加器赋值,中断里引用就不会出现错误的中间值。
|