当前位置:首页 > 技术心得 > 正文内容

OKI单片机使用注意事项

xjtudll13年前 (2013-07-20)技术心得17920
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为例,请找到这段代码:

clip_image001

如果程序从变量初始化到第一次喂狗时间较长(超过2秒),请修改上面的代码,将看门狗溢出时间改成最长的8秒。代码如下:

clip_image002

4、指令周期

对于OKI单片机来说,即使是同一个指令,若寻址方式不同,指令周期也是不一样的。需要精确延时的时候,需要特别注意这点。

例如:

SB置位指令

(1) 目标地址为Rn时,需要机器周期1个;

(2) 目标地址为直接变量位地址时,需要机器周期2个;

clip_image004

5、编译器编译代码的优化

OKI编译器采用默认设置不优化时,编译之后占用的ROM将较大。

优化选项一般通常推荐Both loop and global optimizations ,因为这个可以减少代码量,同时可以避免一些不必要的优化

clip_image006

6、Specified stack size编译报警

Specified stack size用于分配堆栈的大小,如果没设置,编译器会自动将大小调节为实际使用堆栈大小,但是编译器将会报警,报警内容如下:

Warning W018: Specified stack size is too big, so adjusting to 01B2(434) bytes。

这个警告可以忽略,如果一定要消除这个警告,请参考以下设置:

clip_image008

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/279/

标签: OKI单片机
分享给朋友:

“OKI单片机使用注意事项” 的相关文章

C# WinForm中禁止改变窗口大小的方法

C# WinForm中禁止改变窗口大小的方法

在Form类下面有一个FormBorderStyle的字段,我们可以通过设置它的值来让窗体不能被拉大拉小。FormBorderStyle的值设置为FormBorderStyle.FixedSingle或Fixed3D时,窗体大小是不能被改变的。 当然,还有一种情况,我们也应该要考虑到,那就是窗体最...

湿度对电子元器件的影响

潮湿气候对电子元器件有啥影响?网上有说: 1、使绝缘材料性能降低 2、使金属器件锈蚀 3、使润滑剂变质 这些听起来虚虚的,没有直观的概念与感受。我这里说一个最近碰到的问题。 背景:OTP IC(手表用),开窗(未完全封胶),便于用紫外线擦除程序,重复利用OTP IC。近期广东“回南天&r...

windows环境下TortoiseSVN多仓库(repository)转移合并(修改+转载)

http://www.lilin.net/blog/?p=1346 问题: 两个不同的版本库,放在不同的及其上,各有数个项目在里面,为了统一管理,我现在都集中在一个仓库内,然后用金山快盘,多个机器同步。 回答: 完美包含版本信息,把双库融合,方便管理同步。 自己尝试后发现问题...

430仿真器安装驱动提示INF找不到所需的段落

430仿真器安装驱动提示INF找不到所需的段落

在安装msp430 USB仿真器驱动程序时,出现问题:在inf中找不到所需段落。 打开setupapi.log(windows目录下)一看,发现是找不到 [ClassInstall32] 段。 找到原因,就知道如何解决了。解决方法如下 1、打开UIF的驱动程序,其下有2个INF文档,umpusb...

Android x86 4.4 RC2卡在跳过Wifi后面一步

Android x86 4.4 RC2卡在跳过Wifi后面一步

问题:Android x86 4.4 RC2卡在跳过Wifi后面一步,没法跳过,一直死循环。 无论怎么改都在这步了, 返回了也不知道从哪可以跳过。   解决办法: 一、在语言选择界面用鼠标在 左上-右上-右下-左下 四个角各点一遍 这个方法不知道是谁试出来的,这么扯蛋的办法都能想到。 二...

如何判断一个正整数是不是2的幂

估计用递归的方法大家都知道,就不赘述了 这里使用一个更简单的方法。 若一个正整数是2的幂,则这个数在计算中的表示肯定是以下形式:0x00...1000...B省略号表示若干个0.问题就转变为一个等价的命题:如何判断给定的一个正整数是如0x00...1000...B这种形式(二进制表示式中只有唯一...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。