SEP4020 PWM代码解读

本文详细介绍了PWM模式和高速GPIO模式的使用方法,包括如何设置频率、周期、分频和占空比,以及PWM模式和高速GPIO模式的区别和应用。通过实例演示,帮助读者快速掌握这两类模式的配置和操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

static void PWM1_Set_Freq( unsigned long freq )
{
unsigned long temp;
struct pwm_config    *pwm_ptr;
temp = freq;
pwm_ptr = (struct pwm_config * )freq;
//周期寄存器,分频寄存器,数据寄存器和计数寄存器进行配置。
*(volatile unsigned long*)PWM3_CTRL_V = pwm_ptr->pwm_ctrl; //PWM模式
*(volatile unsigned long*)PWM3_DIV_V = pwm_ptr->pwm_div;//分频
*(volatile unsigned long*)PWM3_PERIOD_V = pwm_ptr->pwm_period;//周期
*(volatile unsigned long*)PWM3_DATA_V = pwm_ptr->pwm_data;//占空比
// printk("PWM1_CTRL_V is 0x%x\n",*(volatile unsigned long*)PWM1_CTRL_V);
// printk("PWM1_DIV_V is 0x%x\n",*(volatile unsigned long*)PWM1_DIV_V);
// printk("PWM1_PERIOD_V is 0x%x\n",*(volatile unsigned long*)PWM1_PERIOD_V);
// printk("PWM1_DATA_V is 0x%x\n",*(volatile unsigned long*)PWM1_DATA_V);
//最后我们所要做得就是使能PWM
*(volatile unsigned long*)PWM_ENABLE_V |= 0x4 ;
// printk("PWM_ENABLE_V is 0x%x\n",*(volatile unsigned long*)PWM_ENABLE_V);
}
PWMSet(0,0x0FF,100,50);  



//至此,PWM模式的使用就已经结束了,现在我们来简单看一下高速GPIO模式的使用,

在此模式下,PWM直接将数据FIFO中的数据从高位向低位移位输出,移位时钟就是计数时钟,输入时数据也是从高位到低位顺序移入数据FIFOTIMER模式下,PWM就相当于一个TIMER,计数器等于周期寄存器时,发出中断,同时可以输出高电平,低电平,翻转电平或者保持输出,可以选择一次计数也可以是循环计数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值