打印
[资料分享与下载]

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

[复制链接]
812|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
niuyaliang|  楼主 | 2015-2-27 19:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[cpp] view plaincopy
//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);   
  
}  


相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

212

主题

2427

帖子

7

粉丝