关于PWM定时器的一些思路
1.参考s3c2440手册第十章定时器手册。以下是设置定时器寄存器:
(注意:一下是以TQ2440为列)
包括四个定时器 由于开发板总定时器的输出接口与蜂鸣器的接口
相联(GPB0),所以要得到定时器的输出可以获取GPB0的高低电频
变化频率,现在开始设置和PWM相关的寄存器,
pwm一共包括四个寄存器:
tcon;
tcnt;
tcfg1;
tcfg0;
以下对各寄存器的操作结合上面讲的开始一个PWM定时器的步骤和
2440手册PWM寄存器操作部分来看就比较容易理解
1.读取定时器配置寄存器1的值预分频值
2.读取定时器配置寄存器0的值预分频值
3.将tcfg0和tcfg1的值分别写入寄存器1和0中
4.设置比较寄存器与计数寄存器的值
5.读取控制寄存器的值
6.关闭死区、自动重载、关反相器、更新TCNTB0&TCMPB0、启动定时器0
7对GPB0复用口进行复用功能设置,设置为TOUT0 PWM输出
具体实现代码如下
//以下对各寄存器的操作结合上面讲的开始一个PWM定时器的步骤和2440手册PWM寄存器操作部分来看就比较容易理解
tcfg1 = __raw_readl(S3C2410_TCFG1); //读取定时器配置寄存器1的值预分频值
tcfg0 = __raw_readl(S3C2410_TCFG0);//读取定时器配置寄存器0的值分频值
tcfg0 &= ~S3C2410_TCFG_PRESCALER0_MASK;// 内核下的arch/arm/mach-s3c2410/include/mach/regs-timer.
1.参考s3c2440手册第十章定时器手册。以下是设置定时器寄存器:
(注意:一下是以TQ2440为列)
包括四个定时器 由于开发板总定时器的输出接口与蜂鸣器的接口
相联(GPB0),所以要得到定时器的输出可以获取GPB0的高低电频
变化频率,现在开始设置和PWM相关的寄存器,
pwm一共包括四个寄存器:
tcon;
tcnt;
tcfg1;
tcfg0;
以下对各寄存器的操作结合上面讲的开始一个PWM定时器的步骤和
2440手册PWM寄存器操作部分来看就比较容易理解
1.读取定时器配置寄存器1的值预分频值
2.读取定时器配置寄存器0的值预分频值
3.将tcfg0和tcfg1的值分别写入寄存器1和0中
4.设置比较寄存器与计数寄存器的值
5.读取控制寄存器的值
6.关闭死区、自动重载、关反相器、更新TCNTB0&TCMPB0、启动定时器0
7对GPB0复用口进行复用功能设置,设置为TOUT0 PWM输出
具体实现代码如下
//以下对各寄存器的操作结合上面讲的开始一个PWM定时器的步骤和2440手册PWM寄存器操作部分来看就比较容易理解
tcfg1 = __raw_readl(S3C2410_TCFG1); //读取定时器配置寄存器1的值预分频值
tcfg0 = __raw_readl(S3C2410_TCFG0);//读取定时器配置寄存器0的值分频值
tcfg0 &= ~S3C2410_TCFG_PRESCALER0_MASK;// 内核下的arch/arm/mach-s3c2410/include/mach/regs-timer.