在线时间6 小时
UID2042371
注册时间2013-9-16
NXP金币12
该用户从未签到
高级会员

- 积分
- 693
- 最后登录
- 1970-1-1
|
发表于 2014-7-22 10:00:42
|
显示全部楼层
回复:KL05Z PORTA中断进不去的问题
回复第 4 楼 于2014-07-11 16:31:23发表:
回复第 2 楼 于2014-07-10 15:28:11发表:
你好,楼主!
说明你的中断设置没有完全正确,说明中断源与中断向量没有对上,你再检查一下!
呵呵!我现在正在使用KL05Z进行开发,刚刚解决了IO口中断的问题,看门狗又有问题啦,很郁闷!!!封装函数如下:
void wdog_enable(void)
{
SIM_COPC &= ~SIM_COPC_COPCLKS_MASK; //看门狗时钟选择iKHZ的内部时钟
SIM_COPC |= SIM_COPC_COPT(3); //选择溢出时间 1--32ms,2--256ms,3--1024ms
SIM_COPC &= ~SIM_COPC_COPW_MASK; //使窗口COP操作可用
}
void wdog_disable(void)
{
SIM_COPC = SIM_COPC_COPT(0); //看门狗关闭
}
void wdog_refreshing(void) //喂狗
{
SIM_SRVCOP = SIM_SRVCOP_SRVCOP(0x55);
SIM_SRVCOP = SIM_SRVCOP_SRVCOP(0xAA);
}
int main (void)
{
LED_init();
EnableInterrupts;
printf("\nRunning the Blink project.\n");
lptmr_init(LPTMR_TIME*1000, LPTMR_USE_LPOCLK);
wdog_enable(); //打开看门狗
_delay_us(500000); //延时500ms
_delay_us(500000); //延时500ms
_delay_us(500000); //延时500ms
_delay_us(500000); //延时500ms
while(1)
{
LED1_TOGGLE;
//temp0 = RF4432_ReadReg(0x72);
_delay_us(500000);
}
}
现在结果是看门狗打开后没有喂狗,但一直没有复位, 不知道为什么请高手指点一下!!!谢谢啦……
看门狗的一些寄存器是只写一次的,程序在进入main函数之前估计已经有禁止过看门狗,所以导致了你在主函数里启用开门狗的语句无效了。
建议你去搜索一下看门狗的寄存器,是否在进main函数前就已经被禁止过。
飞思卡尔官网的例程就会遇到这个问题。
 |
|