- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 12

Thema: Asuro Steuerung für Dieselmotor

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    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!

Ä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. [ERLEDIGT] Drehzahlmessung am Dieselmotor mittels Piezo
    Von im Forum Elektronik
    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
  •  

LiFePO4 Speicher Test