- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 5 von 5

Thema: ADC mit Atmel16

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    04.03.2006
    Beiträge
    5

    ADC mit Atmel16

    Hallo,

    ich benutze das Board von Pollin und versuche dort einen Atmel16 als ADC zu verwenden.

    Hier ist mein Code:

    Code:
     #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <inttypes.h>
    #include <stdlib.h>
    
    #define BAUD 9600
    #define F_CPU 8000000UL     
    
     #define UART_UBRR_CALC(BAUD_,FREQ_) ((FREQ_)/((BAUD_)*16L)-1)
     #define UART_BAUD_RATE 9600
    
    int Measure (void) 
    {
      int measuredVal = 0;
      
      ADCSRA = _BV(ADEN) | _BV(ADPS2);
      
        // Select pin ADC0 using MUX
       ADMUX   =   0;   
        
        //Start conversion
        ADCSRA |= _BV(ADSC);
        
        // wait until converstion completed
        while (ADCSRA & _BV(ADSC) ) {}
        
        // get converted value
        measuredVal  = ADCW;  
        
    
    return measuredVal;
    
    
    }
    
    int uart_putch1(unsigned char c)
    {
        while (!(UCSRA & (1<<UDRE))); 
        UDR = c;                     
        return 0;
    }
    
    void uart_putst1 (char *s)
    {
        while (*s)
        {   
            uart_putch1(*s);
            s++;
        }
    }
    
    int main(void)
    {
    	UCSRB |= (1<<TXEN);			// UART TX einschalten
    	UCSRC |= (1<<URSEL)|(3<<UCSZ0);	// Asynchron 8N1
    	
    	UBRRH = (uint8_t)(UART_UBRR_CALC(UART_BAUD_RATE,F_CPU)>>8);
    	UBRRL = (uint8_t)UART_UBRR_CALC(UART_BAUD_RATE,F_CPU);
      
    	for(;;)
    	{
    		int valMeasured = Measure();
    		char message[50];
    		
    		int i = valMeasured;
    		sprintf (message, "value: %i", i);
    		uart_putst1(message);
    	}
    
    	
    }
    Ich bekomme immer 279,280,281 als wert ausgegeben, egal wie ich mein Poti einstelle. Der Schaltplan liegt bei. Ich habe dort PA5 an den Mittelkontakt des Poti gelegt und kann an Pin38 auch 1-4v messen.
    Habt Ihr eine Idee?

    Danke
    Mathias
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken adc_1.jpg  

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen