第七章应用范例–中断程式.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章应用范例–中断程式

第七章 应用范例 – 中断程式 本章介绍以C 语言程式处理微控制器的中断事件. 第四章 4.7 中断服务函式 中说明如何 撰写中断服务函式以及注意事项. 必须遵照下列的规则来定义中断服务函式 → 函式的返回值型态必须是 void interrupt → 函式不可有参数 (argument) → 设定中断服务函式的中断向量 (interrupt vector) 使用 @ 指定中断向量 → 最好不要从程式的其他地方呼叫中断服务函式 → 不要在中断服务函式内做开启本中断功能 (interrupt reentrance) 相同的中断不要重复进入 格式 void interrupt ISR_Timer(void) @ 0x08 { } // 定义 : 返回值的型态, 没有参数, 设定中断向量为 0x08 C 编译器会根据中断服务函式对暂存器的需要, 在进入中断服务函式后, 将这些暂存器的内 容储存. 等执行完中断服务函式的工作后, 再恢复先前所储存的暂存器内容. 最后回要被中 断的地方继续执行, 同时中断功能也打开, 允许中断产生. 如果为了节省程式编码的大小, 在 中断服务函式中也可不要保存某些暂存器, 例如 BP, MP0, MP1.可参考第四章的 4.9 节关于 #pragma 的说明及使用. 在中断服务函式中不要将自身的中断功能再打开, 避免重复进入同一 个中断服务函式. 但是可以打开其他的中断功能, 只是要特别注意两个中断服务函式有无呼叫 到相同函式的状态, 以致发生变数共用造成资料错误的风险. 7.1. 用时钟控制 LED 的亮与灭 7.1.1 目的 本范例是使用时钟控制 LED 亮与灭的时间. 亮灭的时间相同并且固定. 是以C语言 撰写中断服务函式. 盛群半导体股份有限公司 HOLTEK SEMICONDUCTOR INC C50微电脑工具事业处部 撰 写 人 : 文 件 编 号 程式语言及应用范例(三) 版 别 1.10 日 期 2007/11/14 第 103 页 共 189 页 7.1.2 周边元件 使用单颗 LED 接到微控制器 HT48R10A-1 的埠 A, PA0 引脚 需要使用微控制器 HT48R10A-1 的暂存器 INTC, TMRC 与 TMR 等, 定义如下 TMRC (Timer Control Register) 时钟控制暂存器控制时钟的功能与启动, TMR暂存器??储存时钟启始数值的地方. 当写入TMR暂存器时,也会存入preload 暂存器. 若此时时钟是在停止状态中, 则此数值会被写入时钟计数器(timer counter). 每当时钟被启动, 它便将时钟计数器的数值往上加, 一直加到 FF, 之后便发生时钟 满溢(timer overflow). 这时, 下列的事情会发生 → 产生中断讯号 (interrupt signal) 盛群半导体股份有限公司 HOLTEK SEMICONDUCTOR INC C50微电脑工具事业处部 撰 写 人 : 文 件 编 号 程式语言及应用范例(三) 版 别 1.10 日 期 2007/11/14 第 104 页 共 189 页 → 将 preload 暂存器中的数值重新载入时钟计数器, 并且继续往上计数 如果需要时钟在每 count 个 clock 时产生满溢, 可将 256 – count 写入 TMR 暂存器. 如需要正确的时间, 则需要设定根据系统频率设定TMRC暂存器中的 PSC0~PSC2. 计算出对应的 count 并将 256 – count 写入 TMR 暂存

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档