PWM控制—脉冲宽度调制
通过对脉冲宽度的调制,来获得所需要的波形。
#include "exynos_4412.h"
void delay(unsigned int time)
{
while(time--);
}
int main()
{
//1.配置GPD0_0 PWM输出功能
GPD0.CON=GPD0.CON &(~(0XF)) | 0X2;
//2.设置PWM一级分频100
PWM.TCFG0=PWM.TCFG0 &(~(0xff)) | 99;
//3.设置二级分频 1 递减计数器频率100M/100=1M
PWM.TCFG1=PWM.TCFG &(~(0xf)) | ;
//4.设置PWM0为自动充装载,使其能够产生连续的脉冲信号
PWM.TCON=PWM.TCON | (1<<3);
//5.设置PWM0的周期1000HZ 1/1000 / 1/1000000=1000
PWM.TCNTB0=1000;
//6.设置占空比60%
PWM.TCMPB0=600;
//7.将TCNTB0的值第一次手动装载到计数器
PWM.TCON=PWM.TCON | (1<<1);
//8.关闭手动更新
PWM.TCON=PWM.TCON & (~(1<<1));
//9.递减计数器开始递减
PWM.TCON=PWM.TCON | (1);
while(1)
{
PWM.TCON=PWM.TCON | (1);
delay(100000);
PWM.TCON=PWM.TCON | (~(1));
delay(100000);
}
return 0;
}