本帖最后由 panxiaoyi 于 2021-7-30 19:58 编辑
下面是我编写的最简单的PWM例子,我就很困惑,寄存器 H 和 L 怎样和 T2PR 比较?
- #include "Configuration.h"
- #include <xc.h>
- void TIM2_Init(void)
- {
- T2PR=200;
- T2CLKCON = 1; //时钟选择Fosc/4
- T2CON = 0xF0; //对输入时钟进行128分频,启动T2
- }
- void PWM3_PulseWidth(unsigned short width) //脉冲宽度调整函数
- {
- unsigned short temp = width;
- unsigned char* p;
- temp<<=6;
- p=&temp;
- PWM3DCH = *(p+1);
- PWM3DCL = *p;;
- }
- void PWM3_Init(void)
- {
- RC5PPS = 0x07; //PWM3输出映射到端口
- TRISC &= !(1<<5); //IO口输出PWM
- PWM3_PulseWidth(0); //3设置脉冲宽度
- PWM3CON = 0x80; //启动PWM
- TIM2_Init();
- }
- void main(void)
- {
- PWM3_Init();
- PWM3_PulseWidth(570);
- while(1);
- return;
- }
|