mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PORTB high wenn PINB high?


Autor: M. T. (cube7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
wenn ich PORTB = 0xff; definiere, zeigt mir AvrStudio im I/O View PORTB 
trotzdem als low an.

Definiere ich aber PINB = 0xff; wird mir PORTB als high angezeigt.

HÄ?

Greetings,
C.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> HÄ?

Programm und Screenshot bitte :-)

Autor: M. T. (cube7)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
#include <avr/io.h>          
 
int main (void) {            
 
    DDRB  = 0xff;            
    PORTB = 0xff;
   
  while(1) {                
   }                         
    
   return 0;                 
}

Ich wollt eigentlich nur ne LED zum leuchten bringen....

Arbeite mit AvrStudio, WIN-gcc und dem STK500

Autor: Jens A. (nepi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ist DDRB eingestellt?

Autor: A. F. (frankalicious)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im STK500 sind die LEDs Low aktiv, also
PORTB = 0x0;

Autor: M. T. (cube7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahh,
das ist gut zu wissen, erklärt aber trotzdem nicht das Verhalten.

Autor: M. T. (cube7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens
Was meinst du mit eingestellt (hab ich was übersehn)?

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber irgendwie passt dein Screenshot nicht:
1. Die Datei wurde verändert (*)
2. Ich seh keinen gelben Pfeil (Simulationsfortschritt im Programm)
3. Der Simulator läuft nicht?

Am STK sind so viel ich weiß die LEDs invertiert angeschlossen, also 
bringt PORTB = 0; die LEDs zum leuchten.
:-)

Autor: M. T. (cube7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, irgendwie kapier ichs nich, jetzt wirds richtig angezeigt....
@Floh
Was meinst du mit Simulator?
;-)

Greetz,
C.

Autor: Huch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>3. Der Simulator läuft nicht?

Der Simulator läuft. Ist unten rechts zu erkennen. Oben im Menue ist das 
Pause-Icon enabled.

Autor: Huch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was meinst du mit Simulator?

Der "Simulator" ist das Programmteil von AVRStudio, das im Bild gerade 
angezeigt wird. Es soll die CPU simulieren.

Es kann sich hier um eine der mehr oder minder bekannten Fehler des 
Simulators handeln. An sich ist mir aber nicht bekannt, das man in der 
echten CPU die Ausgangsports nicht setzen kann.

Autor: Huch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das gerade mal ausprobiert.

Der Effekt tritt genau dann auf, wenn Du den Simulator und dann das 
Programm startest ohne das Programm dann wieder anzuhalten.
Während des Laufs wird die Port-Anzeige nicht aktualisierst. Wenn Du den 
Simulator anhälst, dann stehen da auch die erwarteten Wert 0xFF in PORT 
und DDR.

Also alles OK.

Autor: M. T. (cube7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die HInweise- wieder was gelernt:-).
Aber das Programm ist doch nicht falsch?
Auch nachdem ich den PORT auf active low eingestellt habe krieg ich 
immernoch kein Signal -  nutz ich am STK500 vllt. die falschen Pins um 
das Signal abzugreifen?

Autor: Huch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>nutz ich am STK500 vllt. die falschen Pins um das Signal abzugreifen?

Das muss irgendein Missverständnis sein.
Dein Bildschirmfoto zeig, wie schon bemerkt, den Simulator.
D.h. Dein Programm wird auf dem PC simuliert. Es läuft nicht auf dem 
Prozessor, der auf dem STK500 gesteckt ist.

Um das zu erreichen, musst Du, das beim Compilieren erstelle HEX-File 
auf den Prozessor flashen. Das geht mit dem Menuepunkt "Tools"->"AVR 
Connect".
Dieser Menuepunkt ist nur dann aktiv, wenn der Simulator nicht aktiv 
ist. Lies am besten auch nochmal die Doku zu AVRStudio.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
M. T. schrieb:
> Auch nachdem ich den PORT auf active low eingestellt habe krieg ich
> immernoch kein Signal -  nutz ich am STK500 vllt. die falschen Pins um
> das Signal abzugreifen?

Moment mal. Du musst auf jeden fall unterscheiden zwischen Simulator und 
Stk.
Ich glaub nämlich da gibts Missverständnisse. :-)

Du tippst dein Programm und kompilierst es.
Wenn du simulierst, startest du einfach den Simulator.

Willst du das Programm auf dem Stk500 ausprobieren, musst du das 
Programm auf den uC übertragen (downloaden).
Außerdem musst du beim Stk ja die Verbindung zwischen PortB und den Leds 
über Flachkabel herstellen.
:-)

Autor: M. T. (cube7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal und danke für deine Mühe!

Dass das was der Simulator macht nicht auch gleichzeitig auf dem STK 
passiert, ist mir klar, gebrannt wird das Ding ja erst wenn ich auf 
compile and run klicke, oder?

Anstatt die bereits integrierten LEDs zu nutzen wollt ich eigentlich 
externe verwenden, die ich über den I/O Header (missverständlicher Name) 
angeschlossen habe. Trotz allem scheint mein Programm auf die Ausgänge 
keinen Einfluss zu nehmen - hmmm

C.

Autor: Huch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>gebrannt wird das Ding ja erst wenn ich auf compile and run klicke, oder?
Nein. Damit startest Du den Simulator.

Du musst zwar auf Compile drücken aber dann eben auf das schon 
beschriebene "Tools"->"Program AVR"->"Connect" bzw. "Auto connect". Das 
erst stellt eine Verbindung zum STK500 her.

Autor: Floh (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
M. T. schrieb:
> compile and run klicke

Ähm, hast du schon mal irgendein Programm auf den uC gespielt?

Im Bild ist mal der Einstiegsbutton dafür markiert :-)

Autor: Huch (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das mal in dem Bild gekennzeichnet.

Autor: Huch (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, da hat was gefehlt.

Autor: M. T. (cube7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ähhhm, okay, da hab ich wohl was vollkommen falsch verstanden *_'
Vielen Dank für die Skizzen, ich versuchs gleich mal, hoffentlich 
klappts*_*.

THX a lot,
Cube

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.