testad2.c

来自「ATMega16 ADC description」· C语言 代码 · 共 42 行

C
42
字号
#include <avr/io.h>
#include <avr/interrupt.h>
#include <math.h>

int main (void)
{
   double result;

   DDRB = 0xFF; 
   DDRC = 0xFF; 

   ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Set ADC prescaler to 128 - 125KHz sample rate @ 16MHz

   ADMUX |= (0 << REFS1) | (0 << REFS0); // Set ADC reference to AREF
   

   // Set MUX to use ADC7

   ADMUX |=(1<<MUX2) | (1<<MUX1) | (1<<MUX0);

  

   SFIOR |= (1  << ADTS2) | (1 << ADTS1) | (1 << ADTS0); // Set ADC to Free-Running Mode

   ADCSRA |= (1 << ADEN);  // Enable ADC

   ADCSRA |= (1 << ADIE);  // Enable ADC Interrupt
   sei();   // Enable Global Interrupts

   ADCSRA |= (1 << ADSC);  // Start A2D Conversions

   for(;;)  // Loop Forever
   {
   }
}

ISR(ADC_vect)
{
   PORTB=ADCL;
   PORTC=ADCH;  	
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?