Anfänger ohne Kenntnisse aber mit Interesse
Hallo zusammen...
Mein Name ist Dave und ich interessiere mich für Roboter, ich habe damals ein paar Hefte von Real-Robots gekauft aber das wurde mir dann damals zu teuer...
Mein Interesse ist jetzt wieder aufgetaucht und ich wollte euch fragen ob es einen nicht zu komplizierten und nicht zu teuren, aber doch ausbaufähigen Bausatz gibt den ihr mir emphelen könntet...
Danke im voraus...
Gruss Dave
Liste der Anhänge anzeigen (Anzahl: 1)
Für den Timer sieh Dir die Funktion Sleep() in der asuro.c mal an.
Code:
/* uses 72kHz timer => Sleep(x) = x/72kHz [sec] */
void Sleep(unsigned char time72kHz) {
count72kHz = 0;
while (count72kHz < time72kHz);
}
Damit der Timer funktioniert wird alle 27.7777 ms (1/36KHz) ein Interrupt ausgelöst (SIG_OUT_COMPARE2) und die Variable count72KHz um eins erhöht.
Code:
volatile unsigned char count72kHz;
/* uses timer2 (36kHz for IR communication */
/* counts falling and rising edge => 36kHz*2 = 72kHz */
SIGNAL (SIG_OUTPUT_COMPARE2) {
count72kHz ++;
}
Der Code funktioniert jetzt habe den Fehler gefunden.
Der Asuro fährt jetzt ungefähr 10Sekunden und bleibt dann stehen.
Code:
#include "asuro.h" // Header für die Funktionen MotorSpeed() Sleep()
//Prototype
void warte(unsigned int zeit); // Deklaration für die Funktion warte() in mili Sekunden
int main (void) // int ist der Rückgabewert der Funktion main
{
Init(); // Damit der Asuro einwandfrei startet
MotorSpeed(180,180); // Motor links und rechts läuft mit 180 max. 255
warte(10000); // warte 10 Sekunden lang
MotorSpeed(0,0); // Asuro bleibt stehen
while(TRUE); // endlosschleife --> Mach garnix mehr (Programm Ende)
return 0; // Rückgabewert der Funktion main ist 0
}
void warte(unsigned int zeit) // Funktion warte()
{
while(zeit--) // zähle rückwärts bis der Wert 0 ist
{
Sleep(72); // Funktion Sleep() aus der Asuro.h
}
}
OK, ich hofe das reicht als Erklärung.
Gruß Winne =P~