下午开始要去看pos终端规范了~~学习笔记就先写到这。 改天补上~
PWM是一种对模拟信号电平进行数字化编码的方法,可以通过调整方波的占空比来对模拟信号电平进行编码,通常使用在开关电源(switching power)和电机控制中。
Stellaris®PWM模块由 3个 PWM发生器模块 1个控制模块组成。每个 PWM发生器模块包含1个定时器(16位递减或先递增后递减计数器),2个PWM比较器,PWM信号发生器,死区发生器和中断/ADC-触发 选择器。而控制模块决定了PWM信号的极性,以及将哪个信号传递到管脚。
下图为PWM模块结构图
当讨论到一个 PWM 模块的各种部件时,这个 API 使用了下列标号约定:
3 个发生器模块称为 Gen0、Gen1 和 Gen2。
与每个发生器模块相关的 2 个 PWM 输出信号称为 OutA 和 OutB。
6 个输出信号称为 PWM0、PWM1、PWM2、PWM3、PWM4和 PWM5。
PWM0 和 PWM1 对应 Gen0、PWM2和 PWM3 对应 Gen1、PWM4 和 PWM5 对应 Gen2。
而且,作为对这个 API 的一个简化的假设,每个发生器模块的比较器 A 专门用来调整偶数编号的 PWM 输出(PWM0、PWM2 和 PWM4)的脉宽。另外,比较器 B 专门用于奇数编号的 PWM 输出(PWM1、PWM3和 PWM5) 。
附上代码:
int main (void)
{
jtagWait();
SysCtlClockSet(SYSCTL_SYSDIV_1 | /* 配置6MHz外部晶振作为主时钟 */
SYSCTL_USE_OSC |
SYSCTL_OSC_MAIN |
SYSCTL_XTAL_6MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); /* 使能PWM2和PWM3输出所在GPIO */
SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM); /* 使能PWM模块 */
SysCtlPWMClockSet(SYSCTL_PWMDIV_1); /* PWM时钟配置:不分频 */
GPIOPinTypePWM(GPIO_PORTB_BASE, /* PB0和PB1配置为PWM功能 */
GPIO_PIN_0 | GPIO_PIN_1);
PWMGenConfigure(PWM_BASE, PWM_GEN_1, /* 配置PWM发生器1:加减计数 */
PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC);
PWMGenPeriodSet(PWM_BASE, PWM_GEN_1, 60000); /* 设置PWM发生器1的周期 */
PWMPulseWidthSet(PWM_BASE, PWM_OUT_2, 3000); /* 设置PWM2输出的脉冲宽度 */
PWMPulseWidthSet(PWM_BASE, PWM_OUT_3, 3000); /* 设置PWM3输出的脉冲宽度 */
PWMOutputState(PWM_BASE, /* 使能PWM2和PWM3的输出 */
PWM_OUT_2_BIT | PWM_OUT_3_BIT,
true);
PWMGenEnable(PWM_BASE, PWM_GEN_1); /* 使能PWM发生器1,开始产生 */
/* PWM方波 */
PWMGenIntTrigEnable(PWM_BASE, /* 使能PWM发生器1归零触发中断 */
PWM_GEN_1,
PWM_INT_CNT_ZERO);
PWMIntEnable(PWM_BASE, PWM_GEN_1); /* 使能PWM发生器1中断 */
IntEnable(INT_PWM1); /* 使能PWM1中断 */
IntMasterEnable(); /* 使能总中断 */
for (;;) {
}
}
这个例程是拿L5、L6对应的PWM2、PWM3来说明的
1、显然我们应该使能外设。GPIO B 和PWM(在这之前主时钟设置)
2、PWM时钟设置(由系统时钟分频得到)
3、PB0和PB1设置成PWM类型
4、PWMGenConfigure()PWN发生器模式配置(PWM2和 PWM3 对应 Gen1),设置发生器周期。
5、设置输出信号脉宽,使能输出
6、使能发生器,开始产生方波
7、使能PWM1发生器中断
8、PWM1使能中断
分享到:
相关推荐
TI m3 lm3s811 pwm波输出初始化程序
简单的程序实现了LM3S811的带死区控制的PWM功能
LM3S811开发板最小系统,JATG口调试程序
LM3S811芯片手册,本文档是中文版的,详细的介绍了LM3S芯片手册的信息。供开发人员参考。
难找的资料,LM3S811 程序包。
基于LM3S811平台 在IAR下调试好的无错 下载可用
lm3s811数据手册,c语言,开发语句,硬件配置,寄存器配置,函数
lm3s811引脚图、lm3s811引脚图
LM3S 811 TI CORTEXM3 最小系统 LM3S 811 TI CORTEXM3 最小系统 LM3S 811 TI CORTEXM3 最小系统 LM3S 811 TI CORTEXM3 最小系统 LM3S 811 TI CORTEXM3 最小系统 LM3S 811 TI CORTEXM3 最小系统 LM3S 811 TI CORTEXM3...
Stellaris LM3S811 Microcontroller Data Sheet TI的LM3S811 ARM芯片器件手册
LM3S811例程 可以更好的学习程序
/* 使能PWM2和PWM3输出所在GPIO*/ GPIODirModeSet( GPIO_PORTD_BASE, GPIO_PIN_2|GPIO_PIN_5, GPIO_DIR_MODE_OUT);//设置管脚的方向与模式 GPIOPinWrite( GPIO_PORTD_BASE, GPIO_PIN_2, 0x00); GPIOPinWrite( GPIO_...
lm3s811学习套件,单片机完整工程文件 lm3s811学习套件,单片机完整工程文件 lm3s811学习套件,单片机完整工程文件
lm3s811学习套件.zip电子设计项目毕业设计及产品设计资料论文,源代码及PCB资料 lm3s811学习套件.zip电子设计项目毕业设计及产品设计资料论文,源代码及PCB资料 lm3s811学习套件.zip电子设计项目毕业设计及产品设计...
ARM LM3S811 定时时钟显示程序,
LM3S811的PWM实例,Keil工程,调试成功
EV-LM3S811评估板开发模板
lm3s811学习套件
学习lm3s811开发板使用心得
EK-LM3S811 Schematic.pdf