- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 24

Thema: Asuroprojekt mit Odometrie und LCD-Display

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Mit der orginalen CD-Library des asuro und ohne gute C-Kenntnisse ist die Zeitmessung wohl nicht lösbar. Deshalb würde ich dir raten die Library zu tauschen. Obwohl es inzwischen die sehr umfangreiche Version v2.8 und auch die TinyLib gibt, rate ich Einsteigern eher zu Version v2.3:

    asuroLib v2.3

    Zum Installieren werden alle vorhandenen asuro.c und asuro.h durch die neuen Versionen aus dem Zip ersetzt.

    Wesentliche Neuerungen gegenüber der CD-Version ist der 36kHz-Takt zur Zeitmessung mit Sleep(), die Ansteuerung der IR-Led und die Funktionen PrintInt() ubd Msleep().

    Ebenfalls neu und für deine Zeitmessung gut geeignet ist die Funktion Gettime(). Sie liefert als 32-Bit-Wert die Anzahl der Millisekunden zurück, die seit dem Programmstart vergangen sind.

    Zur Odometrieauswertung enthält sie zusätzlich die Funktionen Encoder_Init(), Encoder_Start(), Encoder_Stop() und Encoder_Set(int,int) zum Initialisieren, Starten, Stoppen und Setzen der Startwerte für die Odometriefunktion. Eine Anpassung an die Helligkeitswerte des asuro kann man in der Funktion SIGNAL (SIG_ADC) in asuro.c vornehmen. Die Zählung erfolgt interruptgesteuert im Hintergrund, die Zählwerte stehen dann jeweils in encoder[0] und encoder[1]. (Theoretisch, weil ich das selbst noch nie ausprobiert habe. :)

    Wenn du nicht klarkommst, melde dich einfach nochmals. Ich kann's halt (wie immer) leider nicht selbst testen...

    Gruß

    mic

    Edit:
    Mit v2.3 würde ich es etwa so versuchen:
    PHP-Code:
    #include "asuro.h"

    int left=0right=0;
    unsigned long time;
    unsigned long time_left=0time_right=0;
    unsigned long temp_time_left=0temp_time_right=0;

    int main(void)
    {
        
    Init();
        
    Encoder_Init();
        
    Msleep(500);

         while(
    1)
        {
           
    StatusLED(RED);
           while((
    encoder[LEFT]==left) && (encoder[RIGHT]==right));
           
    cli();
            
    time=Gettime();
            
    sei();

            if(
    encoder[LEFT] != left)
            {
               
    cli();
                
    left=encoder[0];
               
    temp_time_left=time-time_left;
               
    time_left=time;
               
    sei();

               
    StatusLED(GREEN);
               
    SerWrite("/n/rLinks:  "10);
                
    PrintInt(left);
                
    SerWrite(" "1);
                
    PrintInt(temp_time_left 0x7fff);
            }
            
            if(
    encoder[RIGHT] != right)
            {
               
    cli();
                
    right=encoder[1];
               
    temp_time_right=time-time_right;
               
    time_right=time;
               
    sei();

               
    StatusLED(YELLOW);
               
    SerWrite("/n/rRechts: "10);
                
    PrintInt(right);
                
    SerWrite(" "1);
                
    PrintInt(temp_time_right 0x7fff);
            }

            
    SerWrite("/n/r"2);
        }
        return(
    0);

    (ungetestet)
    Geändert von radbruch (30.03.2011 um 21:13 Uhr) Grund: Testcode angefügt
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. Odometrie
    Von HAWK-Matze im Forum Asuro
    Antworten: 33
    Letzter Beitrag: 05.03.2008, 09:40
  2. Odometrie die 10.000
    Von NebuK im Forum Asuro
    Antworten: 5
    Letzter Beitrag: 10.11.2006, 13:02
  3. odometrie
    Von Toschtosch im Forum Asuro
    Antworten: 9
    Letzter Beitrag: 03.11.2006, 19:52
  4. Navigation mit Odometrie
    Von Rosowitsch im Forum Asuro
    Antworten: 1
    Letzter Beitrag: 07.06.2006, 16:36
  5. Odometrie LED
    Von Rosowitsch im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 30.05.2006, 20:29

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen