-
-
Neuer Benutzer
Öfters hier
;in Assembler bzw. im AVR-Studio
.include "m8def.inc" ;damit bindest du die Tabelle ein, ist zu finden unter C:\Programme\Atmel\AVR Tools\AvrAssembler2\Appnotes
ldi r16, 0xFF
out DDRB, r16 ;Port B als Ausgang
ldi r16, 0b00000011
out PORTB, r16 ; sieht ganz gut aus 
;nur noch über zwei weitere Pins deine Sensoren einlesen (Schalter) und je nach Zustand dein Port-Ausgang (PortB) steuern.
;mit sbrs oder sbrc kannst du vergleichen, der Befehl der danach kommt wird entweder bearbeitet oder übersprungen -> je nach Bit-Kombination
;mit sbi oder cbi kannst du einzelne Bits setzten oder löschen, in deinem Fall LED an oder aus 
so ungefär sollte es funktionieren:
;-----------------------------------------------------------------------------------
.include "m8def.inc"
.def temp = r16
.def sensor = r17
;Stack-Pointer an die letzte SRAM Addresse für den Befehl "rcall"
ldi temp, LOW(RAMEND) ;LOW-Byte der obersten RAM-Adresse
out SPL, temp
ldi temp, HIGH(RAMEND) ;HIGH-Byte der obersten RAM-Adresse
out SPH, temp
;##############################################
main: ;Prog-Anfang
rcall port_init ;unterroutine
;jetzt nur noch den Inhalt im "sensor" register r17 vergleichen
sbrc sensor, 0 ;überspringe wenn Bit 0 nicht gesetzt ist
rcall MotorL_aus
sbrc sensor, 1 ;überspringe wenn Bit 1 nicht gesetzt ist
rcall MotorR_aus
...
...
...
rjmp main ;Endlosschleife -> sprung auf main
;##############################################
port_init:
ldi temp, 0xFF
out DDRB, temp ;Port B als Ausgang
ldi temp, 0b00000011
out PORTB, temp ; sieht ganz gut aus 
ldi temp, 0x00
out DDRD, temp ;Port D als Eingang
ldi temp, 0xFF ; evtl. interne pull up´s aktivieren
out PORTD, temp
in sensor, PIND ;sensor = r17
ret
MotorL_aus:
sbi PORTB, PB0 ;setzte Bit 0 von PortB
ret
MotorR_aus:
sbi PORTB, PB1 ;setzte Bit 1 von PortB
ret
MotorL_ein:
cbi PORTB, PB0 ;setzte Bit 0 von PortB
ret
MotorR_ein:
cbi PORTB, PB1 ;setzte Bit 1 von PortB
ret
; Infos gibt es unter... http://www.mikrocontroller.net/artic..._IO-Grundlagen
..und im Datenblatt auf Seite 289
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen