Sari la conținut
ELFORUM - Forumul electronistilor

ADC


Vizitator DanD

Postări Recomandate

Am nevoie de ajutor cu urmatorul cod. Vreau sa se schimbe pe display-ul 7 segmente afisajul(ales aleator) in functie de voltajul aplicat pe PA1. Problema e ca se schimba doar prima oara, apoi ramane "intepenit"

Multumesc!

#define F_CPU	1000000UL#include <avr/io.h>#include <avr/interrupt.h>int main (void){		DDRB=0xFF;	//output		DDRC=0xFF;			//configurare ADC		ADCSRA |= 1 << ADEN;	//turn on ADC		ADCSRA |= 1 << ADIE;	//enable interupts		ADMUX |= 1 << ADLAR; //8 bit ADCH pag217 		ADMUX |= 1 << MUX1; 	//citeste de pe PA1		ADMUX |= 1 << REFS0;	//voltajul de referinta 5v 		ADCSRA |= 1 << ADPS2;  //prescaler ADC (50-200kHz)	1M/50k=20 ; 1M/200k = 5  am luat division factor=16		sei();		ADCSRA |= 1 << ADSC; //(AD start conversion)			while (1);}ISR(ADC_vect){	       //0v= 0, 5v=255		if (ADCH > 0x7D)	//155			{ PORTB = 0xEE;	}		else			{ PORTB = 0b00110000;}		ADCSRA |= 1 <<	ADSC; //start next converion}
Link spre comentariu
  • Răspunsuri 2
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • XAN77

    1

  • criss

    1

Top autori în acest subiect

poate in isr trebuie sa stergi vreun flag si nu o faciL.E. citez dintr-un datasheet :Beware that if doing a Read-Modify-Write on ADCSRA, a pending interrupt can be dis-abled. This also applies if the SBI and CBI instructions are used

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări