英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
汇编能实现的功能,用C怎样实现?
[打印本页]
作者:
winnie
时间:
2009-4-15 11:30
标题:
汇编能实现的功能,用C怎样实现?
N EQU 0C
START:
MOVLW 55
SUBWF N,W
BTFSC STATUS,Z
GOTO ERR
;0C-1E的内存清零
MOVLW 0x0C
MOVWF FSR
RAMCLR
CLRF INDF ;清除FSR所指向的单元
INCF FSR,F
MOVF FSR,W ;检测是否完成
ANDLW B'00011111'
XORLW 1F
BTFSS STATUS,Z
GOTO RAMCLR
;内存清零完毕
MOVLW 55
MOVWF N
ERR:
;其他初始化
...
...
...
MAIN:
...
...
...
GOTO MAIN
END
作者:
winnie
时间:
2009-4-15 11:31
char *tmp;
for(tmp = (char *)0x0c;tmp <= (char *)0x1e;tmp++)
*(tmp)=0;
不过好象没有0x0c-0x1e的用户内存吧?
做热启动?
你可以定义一个persistent
作者:
winnie
时间:
2009-4-15 11:43
如果你知道中断函数调用的所有变量都是全局,你就理解这个错误了。哪怕中断函数里调用的其它函数里定义的局部变量,它也是一个特殊的全局变量,因为中断函数执行是不可预测的。
如果你能保证delay不能被主函数和中断函数同时执行,你可以加上interrupt level来修饰。但这样做有个坏处就是代码不太可靠,容易出BUG。一般的建议是象delay这样经常被执行,代码又小的函数,不如单独为中断写一个。
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2