您的位置 首页 嵌入式

瑞萨单片机学习笔记(2)中止的运用

前面章节有提到通过设置option_byte来配置看门狗,我手上拿到的项目工程是没有配置option_byte的,但是发现coder是在程序中见缝插针般…

  前面章节有说到经过设置option_byte来装备看门狗,我手上拿到的项目工程是没有装备option_byte的,可是发现coder是在程序中见缝插针般刺进以下代码:

  WDTE = 0xac;

  这个赋值操作便是喂狗,至今我也不知道option_byte的复位值是多少,从官网下载的数据手册也没有阐明。其实能够经过一些方法来验证,即不设置option_byte,不喂狗,看程序是否会不断复位。废话说完,言归正传,咱们用守时器来完成守时喂狗。

  这儿用到的是78K0/FY-2系列单片机,运用TM51作为守时器,需求装备的存放器有:

  TCL51——挑选守时器时钟频率,是在外部硬件时钟频率的基础上进行分频。

  TMC51——此存放只要最高位TCEN51,舱位/封闭守时器。

  CR51——计数比较存放器,当计数存放器TM51的值等于CR51时,会置位对应中止标识位。此处的值不同于STC守时器的设备值。

  TMMK51——TM51中止屏蔽存放器位

  TMPR51——TM51中止优先级存放器位

  自己喜爱将某个部件的初始化代码编写为一个函数

  void init_TM51(void)

{

  TCL51 = 0x05;   //根据20MHz分频为312.5KHz ,守时距离为3.2us

  TMC51 = 0x80;  //翻开守时器

  CR51 = 0xfa;  //0.8ms会发生中止

  TMMK51 = 0;  //使能中止

  TMPR51 =0;  //设置为高优先级中止

  EI();  //还记得前面增加的#pragma EI 吗?总中止使能,刚开始探索的时分便是忘掉增加此行代码

}

中止函数:

#pragma interrupt INTTM51 inter_TM51 rb1

__interrupt void inter_TM51(void)

{

  //增加自己的代码

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/263729.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部