Hallo, ich arbeite gerade das ASM Tutorial durch. http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen Ich arbeite mit dem AtTiny12. An PB0 und PB1 habe ich LEDs über einen Vorwiderstand angeschlossen. Am PB2 und PB3 habe ich Taster und PullUp Widerstände. Bei der Ausgabe habe ich alles recht gut verstanden. Und es funktioniert auch soweit. .include "tn12def.inc" ldi r16, 0xff out ddrb, r16 ldi r16, 0b11111110 out portb, r16 ende: rjmp ende Wie kann ich die LED blinken lassen ? Nun komme ich zur Eingabe, dort habe ich Probleme. Wie kann ich an PB 2 und 3 die Taster einlesen ? Und je nach Tastendruck eine LED leuchten lassen ? Im Beispiel ist PortD für die Eingänge programmiert. Kann ich mein PortB quasi splitten (0,1=ausgang und 2,3=eingang)? Müssen PB 2 und 3 als ausgänge oder als eingänge geschaltet werden ? Fragen über Fragen... Ich hoffe, das mir jemand weiterhilft. Bis man ASM erstmal verstanden hat...Ufffff Gruß NeTwOrXx
Patrick L. r. wrote: > .include "tn12def.inc" > > ldi r16, 0xff > out ddrb, r16 > > ldi r16, 0b11111110 > out portb, r16 > > ende: rjmp ende > Wie kann ich die LED blinken lassen ? "Blinken" definiert sich durch Ein- und Ausschalten. Bleistift: (DDRB setup setz ich mal vorraus)
1 | l1: |
2 | ldi r16,0b11111111 |
3 | out portb,r16 |
4 | ldi r16,0b11111110 |
5 | out portb,r16 |
6 | jmp l1 |
Wenn du den Prozessor mit wenigen Hz takten würdest, würdest du die LED jetzt blinken sehen. So blinkt sie natürlich viel zu schnell. Was hier noch fehlt, sind pausenschleifen. Findest du bestimmt auch im Tutorial. > Nun komme ich zur Eingabe, dort habe ich Probleme. Ich schlage vor, du bleibst erstmal beim blinken. Solange du das noch nicht verstanden hast, solltest du erstmal nicht weiter machen.
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.