unsigned int single = 0;
void INIT_RTI(void){
CPMUINT = 0x80; //RTI使能设置
CPMURTI = 0x6f; //时钟配置60us
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void RTI_inter(void) {
single += 1;
if(single == 1) {
single = 0;
LED = ~LED;
}
}
#pragma CODE_SEG DEFAULT
void main(void) {
/* put your own code here */
DisableInterrupts;
INIT_RTI();
LED_dir = 1;
LED = 0;
}
void INIT_RTI(void){
CPMUINT = 0x80; //RTI使能设置
CPMURTI = 0x6f; //时钟配置60us
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void RTI_inter(void) {
single += 1;
if(single == 1) {
single = 0;
LED = ~LED;
}
if(CPMUFLG_RTIF == 1)
CPMUFLG_RTIF = 1;//标志位清除}
#pragma CODE_SEG DEFAULT
void main(void) {
/* put your own code here */
DisableInterrupts;
INIT_RTI();
LED_dir = 1;
LED = 0;
EnableInterrupts;
}
本文介绍了一个简单的实时中断(RTI)初始化配置过程,并演示了如何利用RTI中断实现LED灯的周期性闪烁。通过定义全局变量和中断服务程序,实现了每60微秒中断一次,进而控制LED的状态翻转。
4934

被折叠的 条评论
为什么被折叠?



