Ich habe früher ziemlich viel mit 8051-Controllern programmiert(damals mit KEIL). Jedoch wollte ich jetzt mal was neues ausprobieren. Also habe ich mir einen ATMega163 gekauft und ein kleines Board dazu gebaut. Die Programmieruung des Controllers funktioniert freu! Zum testen des Boards habe ich nun ein kleines Assembler-Programm geschrieben: .include "4433def.inc" ldi r16, 0xFF out DDRB, r16 out PORTB, r16 ende: rjmp ende Das Progrämmchen funktioniert auch einwandfrei --> Port B geht auf high. Da mir die Programmierung mit Assembler jedoch viel zu umständlich ist habe ich gcc heruntergeladen, installiert und folgendes Programm ausprobiert: #include <io.h> int main (void){ outp(0xff,DDRB); led = 0xFF; for (;;) { outp(0xff,PORTB); } } Aus einem mir nicht bekanntem Grund funktioniert das obige Programm nicht!?! --> alle PortPins sind low. Kann mir bitte jemand weiterhelfen??? Vielen Dank im Voraus!!! Florian
Also das C-Programm dort oben würde kein Compiler übersetzen. Daher erübrigt sich auch der Rest der Frage. Gruss, Peter
Lieber Peter! Danke für deine große Hilfe!!! Aber der Compiler übersetzt obiges Programm und und liefert keine Fehlermeldung! Leider funktionieren auch sämtliche gcc-Testprogramme (von AVRFreak) nicht :-( schöne Grüße Florian
Hallo Florian, 'hab Deinen Code mal durchlaufen lassen - und er gibt natürlich einen Fehler aus. -> led ist nicht definiert. Auf dem STK500 gibt Dein Programm aber nur FF auf die LEDs und damit sind die dunkel. Reiner
> Danke für deine große Hilfe!!! > Aber der Compiler übersetzt obiges Programm und und liefert keine Fehlermeldung! Gcc soll ein Programm übersetzen, bei dem Variablendeklarationen fehlen? Tut mir leid, das kann ich mir beim besten Willen nicht vorstellen! > Leider funktionieren auch sämtliche gcc-Testprogramme (von AVRFreak) nicht :-( Und du bist sicher, dass du auch avrgcc und nicht irgend einen anderen Compiler installiert hast? Die Beispiele liefen nämlich bei mir einwandfrei. Ich würde dir ja gerne helfen, aber ich weiss nicht, wie ich das unter diesen Gegebenheiten tun kann. Mal ein kleiner Hinweis. Ich weiss nicht, ob es etwas nützt aber nimm mal für die Variable "led" einen anderen Namen (z.B. stk_led oder sowas) und diese Variable definierst du als unsigned char. Wenn es dann immer noch nicht funktionieren sollte, dann liegt das Problem sehrwahrscheinlich 70cm vor deinem Bildschirm. Aber melde dich ruhig nochmal, wir bekommen das schon irgendwie hin ;-) Und um die LEDs des STK einzuschalten, musst du die Ausgänge auf low setzen. Nur mal nebenbei bemerkt. good luck! Gruss, Peter
hi, ja das mit den anderen Compilern könnte Dein Problem sein. Ich hatte selbst das Problem mit zwei anderen Makefiles von Borland und uniware. Mit Angabe der direkten Pfaden in der gcc_cmp.bat lief's dann. Reiner P.S. Aber eigentlich müste dann der Verkehrte Aufruf einen Fehler generieren!?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.