- #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
- }
|