Operácie

AVR A/D example.c: Rozdiel medzi revíziami

Z SensorWiki

Riadok 1: Riadok 1:
 +
Jednoduchý prevod na vyžiadanie:
 +
 
<source lang="c">
 
<source lang="c">
 
#include <avr/io.h>
 
#include <avr/io.h>
  
void adc_init(void);                                 // A/D converter initialization
+
void adc_init(void);                                   // A/D converter initialization
  
 
int main(void)
 
int main(void)
Riadok 8: Riadok 10:
 
   unsigned int buffer;
 
   unsigned int buffer;
  
   adc_init();                                         // Init A/D converter
+
   adc_init();                                         // Init A/D converter
  
 
   while (1)
 
   while (1)
 
   {
 
   {
     ADCSRA |= (1<<ADSC);                             // Start A/D conversion
+
     ADCSRA |= (1<<ADSC);                               // Start A/D conversion
     while ( !(ADCSRA & (1<<ADIF)) /* Do nothing */ ; // Wait until AD not finished
+
     while ( !(ADCSRA & (1<<ADIF)));                   // Wait until AD not finished
     buffer = (ADCH<<8) | ADCL;                        // Then, read result
+
     buffer = ADC;                                      // Then, read result (ADCH<<8) | ADCL)
 
   }
 
   }
  
Riadok 20: Riadok 22:
  
  
void adc_init(void)                                 // A/D converter initialization
+
void adc_init(void)                                   // A/D converter initialization
 
{
 
{
   ADMUX = 0;                                         // Ref: external, Channel 0 (ADC0)
+
   ADMUX = 0b01000100;                                 // Ref: external, Channel 4 (ADC4) - NTC
   ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1);     // A/D ON, prescaler = 64,
+
   ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); // =0b10000111, A/D ON, prescaler = 128
  SFIOR = 0;                                     // Specialfunctions OFF
 
 
}
 
}
 
</source>
 
</source>

Verzia zo dňa a času 22:07, 2. december 2008

Jednoduchý prevod na vyžiadanie:

#include <avr/io.h>

void adc_init(void);                                   // A/D converter initialization

int main(void)
{
  unsigned int buffer;

  adc_init();                                          // Init A/D converter

  while (1)
  {
    ADCSRA |= (1<<ADSC);                               // Start A/D conversion
    while ( !(ADCSRA & (1<<ADIF)));                    // Wait until AD not finished
    buffer = ADC;                                      // Then, read result (ADCH<<8) | ADCL)
  }

}


void adc_init(void)                                    // A/D converter initialization
{
  ADMUX = 0b01000100;                                  // Ref: external, Channel 4 (ADC4) - NTC
  ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); // =0b10000111, A/D ON, prescaler = 128 
}



Návrat na cvičenie 11...