본문 바로가기

[Microchip]/PIC16F

[PIC16F150x EVM] PIC16F1509 ADC, PWM 테스트

[PIC16F150x EVM] PIC16F1509 ADC, PWM 테스트

 

 

 

 

PIC16F1509는 4개의 10비트 PWM출력이 있다. 20Mhz에서 최대 208khz, 6.5bit 해상도로 출력 가능하다.

 

 

 

 

PIC16F1509 PWM초기화 코드

void Pwm1Init(void)
{
 Cbi(TRISC, BIT5);Cbi(ANSELC, BIT5);

 PWM1CON = 0x00; 
 T2CON = 0b00000111;
 
 PR2 = 255;

 PWM1DCH = PWM1DCL = 0x00; 
 
 T2CON = 0b00000100;  
 
 PWM1DCH = 0b00100000;


 PWM1EN = 1;

 PWM1OE = 1;

 PWM1OUT = 0

 PWM1POL = 0;

 }



void PWM1_SET(unsigned int Duty)

{

PWM1DCH = (Duty >> 2); PWM1DCL = (Duty << 6);

}

 

 

 

PIC16F157x PWM출력 핀맵

 

 

PIC16F1509 ADC, PWM테스트 예제 소스코드

ADC 4에 연결되어 있는 VR값에 따라 PWM을 가변하여 출력 하는 예제 코드 이다.

 

void main(void)
{
 unsigned int ad_value;
 unsigned int pwm = 0;

 SystemInit();
    Led1Init();
 Led1On();
 
 U0_Init(BAUD_57600);
 DebugPrint("PIC16F1509 EVM Test\r\n");
 
 AdcInit();
 Pwm1Init();
 
    while(1)
    {
 
  ad_value = AdcRead(4);
 
  pwm = ad_value;
  PWM1_SET(pwm);


  DebugPrint("PWM(ADC)=%d\r\n", pwm);;
  Delay(50);
    }
}

 

 

 

PIC16F1508 ADC, PWM테스트 동영상

ADC에 연결되 가변저항의 전압값에 따라 PWM을 출력하여 램프 밝기를 조절하는 테스트 동영상

 

 

 

반응형