- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 12

Thema: Asuro Steuerung für Dieselmotor

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Oje, das war auch Schwachsinn. Der Timer1 "läuft" beim asuro mit 3,9kHz. Das ist viel zu wenig für eine brauchbare Servoansteuerung.

    Besser sieht es mit Timer2 aus. Der läuft mit 36kHz, (wie immer der Hinweis: Bei der orginalen CD-Library sind es 72kHz) und läßt sich ähnlich einfach missbrauchen:

    PHP-Code:
    #include "asuro.h"

    volatile unsigned char servopos=0p=0// p dauert ca. 20ms oder 1/50 Sekunde

    SIGNAL (SIG_OUTPUT_COMPARE2)
    {
        static 
    int count 1;
        if(
    count servoposBackLED(OFF,OFF); else BackLED(ON,OFF);
        
    //if(count > servopos) PORTC &= ~(1<<PC4); else PORTC |= (1<<PC4);
        
    if(count < (20*72)) count++; else {count=1; if(pp--;} // 20ms bei 72kHz-Lib!
    }

    int main (void)
    {

       
    Init();
       
    //DDRC |= (1<<PC4); // Tasteneingang auf Ausgabe setzen
        
    TIMSK |= (<< OCIE2); // Timer2 CompareMatch-ISR einklinken für Servo
       
    OCR2  0x91// duty cycle for 36kHz vorsichthalber OCR2 belegen

       
    while(1)
       {
          
    StatusLED(RED);
          
    servopos=70;
          
    p=50// eine Sekunde warten
          
    while(p);

          
    StatusLED(GREEN);
          
    servopos=190;
          
    p=50;
          while(
    p);
       }
       return 
    0;

    getestet ;)

    Dabei sollten die Werte wie bei der Sleep()-Ansteuerung sein. servopos=0 sendet keinen Impuls zum Servo.

    Gruß

    mic

    [Edit]
    Sehr knuffig:
    PHP-Code:
    #include "asuro.h"

    volatile unsigned char servopos=0p=0// p dauert ca. 20ms oder 1/50 Sekunde

    SIGNAL (SIG_OUTPUT_COMPARE2)
    {
        static 
    int count 1;
        if(
    count servoposBackLED(OFF,OFF); else BackLED(ON,OFF);
        
    //if(count > servopos) PORTC &= ~(1<<PC4); else PORTC |= (1<<PC4);
        
    if(count < (20*36)) count++; else {count=1; if(pp--;} // 20ms bei 36kHz-Lib!
    }

    int main (void)
    {
        
    unsigned char l[3];

        
    Init();
        
    //DDRC |= (1<<PC4); // Tasteneingang auf Ausgabe setzen
        
    TIMSK |= (<< OCIE2); // Timer2 CompareMatch-ISR einklinken für Servo
        
    OCR2  0x91// duty cycle for 36kHz vorsichthalber OCR2 belegen
       
        
    while(1)
        {
            
    SerRead(l,3,0); // drei Ziffern einlesen (blockierend!)
            
    servopos = (l[0] - '0') * 100 + (l[1] - '0') * 10 + (l[2] - '0');
        }
       return 
    0;

    Geändert von radbruch (21.08.2011 um 13:39 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    08.09.2009
    Beiträge
    12
    wenn ich die programme compilen will kommt folgender fehler:
    asuro.o: In function `__vector_3':
    C:\Users\Erik\Desktop\asuro_src\ASURO_src\FirstTry/asuro.c:35: multiple definition of `__vector_3'
    test.o:C:\Users\Erik\Desktop\asuro_src\ASURO_src\F irstTry/test.c:6: first defined here
    make.exe: *** [test.elf] Error 1

  3. #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
    grrr

    Welche Library verwendest du?

    Mach mal ein Update auf 2.3 oder höher:

    http://sourceforge.net/projects/asur...%20lib%20V2.3/
    (asuro.c und asuro.h austauschen)

    Die aktuelle Lib:
    http://sourceforge.net/projects/asur...1.zip/download
    Geändert von radbruch (21.08.2011 um 15:56 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    08.09.2009
    Beiträge
    12
    danke funktioniert astrein!
    ich werd mich morgen mal daran machen nen drehzahlsensor zu bauen und den servo ans gas hängen...

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    08.09.2009
    Beiträge
    12
    Das Projekt läuft jetzt nicht mehr auf Basis eines Asuro, sondern auf einem Atmel Tiny13 Board. Weitere infos in Zukunft in diesem Thread: https://www.roboternetz.de/community...641#post523641

Ähnliche Themen

  1. Einstieg in die Robotik - Asuro + NSLU + Direkte Steuerung
    Von bjoern.hoefer im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 3
    Letzter Beitrag: 17.01.2011, 13:25
  2. Asuro Steuerung
    Von greenko im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 12.06.2008, 12:00
  3. ASURO-Steuerung mit SCILAB
    Von stochri im Forum Asuro
    Antworten: 0
    Letzter Beitrag: 05.01.2006, 20:06
  4. Steuerung des Bots über Graupner RC-Steuerung
    Von Toastbrot im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 4
    Letzter Beitrag: 23.12.2004, 13:18
  5. Antworten: 2
    Letzter Beitrag: 26.10.2004, 08:37

Berechtigungen

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

12V Akku bauen