mikrocontroller.net

Forum: Compiler & IDEs IO-Port setzten geht nicht


Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ist mir fast peinlich, aber ich stehe ganz am Anfang und komme nicht 
weiter. Habe schon oft erfolgreich AVR´s porgrammiert, aber bei meinem 
jetztigen Projekt muß ich auf einem Auge ganz blind sein. Ich arbeite 
mit neusten Version von AVR Studio (+GCC) und einem STK500. Als MC hält 
ein ATmega88 her. Schon folgender Codeschnipsel tut nicht, was er soll:

#include <avr/io.h>

int main(void)
  {
  DDRB = 0xff;
  PORTB = 0x0f;

  while (1)
    {}

  return 0;
  }

PORTB-Steckleiste auf dem STK500 ist mit der für die Leds verbunden. 
Nach dem Programmieren sollte der MC ja gleich loslegen und einige Leds 
sollten läuchten... Was sehe ich nicht, was ihr seht?

Vielen Dank!

Autor: Marian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird vielleicht die while-schleife vom Compiler wegoptimiert?

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein. Sowas wird nicht wegoptimiert.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um Missverständnissen vorzubeugen: die LEDs leuchten bei 0.

Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, habe jetzt was in die while-Schleife reingeschrieben, macht aber 
keinen unterschied...

#include <avr/io.h>

int main(void)
  {
  DDRB = 0xff;
  PORTB = 0x0f;

  while (1)
    {
    DDRD = 0xff;
    }

  return 0;
  }

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Denk dran, dass zumindest die Pins PB7 und PB6 nicht an der PORT 
B-Leiste angeklemmt sind, sondern an der PORTE/Zusatzfunktionen-Leiste 
(XTAL1 und XTAL2). Außerdem sind die LEDs beim STK500 High-Side 
angeschlossen, d.h. eine Null im PORT-Register schaltet die LED ein. 
Nach Deinem Schnipsel oben müssten dann allerdings zumindest die LEDs 
Nr. 5 und 4 leuchten...

Gibt es beim Programmieren keine Fehlermeldungen? Ist der VTarget-Jumper 
gesetzt?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Felix wrote:
> So, habe jetzt was in die while-Schleife reingeschrieben, macht aber
> keinen unterschied...
Sollte es auch nicht.

Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, beim Compilieren gibt es keine Fehlermeldung und auch keine 
Wahrnung. Der VTarges-Jumper ist gesetzt (sonst könnte ich ihn auch 
nicht über das Board programmieren). Programmieren geht auch ohne 
Probleme. Auch tritt das Problem mit verschiedenen ATMega88 auf.
Gruß und danke!

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtiger µC ausgewählt? Versuch's mal

manuell: "#include <avr/iom88.h>"
bzw.     "#include <avr/iom88p.h>"

Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit #include <avr/iom88.h> bekomme ich eine Fehlermeldung: Include 
<avr/io.h> instead of...". In den Projetk-Options ist atmega88 
eingestellt. Und die "Signature" passt auch...
Folgende Frage habe ich mir auch schon gestellt: Hat der uC einen Takt; 
in den Fuses steht er auf int. RC-Osz. mit 8Mhr, CKDIV8 ist an. Außerdem 
könnte ich ihn ohne Takt auch nicht programmieren.
Die Jumper des STK500 haben das <default settint>.
Vielen Dank für eure Unterstützung...

Autor: Felix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
guten abend zusammen,
hardware o.k., software o.k., benutzer naja...
also ganz einfach, ich habe einfach im programmer-fenster immer eine 
alte hex-datei auf den uc hochgeladen, da ich fälschlicherweise 
instinktiv davon ausgegangen bin, dass immer die hex aus dem aktuellen 
projetk hochgeladen wird. leider ist dem nicht so... soetwas kann schon 
mal 2 tage dauern, bis man darauf kommt :-)
gruß und danke für eure antworten.

Autor: GUI (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt keine intuitiven GUIs, es sind nur die Nutzer die intuitiv 
handeln !

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.