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.
Jetzt zu meinem Problem die Daten von c1 und c2 bleiben Konstant egal vieviel man am Poti dreht.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; }
Weiss nicht ob es wichtig ist aber c1=03h und c2=FFh
Kann mir jemand ein Tip geben woran das liegt?







Zitieren

Lesezeichen