#include "asuro.h"
gehe zum Quellcode dieser Datei
Funktionen | |
void | Init (void) |
Initialisiert die Hardware: Ports, A/D Wandler, Serielle Schnittstelle, PWM Die Init Funktion muss von jeden Programm beim Start aufgerufen werden. |
V--- - 20.11.2006 - m.a.r.v.i.n
+++ SIGNAL (SIG_ADC)
static Variable toggle mit FALSE initialisiert.
(Bug report von Rolf_Ebert)
V--- - bis zum 07.01.2007 -
Bitte in Datei CHANGELOG nachsehen.
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)
Definiert in Datei asuro.c.
void Init | ( | void | ) |
Initialisiert die Hardware: Ports, A/D Wandler, Serielle Schnittstelle, PWM
Die Init Funktion muss von jeden Programm beim Start aufgerufen werden.
keine |
Definiert in Zeile 107 der Datei asuro.c.
00109 { 00110 /* 00111 Timer2, zum Betrieb mit der seriellen Schnittstelle, fuer die 00112 IR-Kommunikation auf 36 kHz eingestellt. 00113 */ 00114 TCCR2 = (1 << WGM20) | (1 << WGM21) | (1 << COM20) | (1 << COM21) | (1 << CS20); 00115 OCR2 = 0x91; // duty cycle fuer 36kHz 00116 TIMSK |= (1 << TOIE2); // 36kHz counter 00117 00118 /* 00119 Die serielle Schnittstelle wurde waerend der Boot-Phase schon 00120 programmiert und gestartet. Hier werden die Parameter auf 2400 1N8 gesetzt. 00121 */ 00122 UCSRA = 0x00; 00123 UCSRB = 0x00; 00124 UCSRC = 0x86; // 1 Stop Bit | No Parity | 8 Data Bit 00125 UBRRL = 0xCF; // 2400bps @ 8.00MHz 00126 00127 /* 00128 Datenrichtung der I/O-Ports festlegen. Dies ist durch die Beschaltung der 00129 Asuro-Hardware nicht aenderbar. 00130 Port B: Seriell Senden; Richtungsvorgabe Motor links; Takt fuer die 00131 Geschwindigkeit beider Motoren; Grueneanteil-Status-LED 00132 Port D: Richtungsvorgabe Motor rechts; Vordere LED; 00133 Odometrie-LED (Radsensor); Rotanteil-Status-LED 00134 */ 00135 DDRB = IRTX | LEFT_DIR | PWM | GREEN_LED; 00136 DDRD = RIGHT_DIR | FRONT_LED | ODOMETRIE_LED | RED_LED; 00137 00138 /* 00139 PWM-Kanaele OC1A und OC1B auf 8-Bit einstellen. 00140 Sie werden fuer die Geschwindigkeitsvorgaben der Motoren benutzt. 00141 */ 00142 TCCR1A = (1 << WGM10) | (1 << COM1A1) | (1 << COM1B1); 00143 TCCR1B = (1 << CS11); // tmr1-Timer mit MCU-Takt/8 betreiben. 00144 00145 /* 00146 Einstellungen des A/D-Wandlers auf MCU-Takt/64 00147 */ 00148 ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1); 00149 00150 /* 00151 Sonstige Vorbereitungen. 00152 - Alle LED's ausschalten 00153 - Motoren stoppen und schon mal auf Vorwaerts einstellen. 00154 - Globale Variable autoencoder ausschalten. 00155 */ 00156 ODOMETRIE_LED_OFF; 00157 FrontLED (OFF); 00158 BackLED (ON, ON); 00159 BackLED (OFF, OFF); 00160 StatusLED (GREEN); 00161 00162 MotorDir (FWD, FWD); 00163 MotorSpeed (0, 0); 00164 00165 autoencode = FALSE; 00166 00167 /* 00168 Funktion zum ALLGEMEINEN ZULASSEN von Interrupts. 00169 */ 00170 sei (); 00171 }