-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: AVR-GCC Probleme mit Compiler und PonyProg

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    02.03.2006
    Beiträge
    67

    AVR-GCC Probleme mit Compiler und PonyProg

    Anzeige

    Hallo zusammen,

    Nachdem ich nun erfolgreich Bascom zum laufen gebracht und dort ein wenig rum experimentiert habe, möchte ich nun auf die C-Programmierung übergehen.
    Bin dort zwar auch kein großer Experte, aber auch im Studium muss ich teilweise mit C programmieren... von daher passt das ganz gut.

    Ich habe mir WinAVR installiert und alles wie in folgendem Tutorial eingerichtet: http://www.dirkbaumann.de/html/software.html

    Das Beispiel-Programm habe ich auch runtergeladen, aber ich bekomme es einfach nicht kompiliert.
    8bitzähler.c: (.text+0x34): undefined reference to 'outp'
    8bitzähler.c: (.text+0x42): undefined reference to 'outp'
    8bitzähler.c: (.text+0x50): undefined reference to 'outp'
    8bitzähler.c: (.text+0x5e): undefined reference to 'outp'
    8bitzähler.c: (.text+0x72): undefined reference to 'outp'
    >Process Exit Code: 1
    Kann es eventuell sein, dass die io.h nicht eingebunden wird?
    Als Controller habe ich meinen AT90S2313 und meinen ATMega8 eingerichtet. Mit keinem funktioniert's.

    Ausserdem habe ich noch eine Frage zu dem PonyProg:
    Welche Einstellungen muss ich dort vornehmen? Meinen Controller erkennt er nämlich nicht.
    Als Schnittstelle habe ich mir folgendes nachgebaut:
    http://www.roboternetz.de/wissen/ind...ogrammierkabel


    Schonmal vielen Dank für Euer Bemühen

    Gruß
    Julian

    EDIT:
    Frage zu PonyProg hat sich erledigt

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    outp() gibt es wie sbi()/cbi() nicht mehr. Benutz einfach
    PORTB = 0x00;
    x = PINB;
    usw.
    MfG Kjion

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    02.03.2006
    Beiträge
    67
    Ahso, ok. Das erklärt dann einiges

    Mit Ein- und Ausgabe am Controller habe ich mich gerade beschäftigt. Das dürfte kein Problem sein

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    02.03.2006
    Beiträge
    67
    ähm, ja. Nachdem die erste Hürde genommen ist, kann ich die Ports nach belieben ansteuern.
    Jetzt habe ich versucht auf mein LCD zu schreiben, aber das funktioniert bisher noch nicht.

    angeschlossen ist es wie hier:
    http://www.roboternetz.de/wissen/ind...om_und_LCD%27s

    techn. Infos:
    ATMega8 16PU @ 4Mhz
    2*16 LCD HD44780

    Ich habe hier im Forum ein bisschen rumgesucht und bin auf folgende Seite gestoßen: http://homepage.hispeed.ch/peterfleu...-lcd44780.html

    Die Library habe ich mir bereits runtergeladen und auch schon angepasst.
    Mein Programm:
    Code:
    #include <stdlib.h>
    #include <avr/io.h>
    #include <avr/pgmspace.h>
    #include <lcd.h>
    #include <lcd.c>
    
    void main (void) {
      lcd_clrscr();
      lcd_puts("Hallo\n");
    }
    Kompilieren usw. und auch das Übertragen ist kein Problem.
    Er zeigt halt nix an :/

    Gibt es vielleicht ein Tutorial oder soetwas zu diesem Thema?

    Wie würde es prinzipiell funktionieren, wenn ich einen Zustand auf meinem PC an dem Display anzeigen möchte? Also z.B. CPU-Auslastung, Song in Winamp o.ä.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    05.05.2005
    Alter
    48
    Beiträge
    58
    Hi!

    outp() gibt es wie sbi()/cbi() nicht mehr. Benutz einfach
    PORTB = 0x00;
    x = PINB;
    usw.
    Ich fange gerade erst an mit der C-Programmierung und den µControllern aber ich glaube da muss ich widersprechen

    Code:
    #include <avr/io.h>	
    
    typedef int  BYTE;
    
    BYTE RECHTS;
    BYTE LINKS;
    
    int main (void)
    
    {
        outp (0xff,DDRC);	
        outp (0x00,DDRD);	
        outp (0x07,PORTD);
    	
    	RECHTS = 0;
    	LINKS = 0;
    
       
        for (;;) {
         
    	 if (bit_is_clear (PIND, PIND0) & LINKS == 0){
               RECHTS = 1;}		   
    	 if (bit_is_clear (PIND, PIND1) & RECHTS == 0) {
    		 LINKS = 1;}	
    	 if bit_is_clear (PIND, PIND2)  {
         LINKS = 0;
    	 RECHTS = 0;}
    	   
      	   
    		 if (RECHTS == 1 ) {
    		 sbi (PORTC, 1);}
    		 if (RECHTS == 0 ) {
    		 cbi (PORTC, 1);}
    		 if (LINKS == 1 ) {
    		 sbi (PORTC, 0);}
    		 if (LINKS == 0 ) {
    		 cbi (PORTC, 0);}
    	  
    	}
    Das ist ein kleines Programm mit dem ich noch vor zwei Tagen gespielt habe... funktioniert wunderbar. Mit PonyProg und einem Mega8.

    Macht auch wenig Sinn wenn man eine Bitausgabe hat immer den ganzen Port beschreiben zu müssen.

    Gruß Olli
    .... und ich lächelte und es kam Schlimmer!


    -= Rechtschreibfehler werden mit 0,50 Cent/Stk. berechnet. Bitte nach günstigen Großabnehmertarifen fragen! =-

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    26
    Beiträge
    995
    Hi,
    das geht sicher nur, da du eine alte AVR-GCC version installiert hast. das neue GCC kann das normalerweiße nicht mehr.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    05.05.2005
    Alter
    48
    Beiträge
    58
    Und wie ist da die Bitmanipulation geregelt? Ganz ohne kann doch nicht sein oder?

    Gruß Olli
    .... und ich lächelte und es kam Schlimmer!


    -= Rechtschreibfehler werden mit 0,50 Cent/Stk. berechnet. Bitte nach günstigen Großabnehmertarifen fragen! =-

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Man schreibt Bitmanipulationen in Standard-C

    Bit setzen : PORTB |= (1<<2); // setzt PortB.2
    Bit Löschen: PORTB &= ~(1<<4); // löscht PortB.4

    Wenn einem das zu viel getippsel ist, kann man sich ja Makros nach eigenem Gusto bauen.
    Disclaimer: none. Sue me.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    02.03.2006
    Beiträge
    67
    Das ist zwar alles sehr informativ, aber was ist mit meinen Fragen? =)

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Zitat Zitat von Jul-ian
    Kann es eventuell sein, dass die io.h nicht eingebunden wird?
    Nö, zumindest nich nach der Fehlermeldung. Wenn er die avr/io.h nicht fände, gäbe es eine entsprechende Fehlermeldung. Oder welche Frage ist noch offen?
    Disclaimer: none. Sue me.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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