BASIC4MCU | 질문게시판 | atmega128 가변저항 LED
페이지 정보
작성자 비러 작성일2019-12-10 13:15 조회5,349회 댓글0건본문
atmega128의 가변저항으로 LED8개를 사용하려고 하는 중입니다.
KT-M128 모델 사용하고 있구요
AVR Studio로 코딩하고 있고
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define ex_led (*(volatile unsigned char*)0x8008)
char result;void led_adc(void){//가변저항 리드 코드
int ADval;
float Vin,Vref = 8;
char val[20];DDRF = 0x00;
ADMUX = 0x00;
ADCSRA = 0x87;
_delay_ms(5);while(1){
ADCSRA |= 0x40;while((ADCSRA & 0x10)==0);
ADval = (int)ADCL + ((int)ADCH<<8);
Vin = (float)ADval*Vref/1023.0;
result = pon(2,(int)Vin);
ex_led = result-1;
OCR0 = result-1; //ocr0
}
}void fast_pwm(void){
//타이머/카운터 fast pwm 모드TCCR0 |= (1<<CS02);//프리스케일러 64 지정
TCCR0 |= (1<<WGM01);//fast pwm 지정
TCCR0 |= (1<<WGM00);//이하동문
TCCR0 |= (1<<COM01);//non-inverting mode
TCNT0 = 0;//카운터 초기화
}
int pon(int a, int b) {
int result = 1, i;
for(i = 0; i < b; i++) {
result *= a;
}
return result;
}
int main(void){
MCUCR = 0x80;
DDRB = 0XFF;
DDRA = 0xff;
PORTA = 0x00;
fast_pwm();
led_adc();
}
현재는 fast PWM을 이용해서 LED가 한 개가 가변저항 돌릴때 켜졌다 꺼졌다만 반복합니다
가변저항 값이 커지면 LED 개수가 늘어나고 가변저항 값이 작아지면 LED 개수가 작아지도록 만들고 싶은데 어떻게 해야할까요?
댓글 0
조회수 5,349등록된 댓글이 없습니다.