#include <pic.h>
__CONFIG(INTIO & WDTDIS & MCLRDIS & BOREN & CPD); // 内部振荡器,关闭看门狗
void PWM_Init() {
TRISIO2 = 0; // GPIO2 (CCP1) 设为输出
ANSEL &= ~0x04; // 关闭 GPIO2 的模拟功能(设为数字模式)
PR2 = 249; // 周期值(4MHz 时钟 → 4kHz PWM)
CCPR1L = 125; // 占空比 50%(高 8 位:125 = 0x7D)
CCP1CON = 0b00111100; // PWM 模式 + 占空比低 2 位 = 00
T2CON = 0b00000100; // Timer2 开启,预分频 1:1
TMR2 = 0; // 清零 Timer2
}
|