- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 3 von 3

Thema: Asuro Quellcodes

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2011
    Beiträge
    14

    Asuro Quellcodes

    Hallo liebe RoboterNETZ Community

    Hier Könnt ihr Quellcodes und hex dateien zum Thema Asuro reinstellen. Hier ein paar Quellcodes die ich gefunden habe:
    Geändert von IDG (19.04.2011 um 13:04 Uhr)

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2011
    Beiträge
    14
    Multitasking (Quelle: Roboterclub-Freiburg)

    PHP-Code:
      //*******************************************************************
    //
    // Multitasking ohne Betriebsystem
    //
    // Beispiel fr ASURO Roboter
    //
    // In diesem Programm laufen mehrere Programmteile quasi "gleichzeitig"
    // Oft ist es bei der Roboterprogrammierung notwendig, dass mehrere
    // Aufgaben zur gleichen Zeit durchgefhrt werden sollen.
    // Die Hauptschleife wird mit 1/10 Sekunde durchlaufen, daher können
    // Reaktionszeiten von 0,1 Sekunden erreicht werden.
    //
    // Die Front-Led blinkt unabh?gig von den Rckwärtsleds
    // Gleichzeitg werden die Motoren gestartet, wenn der Zeitgeber der
    // RückwertsLED's einen bestimmten Wert errreicht.
    //
    // 17.5.2007 ch
    //
    //*******************************************************************
    #include "asuro.h"

    int main(void)
    {
        
    uint32_t nextzeit=100// Zeitgebervariable mit 32 Bit
        
    uint16_t funktion1_zeit=0// Zeitgebervariable fr 1.Funktion
        
    uint16_t funktion2_zeit=0// Zeitgebervariable fr 2.Funktion
        
    uint16_t funktion3_zeit=20// Zeitgebervariable fr 3.Funktion

        
    Init();

        while(
    1)
        {
    //*******************************************************************
    // Funktion1: Statusleuchtdiode blinken lassen
    //*******************************************************************
            
            
    if (funktion1_zeit==0)
            {
                
    StatusLED(GREEN);
            }
            if (
    funktion1_zeit==10// Nach 1 Sekunde auf Rot umschalten
            
    {
                
    StatusLED(RED);
            }
            
    funktion1_zeit++;
            if (
    funktion1_zeit>20funktion1_zeit=0;

    //*******************************************************************
    // Funktion1: Ende
    //*******************************************************************
    //*******************************************************************
    // Funktion2: Rckwärtige Leuchtdioden abwechselnd schalten
    //*******************************************************************
            
            
    if (funktion2_zeit==0)
            {
                
    BackLED(OFF,ON);
            }
            if (
    funktion2_zeit==15// Nach 1,5 Sekunde auf Rot umschalten
            
    {
                
    BackLED(ON,OFF);
            }
            if (
    funktion2_zeit==49)
            {
                
    funktion3_zeit=0// hiermit wird die Funktion3 gestartet
            
    }
            
    funktion2_zeit++;
            if (
    funktion2_zeit>50funktion2_zeit=0// 3 Sekunden

    //*******************************************************************
    // Funktion2: Ende
    //*******************************************************************
    //*******************************************************************
    // Funktion3: Motoren benutzen
    // Diese Funktion wird gestartet, wenn die Variable
    // function3_zeit auf 0 gesetzt wird
    //*******************************************************************
            
            
    if (funktion3_zeit==0)
            {
                
    MotorSpeed(255,255);
                
    MotorDir(FWD,FWD); // Motoren vorwäts
            
    }
            if (
    funktion3_zeit==5// 0,5 Sekunden
            
    {
                
    MotorSpeed(255,255);
                
    MotorDir(RWD,FWD);
            }
            if (
    funktion3_zeit==10// 0,5 Sekunden
            
    {
                
    MotorSpeed(0,0);
            }

            if (
    funktion3_zeit<15funktion3_zeit++; // Funktion beenden, wenn 15 erreicht

    //*******************************************************************
    // Funktion3: Ende
    //*******************************************************************

            // Schleifendurchlauf auf 0,1 Sekunden synchronisieren
            
    while(Gettime()<nextzeit); // warten, bis Zielzeit erreicht
            
    nextzeit=Gettime()+100// Zeitgeber auf 100 Millisekunden= 0,1 Sekunde stellen
        
    }


  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2011
    Beiträge
    14
    Zufallszahlengenerator und sichere Tasterabfrage (Quelle: Roboterclub-Freiburg)

    PHP-Code:
    //
    // uint8_t zufall()
    //
    // Liefert eine 8Bit Pseudozufallszahl zurück,
    // die Zahlenfolge wiederholt sich spätestens nach 65535 Aufrufen
    //

    uint8_t zufall()
    {
        static 
    uint16_t startwert=0x0AA;

        
    uint16_t temp;
        
    uint8_t n;
            
        for(
    n=1;n<8;n++)
        {
            
    temp startwert;
            
    startwert=startwert << 1;
        
            
    temp ^= startwert;
            if ( ( 
    temp 0x4000 ) == 0x4000 )
            {
                
    startwert |= 1;
            }
        }
        
        return (
    startwert);
    }
    //*******************************************************************
    // uint8_t KeyPressed(void)
    //
    // zeigt, ob eine Taste des ASUROs gedrckt ist.
    //
    // Die Funktion nutzt nicht den AD-Wandler wie die Funktion Pollswitch,
    // sondern fragt die Tasten direkt digital ab.
    // Grund: Funktion Pollswitch arbeitet nicht zuverlaessig.
    //
    // 23.5.2007 ch
    //
    //*******************************************************************
    uint8_t KeyPressed(void)
    {
        
    uint8_t flag;

        
    DDRD &= ~SWITCHES// High Impedance ( Input ) 
        
    DDRC |= (1<<PC4); // ADC-Switch-Pin to Output 
        
    PORTC |= (1<<PC4); // load capacitor / Pull up 
        
    Msleep(1);
        
    DDRC &= ~(1<<PC4); // Set ACD-Switch to Input 
        
    PORTC &= ~(1<<PC4); // High Impedance 

        
    Msleep(1);

        if(
    PIND&SWITCHESflag=FALSE;
        else 
    flag=TRUE;

        return 
    flag;


Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 07.06.2021, 14:38
  2. Antworten: 10
    Letzter Beitrag: 17.11.2017, 17:45
  3. Quellcodes RP5
    Von Robofan4 im Forum Robby CCRP5
    Antworten: 3
    Letzter Beitrag: 07.09.2008, 12:59
  4. Antworten: 35
    Letzter Beitrag: 28.01.2008, 17:24
  5. Antworten: 3
    Letzter Beitrag: 15.05.2007, 13:35

Berechtigungen

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

Solar Speicher und Akkus Tests