Low Level Funktionen für Radencoder und Odometrie.
Mehr ...
#include "asuro.h"
#include "myasuro.h"
gehe zum Quellcode dieser Datei
|
void | EncoderInit (void) |
| Den Interrupt Betrieb der Odometriesensoren-Messung initialisieren und starten.
|
|
void | EncoderStop (void) |
| Den Interrupt Betrieb der Odometriesensoren-Messung anhalten.
|
|
void | EncoderStart (void) |
| Den Interrupt Betrieb der Odometriesensoren-Messung starten.
|
|
void | EncoderSet (int setl, int setr) |
| Interruptbetriebene Odometriesensoren Werte vorbelegen.
|
|
Low Level Funktionen für Radencoder und Odometrie.
- Siehe auch
- Defines zum setzen von Port's und Konfigurationen in asuro.h
TRUE, FALSE, LEFT, RIGHT
- Version
- V— - KEINE original Version von der ASURO CD vom DLR
-
V— - bis zum 07.01.2007 -
Bitte in Datei CHANGELOG nachsehen.
Das Grundgeruest dieser Funktionen wurde von stochri erstellt.
-
V001 - 13.01.2007 - m.a.r.v.i.n
+++ Alle Funktionen
Zerlegte Sourcen in einzelne Dateien fuer eine echte Library.
-
V002 - 27.01.2007 - Sternthaler
+++ Alle Funktionen
Kommentierte Version (KEINE Funktionsaenderung)
-
V003 - 21.02.2007 - Sternthaler
+++ EncoderStart()
KEINE Funktionsaenderung
Die Fehlerbeschreibung von Sternthaler ersatzlos gestrichen, da
die Funktionalitaet von stochri durch das Starten des AD-Wandlers
in EncoderInit() im sogenannten 'free running'-Mode gegeben ist.
-
V004 - 27.01.2008 - m.a.r.v.i.n
Die Encoder Interrupt Funktion IsrEnc wird in der EncoderInit
Funktion über die Variable AdcIntFunc in den ADC Interrupt
eingebunden und von dort aufgerufen
-
V005 - 29.03.2009 - rossir
A/D Wandler Abfrage ueber Interrupt
Definiert in Datei encoder_low.c.
void EncoderInit |
( |
void |
| ) |
|
Den Interrupt Betrieb der Odometriesensoren-Messung initialisieren und starten.
- Siehe auch
- autoencode, encoder
- Funktionsweise:
- Globale Variable autoencode auf TRUE.
Diese Funktion wird nun verlassen und das aufrufende Hauptprogramm arbeit
weiter. In der Zwischenzeit ist der AD-Wandler beschaeftigt um das Mess-
ergebniss zu ermitteln.
Ist der Wandler fertig, wird der Interrupt zum AD-Wandler aufgerufen und in
der dazu vorhandene Interrupt-Funktion aus asuro.c bearbeitet.
Dort wird nun AUTOMATISCH das Messergebnis ausgewertet, ein erkannter
Hell- Dunkel-Wechsel an der Encoderscheibe erkannt und dadurch der Zaehler
in der globalen Variablen encoder[] weitergezaehlt.
Ausserdem wird dort dann der AD-Wandler fuer die andere Seite gestartet.
Da dies dann immer im Wechsel laeuft, kann das Hauptprogramm, ohne
weiters Zutun von nun ab auf die Zaehlerwerte in encoder[] zugreifen.
- Beispiel:
- (Nur zur Demonstration der Parameter/Returnwerte)
int main (void)
{
while (1)
(
if (encoder [0] > 500)
{
}
}
return 0;
}
Definiert in Zeile 94 der Datei encoder_low.c.
void EncoderSet |
( |
int |
setl, |
|
|
int |
setr |
|
) |
| |
Interruptbetriebene Odometriesensoren Werte vorbelegen.
- Parameter
-
[in] | setl | Wert fuer links |
[in] | setr | Wert fuer rechts |
- Hinweis:
- Initialisiert die beiden Werte in der globalen Variable encoder.
Normalerweise werden die Zaehlerwerte mit 0 initialisiert. Fuer einige
Anwendungen kann es sinnvoll sein auch schon bestimmte Werte vorzubelegen.
- Siehe auch
- Die globale Variable encoder wird hier initialisiert.
- Beispiel:
- (siehe unter den examples)
Definiert in Zeile 182 der Datei encoder_low.c.
void EncoderStart |
( |
void |
| ) |
|
Den Interrupt Betrieb der Odometriesensoren-Messung starten.
- Siehe auch
- Die globale Variable autoencode hier auf TRUE gesetzt.
- Beispiel:
- (siehe unter EncoderInit bzw. in den examples)
Definiert in Zeile 153 der Datei encoder_low.c.
void EncoderStop |
( |
void |
| ) |
|
Den Interrupt Betrieb der Odometriesensoren-Messung anhalten.
- Siehe auch
- Die globale Variable autoencode hier auf FALSE gesetzt.
- Funktionsweise:
- Durch das setzen der globalen Variablen autoencode auf FALSE wird in
der AD-Wandler-Interruptfunktion der Teil zur Bearbeitung uebersprungen.
Dadurch wird der Wandler nicht mehr neu gestartet und somit stopp die
Automatik.
- Beispiel:
- (siehe unter EncoderInit bzw. in den examples)
Definiert in Zeile 135 der Datei encoder_low.c.