- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Anfänger: Problem mit Beispielprogramm

  1. #1
    jojo.glaser
    Gast

    Anfänger: Problem mit Beispielprogramm

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo ich wollte mich mal mit AD Wandler beschäftigen und habe mir dazu ein Beispielprogramm aus dem Roboternetz Wissen gezogen. Nun möchte ich es auf meinem ARV Spielen. Leider habe ich nur einen ATMEGA 8 und das Programm ist für den ATMEGA 16 Programmiert.
    Wie kann man das Programm abändern, so dass es auch auf meinem ATMEGA 8 läuft??

    Vielen DANK!!!!!

    Code:
    #include <avr/io.h>
    #include <inttypes.h>
    
    uint16_t readADC(uint8_t channel) {
    	uint8_t i;
    	uint16_t result = 0;
    	
    	// Den ADC aktivieren und Teilungsfaktor auf 64 stellen
    	ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1);
    
    	// Kanal des Multiplexers waehlen
    	ADMUX = channel;
    	// Interne Referenzspannung verwenden (also 2,56 V)
    	ADMUX |= (1<<REFS1) | (1<<REFS0);
    	
    	// Den ADC initialisieren und einen sog. Dummyreadout machen
    	ADCSRA |= (1<<ADSC);
    	while(ADCSRA & (1<<ADSC));
    	
    	// Jetzt 3x die analoge Spannung and Kanal channel auslesen
    	// und dann Durchschnittswert ausrechnen.
    	for(i=0; i<3; i++) {
    		// Eine Wandlung
    		ADCSRA |= (1<<ADSC);
    		// Auf Ergebnis warten...
    		while(ADCSRA & (1<<ADSC));
    		
    		result += ADCW;
    	}
    	
    	// ADC wieder deaktivieren
    	ADCSRA &= ~(1<<ADEN);
    	
    	result /= 3;
    	
    	return result;
    }
    
    int main(void) {
    	uint16_t result = readADC(0);	//Auslesen der analogen Spannungen an Pin 0,
    									// also ADC0. In result steht das Ergebnis. 
    
    	result = result + 1;
    
    
    
    
    
    	return 0;
    }
    + Code-Tag (PicNick)

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Am Programm brauchst du IMHO nix zu ändern, du musst jedoch die Übersetzungs-Optionen auf deinen Controller (ATmega anpassen, konkret die avr-gcc-Option -mmcu=atmega8 setzen
    Disclaimer: none. Sue me.

  3. #3
    jojo.glaser
    Gast
    Was ist IMHO?

    Ich verwende AVR-Studio 4 und habe die übersetztungsoption auf den ATMEGA 8 151 umgestellt, aber dann bringt er mir beim kompilern (heißt das glaube ich) folgende Fehlermeldungen:

    Build started 11.7.2006 at 18:30:37
    avr-gcc.exe -mmcu=atmega8515 -Wall -gdwarf-2 -O0 -fsigned-char -MD -MP -MT AD_Wandler.o -MF dep/AD_Wandler.o.d -c ../AD_Wandler.c
    ../AD_Wandler.c: In function `readADC':
    ../AD_Wandler.c:9: error: `ADCSRA' undeclared (first use in this function)
    ../AD_Wandler.c:9: error: (Each undeclared identifier is reported only once
    ../AD_Wandler.c:9: error: for each function it appears in.)
    ../AD_Wandler.c:9: error: `ADEN' undeclared (first use in this function)
    ../AD_Wandler.c:9: error: `ADPS2' undeclared (first use in this function)
    ../AD_Wandler.c:9: error: `ADPS1' undeclared (first use in this function)
    ../AD_Wandler.c:12: error: `ADMUX' undeclared (first use in this function)
    ../AD_Wandler.c:14: error: `REFS1' undeclared (first use in this function)
    ../AD_Wandler.c:14: error: `REFS0' undeclared (first use in this function)
    ../AD_Wandler.c:17: error: `ADSC' undeclared (first use in this function)
    ../AD_Wandler.c:28: error: `ADCW' undeclared (first use in this function)
    make: *** [AD_Wandler.o] Error 1
    Build failed with 11 errors and 0 warnings...

    Wenn ich das auf ATMEGA 16 stell, dann gehts aber leider hab ich kein ATMEGA 16.

    Danke

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Kollege :
    1 IMHO heißt, "Meiner Meinung nach"
    2 ATmega 8 ist NICHT GLEICH ATmega8151
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    jojo.glaser
    Gast
    Sorry ich bin noch anfänger.
    Ich hab einen AT MEGA 8 151 und das hab ich eingestellt, und dann bringt der mir die oben genannten Fehlermeldungen beim kompillern.
    Kannst du mir da weiterhelfen?
    Bitte

  6. #6
    jojo.glaser
    Gast
    Ich meine AT MEGA 8 515

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Der Atmeg8515 hat zwar einen Analog-Comperator, aber keinen AD-Wandler, d.h. das Beispiel wird nicht gehen.

    Der Compiler meckert, weil es da eben diese Schalter nicht gibt

    Ich hoff', du hast da nicht jetzt Geld in den Sand gesetzt ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    jojo.glaser
    Gast
    Danke für die Antwort!

    Ne ich hab kein Geld in den Sand gesteckt!

    Ich wollte mich nur mal allgemein mit AVRs beschäftigen. Ich bin erst 16 und mich begeistert Robotik! Ich hab nen CC RP5 Roboter.

    ich hab so gar schon Spannungen mit den AVRs getaktet und ein Lauflicht programmiert, da wo ein Punkt hin und her läuft und einen Schatten, der immer dünkler wird hinterlässt.

    Ich hab noch andere AVRs aber halt net den MEGA 16 ich werde es jetzt mal mit ein par anderen ausprobieren.

    Weist du ne internetseite, wo es alle ARVs im überblick giebt?
    Also ne Liste und Pinbelegungspläne?

    Danke

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Na, dann bin ich froh !

    Schau, wir haben da auch eine Wiki , da werden sie geholfen !

    https://www.roboternetz.de/wissen/index.php/AVR
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    37
    Beiträge
    674
    einen guten Überblick gibts auch auf folgender Seite von atmel: http://www.atmel.com/dyn/products/pa...&Direction=ASC

    Der Atmeg8515 hat zwar einen Analog-Comperator
    nach gerade genannter Tabelle hat der ATMega8515 nicht mal einen Analog-Comparator

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test