Forum: Mikrocontroller und Digitale Elektronik Assembler Tutorial.komme nicht weiter.


von Patrick L. (networxx)


Lesenswert?

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

von Niels H. (monarch35)


Lesenswert?

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
Noch kein Account? Hier anmelden.