18F452 에서 XC8 컴파일러를 이용하여 CCP1에서 38kHz의 듀티비 50%의 신호를 출력하는 소스입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | /* * File: main.c * Author: JangSeongJin * * Created on 2014년 1월 2일 (목), 오후 5:49 */ #include <xc.h> //XC 기본으로 추가 #include <pic18F452.h> #pragma config OSCS = OFF #pragma config OSC = HS #pragma config WDT = OFF #pragma config LVP = ON typedef unsigned char BYTE; typedef unsigned int WORD; void Initial_PWM(void) { CCP1CONbits.CCP1M = 0b1100; //CCPx Mode Select bits CCPR1L = 0x42; //20e6/CCPR1L:CCP1CONbits.DC1B = 75.76kHz 50% Duty Cycle CCP1CONbits.DC1B = 0b00; } void Initial_TIMER(void) { T2CONbits.TMR2ON = 1; //Timer2 On bit T2CONbits.T2CKPS = 0b00; //Timer2 Clock Prescale Select bits PR2 = 131; //20e6/4/1/(PR2+1) = 37.88kHz } void Initial_PORT(void) { TRISD = 0x00; //LED OUTPUT으로 설정 PORTD = 0x00; //LED 전부 0 출력 TRISCbits.RC2 = 0; //PWM OUTPUT으로 설정 } void main(void) { Initial_PORT(); Initial_PWM(); Initial_TIMER(); while (1) { } } |
'PIC > XC8' 카테고리의 다른 글
[XC8]18F452에서 IR 리모콘 구현 (0) | 2014.01.03 |
---|---|
[XC8]18F452 UART 시리얼 통신 (0) | 2014.01.02 |
[XC8]18F452 PORT Control (0) | 2014.01.02 |