Forum: Compiler & IDEs brauche Hilfe mit gcc


von Florian Beiser (Gast)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

Also das C-Programm dort oben würde kein Compiler übersetzen. Daher 
erübrigt sich auch der Rest der Frage.

Gruss,

Peter

von florian (Gast)


Lesenswert?

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

von Reiner (Gast)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

> 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

von Reiner (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.