Weitere Artikel aus dem Elo-Magazin

Einen Drehgeber abfragen

von B. Kainka

 

Literatur: Lernpaket Mikrocontroller

 

Ein Drehgeber enthält zwei Kontakte oder Magnetschalter, die bei einer Achsendrehung abwechselnd umschalten. Man verwendet sie als Bedienelemente oder zur Positionserkennung in Motoren.

 

1

 

Der Drehgeber soll über zwei Ports ausgewertet werden um einen Motor zu überwachen. Der ATtiny13 kennt den Port Change Interrupt (PCINT0 ...) an allen Ports. Jeder Pin kann also einen Interrupt auslösen. Bascom kennt die Anweisung ON PCINT0. Allerdings klappt die Einrichtung des Interrupts noch nicht ganz. Hier muss man etwas nachhelfen und die Register PCMSK und GIMSK selbst beschreiben. In PCMSK setzt man eine Maske für die gewünschten Ports. In diesem Fall sollte nur PB3 einen Interrupt auslösen, daher wird 8 zugewiesen. In GIMSK muss das Bit 5 gesetzt werden, um den Port Change Interrupt freizugeben.

 

$regfile="attiny13.dat"
$crystal=1200000
Baud=9600
DimDAsInteger

ConfigAdc=Single,Prescaler=Auto
StartAdc
Open"comb.1:9600,8,n,1,INVERTED"ForOutputAs#1

Pcmsk=8
Gimsk=32
OnPcint0Int_isr
EnableInterrupts

Do
Loop

Int_isr:
'0,2,3,1
IfPinb.3=0Then
IfPinb.4=0ThenD=D+1
IfPinb.4=1ThenD=D-1
EndIf
IfPinb.3=1Then
IfPinb.4=1ThenD=D+1
IfPinb.4=0ThenD=D-1
EndIf
Print#1,D
M2=M1
Return

End

 

Download Drehgeber.zip

 

Ganzen Artikel lesen... 
Kontakt
Warenkorb: 0 Artikel
Gesamtwert: EUR 0,00