⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
3个职位/0个新职位
最后一篇文章
贾加特52
离线
最后一次见到:1个月3周前
已加入:2020-07-06 10:40
用pwm驱动gpio

你好,

我正在使用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定时器。

谢谢你

贾加特

设备:
即时消息对话框
离线
最后一次见到:1个月3周前
已加入:2016-12-06 22:25
你好,贾加思,

你好,贾加思,

由于设备处于休眠模式时,只有P1_1和P1_6可以提供PWM输出,因此当您使用任何其他GPIO作为PWM输出时,必须将PWM配置结构中的PWM_active_in_sleep变量设置为false,如下所示:

/*配置PWM功能*/.PWM={.port=TIMER1\U PWM\U port,.pin=TIMER1\U PWM\U pin,/**当设置为true时,TIMER1将在P1\U 1引脚上持续生成PWM脉冲,*而在休眠模式下,TIMER2在P1\U 6引脚上*/.pwm \u active \u in \u sleep=假,

致以最诚挚的问候
即时消息对话框

贾加特52
离线
最后一次见到:1个月3周前
已加入:2020-07-06 10:40
谢谢你

谢谢你