您好!EndDevice终端调试,使用协议栈,遇到了休眠 及 定时的问题。请问这是哪里出问题了呢?我用的协议栈版本是ZStack-CC2530-2.3.1-1.4.0,IAR7.60
1、cc2530进入PM2模式,外部中断唤醒后,不再进入睡眠,32M时钟一直有;
2、定时超过20s后,定时就不准确了。比如设置成30s,终端发送数据间隔是大概2分钟。是因为下面函数的timeout参数是16bit的事情吗?
osal_start_timerEx(GenericApp_TaskID,SEND_DATA_EVENT,30000);
3、外部P1.3中断服务程序:
HAL_ISR_FUNCTION( P1Isr, P1INT_VECTOR )
{
uint8 p1irqflag;
HAL_ENTER_ISR();
p1irqflag = P1IFG;//特殊功能寄存器
if(p1irqflag & 0x08)
{
Fcount++;
P1IFG &= ~0x08;//清除标志
}
//ALLOW_SLEEP_MODE();
//CLEAR_SLEEP_MODE();
HAL_EXIT_ISR();}
Susan Yang:
早期版本的协议栈osal timer函数参数是16bit的,现在改成32bit,应该不会出现这个问题了
建议您使用较新1版本的协议栈
user3395541:
回复 Susan Yang:
谢谢!
外部中断唤醒后,不进入休眠是大概哪里有问题呢?不是协议栈自动判断休眠吗?