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

OKI单片机使用注意事项

xjtudll13年前 (2013-07-20)技术心得16940
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://www.xjtudll.cn/Exp/279/

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

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

XP 安装IIS步骤

XP 安装IIS步骤

第一步:在网上下载IIS5.1安装包。第二步:进入控制面板-添加/删除程序-添加删除Windows组件-在Internet信息服务上画对勾。这里还有很重要的一步设置 ,否则总是会出现找不到文件!进windows组件后,选附件和工具(详细信息),游戏(详细信息),去掉internet游戏前面的勾。第三...

布丁软件引起的桌面闪烁

问题描述: 进入桌面后,屏幕闪烁。 查找到系统日志: 错误应用程序名称: explorer.exe,版本: 6.3.9600.18231,时间戳: 0x56b8c9f1 错误模块名称: PDZipMenu64.dll,版本: 1.4.3.11014,时间戳: 0x5da4349a 异常代码: 0xc...

ios app在 waiting for review时重新上传程序

ios app在 waiting for review时重新上传程序

参考资料:http://houcengceng.com/?p=43 问题: ios app后发现了一个急需修改的bug,怎么办?不可能等审核reject,那样纯粹是浪费时间。 解决办法: 点击details进入后在link点击binary details,进入之后点击右上角reject...

SQL中没有IIf,Nz函数,用什么替代

SQL Server中没有iif函数,可以使用case when then 例如: case when 性别 = '男' then '先生' else ‘女士' end SQL中也没Nz函数,可以用isnull代替 例如 isnull(字段,0)...

12点是AM还是PM

12点是AM还是PM

中午12点是AM还是PM,有很多人会搞混。有说是AM的,也有说是PM的。 先说说AM和PM的含义吧 AM:ante meridiem(来自拉丁文) PM:post meridiem(来自拉丁文) 那么12点究竟是AM还是PM呢?一般习惯说中午十二点为12 PM, 深夜十二点为12 AM,正式用法是&...

DBNull.Value(数据库写入NULL)与null

DBNull.Value,, 适用于向数据库的表中插入空值。 null,是指在程序中表示空引用。 或者对象为空。就是没有实例化。 如果要向数据库写NULL,应该写入的是DBNull.Value,而不是直接赋值null。...

发表评论

访客

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