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.
1 | #include <avr/io.h> |
2 | |
3 | int main (void) { |
4 | |
5 | DDRB = 0xff; |
6 | PORTB = 0xff; |
7 | |
8 | while(1) { |
9 | }
|
10 | |
11 | return 0; |
12 | }
|
Ich wollt eigentlich nur ne LED zum leuchten bringen.... Arbeite mit AvrStudio, WIN-gcc und dem STK500
Ahh, das ist gut zu wissen, erklärt aber trotzdem nicht das Verhalten.
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. :-)
So, irgendwie kapier ichs nich, jetzt wirds richtig angezeigt.... @Floh Was meinst du mit Simulator? ;-) Greetz, C.
>3. Der Simulator läuft nicht?
Der Simulator läuft. Ist unten rechts zu erkennen. Oben im Menue ist das
Pause-Icon enabled.
>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.
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.
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?
>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.
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. :-)
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.
>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.
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 :-)
Ä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
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.