我使用app_timer_set同步唤醒IC,并使其进入睡眠状态,而这样做,我也触发领导。但是,LED是,一旦设备进入延长休眠模式关闭。
谢谢莫希特
你好,
定时器块被断电时DA1458x进入睡眠模式,但在销的值被锁存。
当设备唤醒“periph_init”需要被调用。
你也必须修改“periph_init”设置GPIO连接到LED,以正确的值每次醒来的时间。否则,periph_init每次都会重置GPIO值。
谢谢,
TR_DIALOG
我正在照顾已经是这里的代码:
INT flip_main_timer_handler(ke_msg_id_t常量MSGID,无效常量* PARAM,ke_task_id_t常量DEST_ID,ke_task_id_t常量src_id){app_disable_sleep();SetBits16(CLK_AMBA_REG,PCLK_DIV,0);SetBits16(CLK_AMBA_REG,HCLK_DIV,0);
如果(GetBits16(SYS_STAT_REG,PER_IS_DOWN))periph_init();
如果(计数器== 0){GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_4,INPUT,PID_GPIO,真正的);计数器++;}别的{GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_4,INPUT,PID_GPIO,FALSE);计数器= 0;}app_set_extended_sleep();app_timer_set(FLIP_MAIN_TIMER,TASK_APP,200);回报(KE_MSG_CONSUMED);}
在上面的代码我没有得到正确的输出方波脉冲,我得到它变低高了很短的时间,然后再次走高,但如果我删除app_set_extended_sleep();我得到良好的矩形脉冲。
嗨mohit3112
当DA进入睡眠状态引脚被锁存,但是当DA唤醒引脚复位。
尽量把引脚的状态存储在保持着的变量,在set_pad_functions醒来的时候了一套你的脚到以前的状态()。
谢谢mt_dialog.
请参阅我的代码在peripheral_init由我使用的是定时器醒来后我没有配置引脚()
GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_4,INPUT,PID_GPIO,真正的);
GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_4,INPUT,PID_GPIO,FALSE);
切换我销我一定要禁用pad_latch并重新启用?之前做ConfigurePin?
你只需要在set_pad_functions(去)和实施这样的事情:
如果(计数器== 0)GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_0,OUTPUT,PID_GPIO,真正的);别的GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_0,OUTPUT PID_GPIO,FALSE);
每次DA进入睡眠状态的引脚都将被锁定,当它醒来,虽然你的脚将重设(即使你不调用GPIO_ConfigurePin()在你的set_pad_functions()的引脚将其默认状态),与上面的代码中,你将能够知道他们以前的状态,并得到你想要的方波脉冲。此外,如果你正在推动通过引脚带领你应该让输出。
谢谢 !!现在是有道理的
你好,
定时器块被断电时DA1458x进入睡眠模式,但在销的值被锁存。
当设备唤醒“periph_init”需要被调用。
你也必须修改“periph_init”设置GPIO连接到LED,以正确的值每次醒来的时间。否则,periph_init每次都会重置GPIO值。
谢谢,
TR_DIALOG
我正在照顾已经是这里的代码:
INT flip_main_timer_handler(ke_msg_id_t常量MSGID,
无效常量* PARAM,
ke_task_id_t常量DEST_ID,
ke_task_id_t常量src_id)
{
app_disable_sleep();
SetBits16(CLK_AMBA_REG,PCLK_DIV,0);
SetBits16(CLK_AMBA_REG,HCLK_DIV,0);
如果(GetBits16(SYS_STAT_REG,PER_IS_DOWN))
periph_init();
如果(计数器== 0)
{
GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_4,INPUT,PID_GPIO,真正的);
计数器++;
}
别的
{
GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_4,INPUT,PID_GPIO,FALSE);
计数器= 0;
}
app_set_extended_sleep();
app_timer_set(FLIP_MAIN_TIMER,TASK_APP,200);
回报(KE_MSG_CONSUMED);
}
在上面的代码我没有得到正确的输出方波脉冲,我得到它变低高了很短的时间,然后再次走高,但如果我删除app_set_extended_sleep();我得到良好的矩形脉冲。
嗨mohit3112
当DA进入睡眠状态引脚被锁存,但是当DA唤醒引脚复位。
尽量把引脚的状态存储在保持着的变量,在set_pad_functions醒来的时候了一套你的脚到以前的状态()。
谢谢mt_dialog.
请参阅我的代码在peripheral_init由我使用的是定时器醒来后我没有配置引脚()
GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_4,INPUT,PID_GPIO,真正的);
GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_4,INPUT,PID_GPIO,FALSE);
切换我销
我一定要禁用pad_latch并重新启用?之前做ConfigurePin?
嗨mohit3112
你只需要在set_pad_functions(去)和实施这样的事情:
如果(计数器== 0)
GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_0,OUTPUT,PID_GPIO,真正的);
别的
GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_0,OUTPUT PID_GPIO,FALSE);
每次DA进入睡眠状态的引脚都将被锁定,当它醒来,虽然你的脚将重设(即使你不调用GPIO_ConfigurePin()在你的set_pad_functions()的引脚将其默认状态),与上面的代码中,你将能够知道他们以前的状态,并得到你想要的方波脉冲。此外,如果你正在推动通过引脚带领你应该让输出。
谢谢mt_dialog.
谢谢 !!现在是有道理的