Software > Software

error programming adc

(1/1)

ram aravind:
i need to do this:
whenever i press button ,power goes to d0 input pin and i must carry the task given in if loop:

#include <avr/io.h>
#include <avr/interrupt.h>

int main (void)
{
   PORTD &= ~(1 << 0); //set port d0 as input
   DDRE |= (1 << 2); // Set LED1 as output
   DDRG |= (1 << 0); // Set LED2 as output
   ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Set ADC prescaler to 128 - 125KHz sample rate @ 16MHz

   ADMUX |= (1 << REFS0); // Set ADC reference to AVCC
   ADMUX |= (1 << ADLAR); // Left adjust ADC result to allow easy 8 bit reading

   // No MUX values needed to be changed to use ADC0
 
   ADCSRA |= (1 << ADFR);  // Set ADC to Free-Running Mode

  if(PIND==0b00000001)// D0 gets 5v when button is pressed
   {
    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)
{
   if(ADCH < 128)
   {
      PORTE |= (1 << 2); // Turn on LED1
      PORTG &= ~(1 << 0); // Turn off LED2
   }
     
   else
   {
      PORTE &= ~(1 << 2); // Turn off LED1
      PORTG |= (1 << 0); // Turn on LED2
   }
}
but its showing error that ::
error - static declaration of vector_4 follows non static declaration.
plz help me in this..

adanvasco:
Why don't you use a while(1) loop instead of a for loop?

Webbot:
Are you doing this in an 'h' or 'c' file?

What chip are you using?

greywanderer012345:

--- Quote --- if(PIND==0b00000001)// D0 gets 5v when button is pressed
   {
    ADCSRA |= (1 << ADEN);  // Enable ADC

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

   ADCSRA |= (1 << ADSC);  // Start A2D Conversions
  }
--- End quote ---

This needs to be in your interrupt or your infinite loop. As written, you are only polling the button as soon as the program starts.

This wont fix your current problem, but I'd hate for you to bump into another headache as soon as you solve this one.

Navigation

[0] Message Index

Go to full version