OKI单片机使用注意事项
1、看门狗
OKI单片机看门狗主要有四大特点:
(1) 无法关闭
(2) 若使能了看门狗中断,看门狗中断无法屏蔽
(3) 可以设定看门狗溢出时间:125ms,500ms,2s和8s
(4) 看门狗第一次溢出不会导致复位,若不喂狗,第二次溢出将会导致IC复位。
由于看门狗无法屏蔽,即使不想用看门狗,也需要定时喂狗,否则将会导致IC定时复位。
2、LTBR清零
LTBR可以清零,但在清零的时候需要注意:必须将IRQ6和IRQ7 的清零放在LTBR清零之后。即必须是:
LTBR = 0;
IRQ6 = 0;
IRQ7 = 0;
如果IRQ6和IRQ7清零放在LTBR清零之前,当LTBR清零后,可能导致IRQ6或IRQ7清零失效。
3、变量初始化
变量的初始化都在启动asm文件里。
看门狗的初始化也在这个文件里。默认是2秒。以ML610Q473.asm为例,请找到这段代码:
如果程序从变量初始化到第一次喂狗时间较长(超过2秒),请修改上面的代码,将看门狗溢出时间改成最长的8秒。代码如下:
4、指令周期
对于OKI单片机来说,即使是同一个指令,若寻址方式不同,指令周期也是不一样的。需要精确延时的时候,需要特别注意这点。
例如:
SB置位指令
(1) 目标地址为Rn时,需要机器周期1个;
(2) 目标地址为直接变量位地址时,需要机器周期2个;
5、编译器编译代码的优化
OKI编译器采用默认设置不优化时,编译之后占用的ROM将较大。
优化选项一般通常推荐Both loop and global optimizations ,因为这个可以减少代码量,同时可以避免一些不必要的优化
6、Specified stack size编译报警
Specified stack size用于分配堆栈的大小,如果没设置,编译器会自动将大小调节为实际使用堆栈大小,但是编译器将会报警,报警内容如下:
Warning W018: Specified stack size is too big, so adjusting to 01B2(434) bytes。
这个警告可以忽略,如果一定要消除这个警告,请参考以下设置: