#include "asuro.h"
gehe zum Quellcode dieser Datei
Funktionen | |
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. |
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.
Definiert in Datei encoder_low.c.
void EncoderInit | ( | void | ) |
Den Interrupt Betrieb der Odometriesensoren-Messung initialisieren und starten.
keine |
int main (void) { Init (); EncoderInit (); MotorDir (FWD, FWD); MotorSpeed (150, 150); while (1) ( // Dein Programm if (encoder [0] > 500) { EncoderStop (); MotorSpeed (0, 0); } } return 0; }
Definiert in Zeile 96 der Datei encoder_low.c.
00097 { 00098 /* 00099 Alle definierten Interrupts im Asuro sperren. 00100 */ 00101 cli(); 00102 00103 /* 00104 Port C als Input => dadurch gehen die Back-LED aus ... 00105 */ 00106 DDRC &= ~ ((1<<PC0) | (1<<PC1)); 00107 /* 00108 ... aber nun koennen die LED's am Rad eingeschaltet werden, und die 00109 Sensoren koennen gemessen werden. 00110 */ 00111 ODOMETRIE_LED_ON; 00112 00113 /* 00114 AD-Wandler einschalten, Parameter einstellen und Starten. (clk/128) 00115 Startet den ADC im 'free running'-Mode (ADFR). Das heisst, der Wandler 00116 nach einer Messung automatisch wieder ne startet. 00117 */ 00118 ADCSRA = (1<<ADEN) | (1<<ADFR) | (1<<ADIE) | (1<<ADSC) | (1<<ADPS0) | (1<<ADPS1) | (1<<ADPS2); 00119 00120 /* 00121 Linken Odometrie-Sensor auswaehlen. (AVCC ref. with external capacitor) 00122 */ 00123 ADMUX = (1<<ADLAR) | (1<<REFS0) | WHEEL_LEFT; 00124 00125 /* 00126 Odometrie im Interruptbetrieb weiter bearbeiten. 00127 */ 00128 autoencode = TRUE; 00129 00130 /* 00131 Alle definierten Interrupts im Asuro wieder zulassen. 00132 */ 00133 sei(); 00134 00135 /* 00136 Die Odometrie Hell-/Dunkel-Zaehler zuruecksetzen/initialisieren. 00137 */ 00138 EncoderSet (0, 0); 00139 }
void EncoderSet | ( | int | setl, | |
int | setr | |||
) |
Interruptbetriebene Odometriesensoren Werte vorbelegen.
[in] | setl | Wert fuer links |
[in] | setr | Wert fuer rechts |
Definiert in Zeile 222 der Datei encoder_low.c.
void EncoderStart | ( | void | ) |
Den Interrupt Betrieb der Odometriesensoren-Messung starten.
keine |
Definiert in Zeile 190 der Datei encoder_low.c.
00191 { 00192 autoencode = TRUE; 00193 }
void EncoderStop | ( | void | ) |
Den Interrupt Betrieb der Odometriesensoren-Messung anhalten.
keine |
Definiert in Zeile 166 der Datei encoder_low.c.
00167 { 00168 autoencode = FALSE; 00169 }