Forum: Mikrocontroller und Digitale Elektronik Logikschaltung mit assembler


von bastler2008 (Gast)


Lesenswert?

hallo ich wollte mal fragen ob mir mal jemand ein kleines 
beispielprogram für den atmega16 oder ähnliches schreiben kann.
z.b. pd3 und pd4 als eingang als und gatter ergeben ausgang pd5 krieg es 
einfach nicht auf die reihe. komm aus der automatisierungstechnik und 
kenne nur die befehle von siemens s5 und s7. hobbymäsig beschäftige ich 
mich jetzt ein bisschen mit assembler. muss wirklich nur ein kleines 
beispiel sein

von Gast (Gast)


Lesenswert?


von Falk B. (falk)


Lesenswert?

@  bastler2008 (Gast)

>z.b. pd3 und pd4 als eingang als und gatter ergeben ausgang pd5 krieg es

Bitmanipulation

1
  ldi r16, (1<<pd5)
2
  out ddrd, r16             ; PD5 als Ausgang
3
  ldi r16, (1<<PD3) | (1<<PD4)
4
  out portd, r16            ; pull ups ein
5
6
  in  r16, pind             ; pins lesen
7
  mov r17, r16              ; kopieren
8
  andi r16, (1<<pd3)        ; PD3 prüfen
9
  brne Ausgang_low          ; sprung wenn = 0
10
  andi r17, (1<<pd4)        ; PD4 prüfen
11
  brne Ausgang_low          ; Sprung wenn = 0
12
  sbi portd, pd5            ; PD5 setzen
13
  rjmp  ende
14
Ausgang_low:
15
  cbi portd,pd5             , PD5 löschen
16
ende:

MfG
Falk

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.