답변 : 개초보)atmega ADC 온도센서
페이지 정보
작성자 master 작성일18-06-05 15:38 조회10,359회 댓글2건본문
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-06-05 오후 3:41:17
// by Ok-Hyun Park
//
#include <avr/io.h>
#define F_CPU 16000000UL
#include <util/delay.h>
#include <avr/interrupt.h>
//
unsigned char fnd[]={0x3F,0x06,0x5B,0x4F,0x66,0x66,0x6D,0x7D,0x27,0x7F,0x67};
volatile int temp=0;
//
ISR(ADC_vect){ long result; result=ADC; temp=result*1000/1024; }
//
ISR(TIMER0_OVF_vect){ TCNT0=128; ADCSRA|=0x40; }
//
int main(void){
DDRD=0xFF; PORTD=0xFF;
DDRC=0x03; PORTC=0x07;
ADMUX=0x40; ADCSRA=0xCF;
TCCR0=0x07; TIMSK=0x01;
SREG=0x80;
while(1){
PORTD=fnd[temp/100]; PORTC=0x01; _delay_ms(1); PORTC=0;
PORTD=fnd[temp/10%10]|0x80; PORTC=0x02; _delay_ms(1); PORTC=0;
PORTD=fnd[temp%10]; PORTC=0x04; _delay_ms(1); PORTC=0;
}
}
댓글 : 2
조회수 : 10,359
도와주세요님의 댓글
도와주세요 작성일AD주기적으로 변환하는것이 어떤것이죠?
master님의 댓글
master
ISR(TIMER0_OVF_vect){ TCNT0=128; ADCSRA|=0x40; }
타이머 인터럽트 안에서
ADCSRA|=0x40; ADC 리 스타트 합니다.