一个32MHZ的系统时钟 定时器自动装载值为1000 ,怎么生成一个19K的PWM波
时间: 2024-06-01 08:11:21 浏览: 61
STM32生成互补PWM波(输出前均为低电平)
要生成一个19K的PWM波,需要使用定时器来控制输出的频率和占空比。假设使用的是定时器1,步骤如下:
1. 设置定时器1的工作模式为PWM模式,即将TCCR1A寄存器的WGM11、WGM10位设置为1,WGM13、WGM12位设置为0。
2. 设置定时器1的时钟源为系统时钟,即将TCCR1B寄存器的CS12、CS11、CS10位设置为0,0,1。
3. 设置定时器1的自动装载寄存器OCR1A的值为1782,即32MHZ/19K/2-1,因为19K的周期为1/19000秒,半周期为1/38000秒,所以定时器1的自动装载寄存器的值为半周期对应的时钟周期数减1。
4. 设置定时器1的占空比,即将OCR1B寄存器的值设置为需要的占空比所对应的计数值,比如50%占空比对应的计数值为OCR1A/2。
5. 启动定时器1,即将TCCR1B寄存器的OCIE1A位设置为1。
这样就可以生成一个19K的PWM波,并且可以通过OCR1B寄存器来控制占空比。
阅读全文