Archiv verlassen und diese Seite im Standarddesign anzeigen : Auswertung eines GP1A71R(Radencoder)
Hi!
Ich bin dabei den GP1A71R zur Positionsbestimmung auszuwerten.
Irgendwie verstehe ich aber den Aufbau des TTL Pegels nicht.
Kann ich, wenn ich den Radencoder mit dem AVR auswerte auch noch einen Servo ansteuern, oder ist das Interrupt-technisch nicht möglich?
Für Codeschnipsel in QBASIC für den AVR wäre ich sehr dankbar!
MfG
Rasmus
MrNiemand
24.05.2005, 15:38
was genau willst du auswerten ? gibt mehre sachen:
für einen bot meist alles aber wer weis ;)
position /winkel
drehzahl
drehrichtung
wenn deine interruptroutinen kurz genug sind ist die gleichzeitige ansteuerung von ein paar sevos kein problem...
die GP... haben tll-pegle, das heißt man kann sie direkt an die iengänge des avr anklemmen. eines der signale an nen externen interruptkanal, den anderen an eine normalen pin. wenn der interrupt ausgelöst wird schaun ob der andere pin gerade high ist, wenn ja hochzählen, sonst runter.
Also wenn Signal 1 auf High geschaltet wird und der andere auch auf High ist, dann hat sich das Rad um eine Einheit nach vorne Gedreht, wenn das Signal 2 aber dann auf Low ist dann hat sich das Rad um eine Einheit nach hinten gedreht. Ist das Richtig?
MfG
Rasmus
stimmt denn die beiden signal sind gegeneinader verschoben... (siehe grafik im datenblatt)
Hi!
Ich verwende den Mega32 aber irgendwie bekomme ich bei folgendem Code eine Fehlermeldung:"INT0-INT3 are always low triggered in the Mega".
Oder muss ich das mit den Interrupts anders lösen?
$crystal = 16000000
Config Int0 = Rising
On Int0 Test
Enable Interrupts
Enable Int0
Do
Waitms 1
Loop
Test:
Return
End
MfG
Rasmus
bei mir kompiliert bascom das ganze anstandslos...
ansonsen probier mal
config int0 = falling
Ich glaube das liegt an meinem Controller, da er ja meint da sich der Fehler auf den Mega bezieht. Hast du Bascom auf den M32 umgestellt?
Ist das denn überhaupt der richtige Lösungsansatz? Achja "falling" geht auch nicht.
MfG
Rasmus
Hast du Bascom auf den M32 umgestellt?
ich hab das regfile eingebunden und jetzt auch noch mal in den optionen mgeschaltet... er nimmts immer noch an...
welche verion hast du? ich hab die 1.11.7.3 demo...
Hi!
Ich habe jetzt nochmal ein Programm geschrieben das die GPYA71R auswerten sollte, doch irgendwie funzt das nicht.
Mache ich irgendetwas falsch?
MfG
Rasmus
$crystal = 16000000
$baud = 9600
Config Pind.4 = Input
Config Pind.5 = Input
Dim Rechts As Long , Links As Long
Config Int0 = Falling
Config Int1 = Falling
On Int0 Enc1
On Int1 Enc2
Enable Interrupts
Enable Int0
Enable Int1
Do
Waitms 1000
Print Rechts
Print Links
Loop
Enc1:
If Pind.4 = 1 Then
Links = Links + 1
Else
Links = Links - 1
End If
Return
Enc2:
If Pind.5 = 1 Then
Rechts = Rechts + 1
Else
Rechts = Rechts - 1
End If
Return
End
das dürfte dich interessieren - hier hatte bluesmash eine ähnliche frage:
https://www.roboternetz.de/phpBB2/viewtopic.php?p=91390
wie dort schon erwähnt, Hardwarezähler haben Vorteile.
mfG
cht
naja ich habe jetzt schon mehrmals gehört das das auch PRoblemlos mit einem Microcontroller geht. Aber irgendwie funzt mein Programm halt nicht.
MfG
Rasmus
"INT0-INT3 are always low triggered in the Mega"
Dieser Fehler ist im BasCom 1.11.7.7 ( 8 ) behoben
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.