logo

能给一个ch563评估板简单的定时器中断的例程吗?

评估板现有的例程里没有定时器定时中断的例子,我按手册里的说明写了个简单的定时程序,但无法产生中断。官方是否可以给一个简单的定时例程?简单的隔一段时间进入一次中断,令板上的某个发光管闪烁就可以。

下面是我写的初始化定时器0的函数,究竟哪有问题?

void Timer0_Init(void)
{
	R32_TMR0_CNT_END=100000;
	R8_TMR0_CTRL_MOD &=~(RB_TMR_MODE_IN|RB_TMR_ALL_CLEAR);
	R8_TMR0_CTRL_MOD |= RB_TMR_COUNT_EN;
	R8_INT_EN_IRQ_0|=RB_IE_IRQ_TMR0;
	R8_INT_EN_IRQ_GLOB|=RB_IE_IRQ_GLOB;
	
}



试了试,加了一句R8_TMR0_INTER_EN|=RB_TMR0_IE_CYC_END;就可以产生定时中断了我也不知这样做是不是正确的方法。

CH563的文档在这里描述的很不清楚,建议修改一下,下面是手册里关于定时、计数功能的原文:

定时器.JPG

关于RB_TMR_IE_CYC_END的描述

定时器1.JPG

建议将RB_TMR_IE_CYC_END的描述改为:定时器/PWM模式下计数周期结束中断使能/禁止位。这样就清楚明确的多了。在11.3.1定时、计数功能里加入这个使能位的说明,这样就很容易令使用者理解了。




请参考 http://wch.cn/bbs/thread-62840-1.html 一个使用定时器的跑马灯

这人很懒,什么都没留下
只有登录才能回复,可以选择微信和github账号登录