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

来源:互联网 发布:centos 安装mysql 编辑:程序博客网 时间:2024/05/16 09:33
//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//初始化RTCvoid 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); }