fork download
  1. #include <htc.h>
  2. __CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_OFF);
  3. #define _XTAL_FREQ 4000000
  4.  
  5. void PWM_Init(void) {
  6. TRISC &= ~(1 << 5); // RC5 as output
  7. T2CON = 0b00000100; // Timer2 on, prescaler 1:1
  8. PR2 = 99; // 10 kHz PWM period
  9. CCP1CON = 0b00001100; // PWM mode
  10. CCPR1L = 50; // 50% duty cycle
  11. CCP1CON &= ~(1 << 5); // DC1B1 = 0
  12. CCP1CON &= ~(1 << 4); // DC1B0 = 0
  13. }
  14.  
  15. void main(void) {
  16. OSCCON = 0b01100000; // Set internal oscillator to 4 MHz
  17. PWM_Init();
  18. while(1) {}
  19. }
Success #stdin #stdout 0.03s 25924KB
stdin
Standard input is empty
stdout
#include <htc.h>
__CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_OFF);
#define _XTAL_FREQ 4000000

void PWM_Init(void) {
    TRISC &= ~(1 << 5);         // RC5 as output
    T2CON = 0b00000100;         // Timer2 on, prescaler 1:1
    PR2 = 99;                   // 10 kHz PWM period
    CCP1CON = 0b00001100;       // PWM mode
    CCPR1L = 50;                // 50% duty cycle
    CCP1CON &= ~(1 << 5);       // DC1B1 = 0
    CCP1CON &= ~(1 << 4);       // DC1B0 = 0
}

void main(void) {
    OSCCON = 0b01100000;        // Set internal oscillator to 4 MHz
    PWM_Init();
    while(1) {}
}