Astro
30.07.2007, 21:50
Kann mir jemand eventuell neben dem Programm ein Paar Erklärungen zu den Werten ind den Commandos schreiben das währe sehr gut das könnte mir weuiter helfen Danke für jeden Tip
Ich müsste dieses umschreibn so das es den Weg nicht misst sondern den weg durch den Encoder messen(keine msleep Programmierung) kann das ich keine unangenehmen Abweichungen beheben kann
eventuell reichen auch Erklärungen zu den Werten und Den Commands
Controller ATMEL128
'################################################# ##
'rncontrol_drehzahl.BAS
'für
'RoboterNetz Board RN-CONTROL ab Version 1.1
'Das neue preiswerte Controllerboard zum experimentieren
' Achtung:
' Diese Demo ist mit Bascom Compiler 1.11.7.8 getestet
'
'Aufgabe:
' Dieses Testprogramm demonstriert wie man mit Drehgeber
' die Umdrehungszahl von Motoren anzeigen kann
' Als Drehgeber wird ein Sharp GP1A030 mit Codescheibe
' verwendet (siehe http://www.robotikhardware.de Rubrik Sensoren)
' In diesem Demo wird nicht die Drehrichtung ausgewertet, daher
' wird nur ein Interrupt Port (INT0) an den Sensorausgang (VOA)
' angeschlossen. Zudem noch +5V, GND und +5V wüber 330 Ohm
' Widerstand an Anode des Sensors. Also einfachste Beschaltung.
' Wenn man nun Programm startet wird jede Sekunde die Drehzahl
' ermittelt und alle 3 Sekunden über RS232 auf einem
' Terminalprogramm (oder KN-KeyLCD) ausgegeben.
' Das Programm eigent sich somit zum Messen von Drehzahlen als
' als auch zur Überprüfung der Drehgeberfunktion. Es läßt sich
' sehr einfach zu Wegstrecken Auswertung ausbauen. Statt
' an einem Interrupt könnte man Sensor auch an einen Timereingang
' anschließen, jedoch wird dies hie rim Programm nicht berücksichtigt.
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'################################################# ######
$regfile = "m32def.dat"
' bei Mega 16 $regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Int0 = Falling
Config Timer1 = Timer , Prescale = 256
Const Timervorgabe = 3036
Const Markierungenproscheibe = 120
Dim Zaehlerirq0 As Long
Dim Impulseprosekunde As Long
Dim Impulseprominute As Long
Dim Umdrehungenprominute As Integer
Print
Print "* RN-CONTROL 1.4 *"
Print "Drehzahl Messung" "
Zaehlerirq0 = 0
On Int0 Irq0
Enable Int0
On Timer1 Timer_irq
Enable Timer1
Enable Interrupts
Do
Print
Print "Impulse Sek: " ; Impulseprosekunde
Impulseprominute = Impulseprosekunde * 60
Umdrehungenprominute = Impulseprominute / Markierungenproscheibe
Print "Umdreh. Min: " ; Umdrehungenprominute
Wait 3
Loop
End
'Pro Impuls (Markierung auf Scheibe) ein Aufruf
Irq0:
Incr Zaehlerirq0
Return
'Pro Sekunde ein Aufruf
Timer_irq:
Timer1 = Timervorgabe
Impulseprosekunde = Zaehlerirq0
Zaehlerirq0 = 0
Return
Ich müsste dieses umschreibn so das es den Weg nicht misst sondern den weg durch den Encoder messen(keine msleep Programmierung) kann das ich keine unangenehmen Abweichungen beheben kann
eventuell reichen auch Erklärungen zu den Werten und Den Commands
Controller ATMEL128
'################################################# ##
'rncontrol_drehzahl.BAS
'für
'RoboterNetz Board RN-CONTROL ab Version 1.1
'Das neue preiswerte Controllerboard zum experimentieren
' Achtung:
' Diese Demo ist mit Bascom Compiler 1.11.7.8 getestet
'
'Aufgabe:
' Dieses Testprogramm demonstriert wie man mit Drehgeber
' die Umdrehungszahl von Motoren anzeigen kann
' Als Drehgeber wird ein Sharp GP1A030 mit Codescheibe
' verwendet (siehe http://www.robotikhardware.de Rubrik Sensoren)
' In diesem Demo wird nicht die Drehrichtung ausgewertet, daher
' wird nur ein Interrupt Port (INT0) an den Sensorausgang (VOA)
' angeschlossen. Zudem noch +5V, GND und +5V wüber 330 Ohm
' Widerstand an Anode des Sensors. Also einfachste Beschaltung.
' Wenn man nun Programm startet wird jede Sekunde die Drehzahl
' ermittelt und alle 3 Sekunden über RS232 auf einem
' Terminalprogramm (oder KN-KeyLCD) ausgegeben.
' Das Programm eigent sich somit zum Messen von Drehzahlen als
' als auch zur Überprüfung der Drehgeberfunktion. Es läßt sich
' sehr einfach zu Wegstrecken Auswertung ausbauen. Statt
' an einem Interrupt könnte man Sensor auch an einen Timereingang
' anschließen, jedoch wird dies hie rim Programm nicht berücksichtigt.
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'################################################# ######
$regfile = "m32def.dat"
' bei Mega 16 $regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Int0 = Falling
Config Timer1 = Timer , Prescale = 256
Const Timervorgabe = 3036
Const Markierungenproscheibe = 120
Dim Zaehlerirq0 As Long
Dim Impulseprosekunde As Long
Dim Impulseprominute As Long
Dim Umdrehungenprominute As Integer
Print "* RN-CONTROL 1.4 *"
Print "Drehzahl Messung" "
Zaehlerirq0 = 0
On Int0 Irq0
Enable Int0
On Timer1 Timer_irq
Enable Timer1
Enable Interrupts
Do
Print "Impulse Sek: " ; Impulseprosekunde
Impulseprominute = Impulseprosekunde * 60
Umdrehungenprominute = Impulseprominute / Markierungenproscheibe
Print "Umdreh. Min: " ; Umdrehungenprominute
Wait 3
Loop
End
'Pro Impuls (Markierung auf Scheibe) ein Aufruf
Irq0:
Incr Zaehlerirq0
Return
'Pro Sekunde ein Aufruf
Timer_irq:
Timer1 = Timervorgabe
Impulseprosekunde = Zaehlerirq0
Zaehlerirq0 = 0
Return