Hallo zusammen,
ich hab ein problem mit der Programmierung der Analog Eingange.
Meine Hardware:
- µC: ATMega8-16PI
- Taktfrequenz: 3,6864MHz
_ an Pin PC0 ein 25K Poti (Verbunden mit Masse und Ub+=5V)
- Pin PC6 mit Reset
- Pin PB6 und PB7 mit Quarz
- Pin PD0 mit TxD (Max232)
- Pin PD1 mit RxD
- Compiler AVR-GCC


Das Folgende Programm soll die Analoge Spannung von PC0 Messen (10Bit auflösung)
und die Daten in die Variablen c1 und c2 speichern, welche dann über das UART
gesendet werden.

Code:
#include <avr/io.h>
#include <avr/iom8.h>

#include "TypeDef.h"
#include "UARTInit.h"
#include "UARTTransmit.h"


#define fOSC            3686400      // 3686Khz 
#define UART_BAUD_RATE      9600      // 9600 baud 


int main(void)
{
	int x = 0;
	char c1, c2;

	// USART initiieren
	USART_INIT(fOSC, UART_BAUD_RATE);

	ADCSRA = _BV(ADEN) | _BV(ADPS2);
	
	for (;;) 
	{  
    // Select pin ADC0 using MUX
    ADMUX = 0;
    
    //Start conversion
    ADCSR |= _BV(ADSC);
		ADCSR |= _BV(ADEN); // enable ADC

    
    // wait until converstion completed
    while (ADCSR & _BV(ADSC) ) 
		{
			asm volatile ("nop");
		}
     
		c1 = ADCL;
		c2 = ADCH;
    
		// disable the ADC
    ADCSR &= ~_BV(ADEN);
		
		// Übertrage Low Byte über UART
		USART_Transmit(c1);
		// Übertrage High Byte über UART
		USART_Transmit(c2);		
    
		// Pause
		for(x=0; x<0xFFFF; x++){}
  }
	
	return 0;
}
Jetzt zu meinem Problem die Daten von c1 und c2 bleiben Konstant egal vieviel man am Poti dreht.
Weiss nicht ob es wichtig ist aber c1=03h und c2=FFh
Kann mir jemand ein Tip geben woran das liegt?