我正在使用app_timer_set同步唤醒IC,也可以让它去睡觉,在这样做的同时,我也在切换领导。但是,一旦设备扩展睡眠模式,LED就会关闭。
谢谢莫希特
你好,
当DA1458X输入睡眠模式时,定时器块断电,但引脚上的值被锁存。
需要调用设备唤醒“Periph_init”时。
您还必须修改“PeripH_Init”,以将连接到LED的GPIO设置为每次唤醒时都有正确的值。否则,Periph_Init每次都会重置GPIO值。
谢谢,
tr_dialog.
我正在照顾已经是代码:
int flip_main_timer_handler(ke_msg_id_t const msgid,void const * param,ke_task_id_t const dest_id,ke_task_id_t const src_id){app_disable_sleep();setbits16(clk_amba_reg,pclk_div,0);setbits16(clk_amba_reg,hclk_div,0);
if(getBits16(sys_stat_reg,per_is_down))periph_init();
如果(计数器== 0){gpio_configurepin(gpio_port_0,gpio_pin_4,输入,pid_gpio,true);柜台++;}别的{gpio_configurepin(gpio_port_0,gpio_pin_4,输入,pid_gpio,false);计数器= 0;}app_set_extended_sleep();app_timer_set(flip_main_timer,task_app,200);return(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,输入,pid_gpio,true);
gpio_configurepin(gpio_port_0,gpio_pin_4,输入,pid_gpio,false);
切换我的别针我必须禁用pad_latch并再次启用它吗?在执行Configurepin之前?
您只需进入set_pad_functions()并实现这样的内容:
如果(计数器== 0)GPIO_CONFIGUREPIN(GPIO_PORT_1,GPIO_PIN_0,输出,PID_GPIO,TRUE);别的gpio_configurepin(gpio_port_1,gpio_pin_0,输出,pid_gpio,false);
每当DA睡觉时,当您的引脚重置时,当您的引脚唤醒时,每次睡觉时都会被锁定(即使您在set_pad_functions()中也不调用GPIO_CONFIGUREPIN()引脚将转到其默认状态)上面的片段,您将能够了解他们以前的状态并获得所需的方脉冲。此外,如果通过您的引脚驾驶LED,您应该使其成为输出。
谢谢 !!它现在有意义
你好,
当DA1458X输入睡眠模式时,定时器块断电,但引脚上的值被锁存。
需要调用设备唤醒“Periph_init”时。
您还必须修改“PeripH_Init”,以将连接到LED的GPIO设置为每次唤醒时都有正确的值。否则,Periph_Init每次都会重置GPIO值。
谢谢,
tr_dialog.
我正在照顾已经是代码:
int flip_main_timer_handler(ke_msg_id_t const msgid,
void const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
app_disable_sleep();
setbits16(clk_amba_reg,pclk_div,0);
setbits16(clk_amba_reg,hclk_div,0);
if(getBits16(sys_stat_reg,per_is_down))
periph_init();
如果(计数器== 0)
{
gpio_configurepin(gpio_port_0,gpio_pin_4,输入,pid_gpio,true);
柜台++;
}
别的
{
gpio_configurepin(gpio_port_0,gpio_pin_4,输入,pid_gpio,false);
计数器= 0;
}
app_set_extended_sleep();
app_timer_set(flip_main_timer,task_app,200);
return(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,输入,pid_gpio,true);
gpio_configurepin(gpio_port_0,gpio_pin_4,输入,pid_gpio,false);
切换我的别针
我必须禁用pad_latch并再次启用它吗?在执行Configurepin之前?
嗨Mohit3112.
您只需进入set_pad_functions()并实现这样的内容:
如果(计数器== 0)
GPIO_CONFIGUREPIN(GPIO_PORT_1,GPIO_PIN_0,输出,PID_GPIO,TRUE);
别的
gpio_configurepin(gpio_port_1,gpio_pin_0,输出,pid_gpio,false);
每当DA睡觉时,当您的引脚重置时,当您的引脚唤醒时,每次睡觉时都会被锁定(即使您在set_pad_functions()中也不调用GPIO_CONFIGUREPIN()引脚将转到其默认状态)上面的片段,您将能够了解他们以前的状态并获得所需的方脉冲。此外,如果通过您的引脚驾驶LED,您应该使其成为输出。
谢谢mt_dialog.
谢谢 !!它现在有意义