/*****************************************************

Chip type           : ATmega128
Program type        : Application
Clock frequency     : 16.000000 MHz
Memory model        : Small
External RAM size   : 0
Data Stack size     : 1024
*****************************************************/

#include <mega128.h>

void delay_us(unsigned int us)

{
    unsigned int i,j;
    for(i=0;i<us;i++)
    {
        for(j=0;j<2650;j++)
        {
       
        }
    }
}
void delay_ms(unsigned int ms)

{

             unsigned int i;

 

             for(i = 0; i < ms; i++)

                           delay_us(1000);

}

 

 

void pwm0_out(unsigned char duty)
{
 OCR0=duty;
}


void main( void )
{
    unsigned char number=0;
 unsigned int ss=256;
    
    DDRB=0xFF;     // 포트 B 출력
    PORTB=0xFF;
  
    DDRB = 0x10; // PORTB.4를 OC0로 설정한다.

    //init_LCD();    //LCD 초기화 함수 실행
   
    TCCR0=0x6A;    // (0110 1010) Fast PWM, Non-inverting, 8 prescaler
                   // f=16MHz/(N*256), N=8 prescaler factor 
                   // f= 7.8125KHz, T=128usec
       // PWM의 주기는 128usec가 된다.
   
    TCNT0=0x00;    // T/C value=0
 OCR0=0x00;   
   
    delay_us(10);  // 10msec 대기
    //instruction_out(0x01);  //clear LCD
   
    //string_out(0x80,"PWM0/OC0");
 //instruction_out(0xC5);   // LCD 위치 지정
 //char_out('H');
  
 
 while(1)
    {
 if(number<ss)
  {
  number++;
  pwm0_out(number);
  delay_us(10000);
  }

  }
 }

 

 

 


 

Posted by Dongkyu
,