飞思卡尔单片机DZ60---实时中断

//RTI实时中断实验
//RTC模块包括一个状态和控制寄存器、一个8位计数寄存器和一个8位模数寄存器
//实时中断功能用来产生周期性中断。RTI有三个可选时钟源:LPO 1KHZ内部振荡器,32KHZ内部时钟,以及ERCLK外部时钟
//8位比较器实时比较计数器RTCCNT与TRCMOD值,相等则产生中断



#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */

#define LEDCPU PTDD_PTDD0
#define LEDCPU_dir PTDDD_PTDDD0





//初始化RTC
void INIT_RTC(void) 
{
  RTCSC = 0X1B;  //允许实时中断,RTCLKS = 00 实时时钟源为1KHZ低功率振荡器(LPO? 
                 //RTCPS = 1010(B)同时RTCLKS[0] = 0,即选择10分频 
                 
  RTCMOD = 50 - 1;//50个周期产生一次中断,中断频率为2Hz,0.5秒产生一次中断
}



//RTC中断函数
void interrupt 25 RTC_INTERRUPT(void) 
{
  if(RTCSC_RTIF == 1) 
  {
      RTCSC_RTIF = 1;//写入逻辑数1可以清除此位
      LEDCPU = ~LEDCPU;
      
  }
}

                                                                                  
void main(void) {

  DisableInterrupts;
  SOPT1 = 0;
  EnableInterrupts;
  
  
  LEDCPU_dir = 1;
  LEDCPU     = 0;
  
  INIT_RTC();
  
  while(1); 

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值