你好,
我正在使用Da14695 usb开发包WiRa Sdk版本WiRa\ U 10.440.8.6。
我想使用gpios,如P0\u17或P0\u18作为带Timer3和Timer4的pwm定时器,但没有得到输出。
在定时器示例的帮助下,我可以将P1_1和P1_6与定时器和定时器2一起使用,但我希望使用P0_17和P0_18作为Pwm。
我将计时器示例修改为
(在此睡眠模式下设置为pm\ U模式\活动模式)
#定义定时器1\U PWM\U端口HW\U GPIO\U端口0
#定义定时器1\U PWM\U引脚HW\U GPIO\U引脚18
静态void prvSetupHardware(void)
{
/*初始化硬件*/
pm\u系统初始化(periph\u init);
/*在处理任何GPIO引脚之前启用COM电源域*/
hw_sys_pd_com_enable();
/*PWM功能*/
硬件gpio\设置\引脚\功能(定时器1\脉宽调制\端口、定时器1\脉宽调制\引脚、硬件gpio\模式\输出、硬件gpio\功能\定时器3\脉宽调制);
hw\u gpio\u pad\u latch\u enable(定时器1\u PWM\u端口,定时器1\u PWM\u引脚);
hw\u gpio\u pad\u latch\u disable(定时器1\u PWM\u端口,定时器1\u PWM\u引脚);
/*配置所有GPIO引脚后禁用COM电源域*/
hw_sys_pd_com_disable();
}
void\u timer\u init(HW\u timer\u ID)
{
定时器配置cfg={
.clk\u src=HW\u计时器\u clk\u src\u扩展,
.预分频器=31,
.mode=HW\u TIMER\u mode\u TIMER,
/*在捕获模式下配置计时器*/
。计时器={
.direction=HW\u TIMER\u DIR\u UP,
.reload_val=0,
.free_run=真,
},
/*配置PWM功能*/
.pwm={
.port=定时器1\u PWM\u端口,
.pin=定时器1\u PWM\u pin,
.pwm \u active \u in \u sleep=真,
.频率=64999,
.占空比=32500,
},
};
hw\u timer\u init(id和cfg);
hw\u timer\u register\u int(id,\u timer\u overflow\u cb);
}
void prvTimersTask(void*pvParameters)
{
printf(“***定时器3演示***\n\r”);
_定时器初始化(HW\u TIMER3);
硬件定时器启用(硬件定时器3);
对于(;;){
}
}
定时器配置是否正确或需要添加什么。
每个gpio都可以用作Pwm或仅用作特定的gpio。
如何使用gpiop0\u17作为Pwm定时器。
谢谢你
贾加特
你好,贾加思,
由于设备处于休眠模式时,只有P1_1和P1_6可以提供PWM输出,因此当您使用任何其他GPIO作为PWM输出时,必须将PWM配置结构中的PWM_active_in_sleep变量设置为false,如下所示:
致以最诚挚的问候
即时消息对话框
谢谢你