/*****************************************************
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);
}
}
}
에이티메가 128에 관한 내용이군염..나중에 좀 자세히 알려줘염
ReplyDelete@맨날맑음 - 2009/04/23 10:03
ReplyDelete맨날맑음님도 쉽게 하실거에요^^