Hallo miteinander, habe gestern versucht mit meinem stk500 mal was einfaches zu probieren für den anfang. ich wollte die leds ansprechen über portb, aber wenn ich ne 1 auf den entsprechenden pin geschrieben hab, war die led aus, bei ner 0 ging sie an. komisch oder? einstellungen portb: DDRB=0xff; PORTB=0b00001010; d.h. die ersten vier leds sind an, dann eine aus, usw. woran könnte das liegen? grüße
Andreas Neef wrote: > ne 1 auf den entsprechenden pin geschrieben hab, war die led aus, bei > ner 0 ging sie an. komisch oder? Ist so, ja. Und für Leute, die schon einmal mit TTL- oder NMOS-Technik gearbeitet haben, ist diese Sichtweise auch völlig normal. Früher konnten Ausgänge weit besser runter als hochziehen, bei 8051-Varianten ist das heute noch oft so und die alten AT90-AVRs waren auch nicht symmetrisch.
Siehe hier erstes Bild: AVR-Tutorial: IO-Grundlagen Da ist gezeigt, wie die LEDs angeschlossen sind.
Die Schaltung der LEDs auf dem STK500 ist analog wie in http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen#Hardware > PORTB=0b00001010; > d.h. die ersten vier leds sind an, dann eine aus, usw. Aus der Sichtweise des Programmieres sind nicht die ersten sondern die oberen LEDs an (4 bis 7, sowie 0 und 2). Bit 76543210 0b00001010; Siehe auch Zahlensysteme http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen#Zahlensysteme
Aha, alles klar. das tutorial hilft soweit weiter, danke. man lernt nie aus...
D.h. aber dann auch, wenn ich eine Bitfolge direkt ausgeben möchte, muss ich sie vorher, wie auch immer, invertieren? Da kommt man doch durcheinander oder?
@ Andreas Neef (typohneahnung) >D.h. aber dann auch, wenn ich eine Bitfolge direkt ausgeben möchte, muss >ich sie vorher, wie auch immer, invertieren? Wo ist das Problem? Das ist ein einfacher Befehl, sowohl in C als auch Assembler.
1 | com r16 |
1 | PORTA = ~leds; |
> Da kommt man doch durcheinander oder?
Nö.
MFG
Falk
>D.h. aber dann auch, wenn ich eine Bitfolge direkt ausgeben möchte, >muss ich sie vorher, wie auch immer, invertieren? Da kommt man >doch durcheinander oder? das liegt eben in deinem Ermessen... 'denkst' du high-active oder low-active... von links nach rechts oder von rechts nach links... das schöne ist, man kann sich das so einrichten wie man am besten damit klarkommt...
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.