728x90

PC PWM을 이용한 LED 밝기 조절




WGMn2~0 비트에 의한 동작모드

모드1 : Phase Correct PWM / TOP(0xFF)


/************************************************
* PC PWM을 이용한 LED 밝기 조절 프로그램
* 2016년 5월 26일
************************************************/

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  unsigned char i, duty;

  //PWM 출력을 뽑을 GPIO설정(OC0A(PB7))
  DDRB=0xFF; // PB7 PWM 출력, PB 0~6 사용안함
  //Time / Counter0의 설정 (PC PWM 모드)
  TCCR0A = 0b10000001; // 0x81, 상향카운터 compare match 0, 하향 1로 set
  TCCR0B = 0x01; // 1분주

  while(1)
  {
    for(i=0, duty=0; i<6; i++, duty +=51)
    {
      OCR0A = duty;
      _delay_ms(500);
    }

  }
  return 0;
}




/************************************************
* PC PWM을 이용한 LED 밝기 조절 프로그램
* 2016년 5월 26일
************************************************/

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  unsigned char i, duty;

  //PWM 출력을 뽑을 GPIO설정(OC0A(PB7))
  DDRB=0xFF; // PB7 PWM 출력, PB 0~6 사용안함
  //Time / Counter0의 설정 (PC PWM 모드)
  TCCR0A = 0b10000001; // 0x81, 상향카운터 compare match 0, 하향 1로 set
  TCCR0B = 0x01; // 1분주

  while(1)
  {
    for(i=0, duty=0; i<6; i++, duty +=51)
    {
      OCR0A = duty;
      _delay_ms(500);
    }

  }
  return 0;
}




switch문으로 변경

/************************************************
* PC PWM을 사용한 DC 모터 속도 제어용 프로그램

* 속도 조절 단계 15단계, 출력 0C0A 또는 OC0B
* 입력 스위치 입력 2개(UP, Down)
* 최대 속도 도달시 UP키 동작 안함, 회전하지 않을 때 DN키 동작 안함.
************************************************/
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  unsigned char duty = 0;
  
  
  DDRB  =  0xFF;            

  DDRA  =  0xFC;    //0,1번 포트를 스위치 입력으로                      
  
  TCCR0A  =  0x81;    //OC0A를 출력으로 사용                
  TCCR0B  =  0x01;          

   while(1)
  {
    key = (PINA & 0x03)
    switch(key)
    {
      case 1:
        while(PINA & 0x01 );
        if(i < 15)
          i++;
        break;
      case 2:
        while(PINA & 0x02);
        if(i > 0)
          i--;
        break;
    }
    OCR0A = 17*i;
  }
  return 0;
}


'Study > Embedded' 카테고리의 다른 글

7/8 LCD제어2  (0) 2016.07.08
7/5 LCD 제어  (0) 2016.07.05
2016-05-19 업무일지-Atmega2560_LCD출력  (0) 2016.05.19
2016-05-17 업무일지-7 segment  (0) 2016.05.17
7 Segment 출력(proteus시뮬)  (0) 2016.05.16

+ Recent posts