瑞萨单片机学习笔记(2)-中断的使用

  前面章节有提到通过设置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)

{

  //添加自己的代码

}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值