Sari la conținut
ELFORUM - Forumul electronistilor

Atmega 8 toate intrarile ADC


criss

Postări Recomandate

Buna ziua,

 

Doresc sa utilizez toate intrarile ADC (Adc0..ADC5) pt a masura tensiunea de pe intrerupatoare(intrerupatoarelel sunt mecanice si prin rezistenta vreau sa aflu starea lor, iar in functie de aceea actionez o iesire pe uC).

Pana acuma nu am lucrat cu mai mult de o intrare ADC si nu stiu cum sa o rezolv.

uCul este un Atmega 8 frecventa de 4Mhz(intern)

 

#include <avr/io.h>#include <avr/interrupt.h> #include <inttypes.h>char s[7];#define OutON  PORTB |= (1<<2)#define  OutOFF PORTB &= ~(1<<2) void adc_init(void){ADCSRA |= (1 << ADPS0) | (1 << ADPS2); // Set ADC prescalar to 32 - 125KHz sample rate @ 4MHz ADMUX |= (1 << REFS0);    // use AVcc as the reference ADMUX |= (1 << ADLAR); // Left adjust ADC result to allow easy 8 bit reading  ADMUX |= (1 << MUX0);// ADC1 // ADMUX |= (1 << MUX1);// ADC2   ADCSRA |= (1 << ADFR);  // Set ADC to Free-Running Mode   ADCSRA |= (1 << ADEN);  // Enable ADC   ADCSRA |= (1 << ADSC);  // Start A2D Conversions}int main(void){DDRB |= (1 << 2); // Set led as outputadc_init();  while (1) /* loop forever */   {cli();s=ADCH;sei();if (s <= 10){OutON;} else if (s >= 10){OutOFF;}}}
Link spre comentariu
  • Răspunsuri 3
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • criss

    1

  • ratza

    1

  • dexter_g800

    1

Top autori în acest subiect

salut. ma poti ajuta si pe mine cu programarea unui atmega 8? l am cumparat nopu si vreau sa i fac bootloader cu arduino . si ce peogramator folosesc si ce soft?

Link spre comentariu

Salut. Găseşti informaţii în datasheet. Din cîte mai ţin minte nu poate face sampling simultan pe toate intrările.

Link spre comentariu
Vizitator andrianu

Nu inteleg la ce-ti trebuie adc, ca sa controlezi daca butonul e inchis sau deschis? Oare asta nu corespunde inchis, "0" logic, adica caderea de tensiune pe el e nula, si deschis, "1" logic, unde caderea de tensiune e maxima. Poti folosi simplu o intrare digitala, pentru a controla asta.Dar daca totusi, vrei tare, //include stuffvoid InitADC(){ADMUX|=((1<

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