- Labornetzteil AliExpress         
Seite 7 von 12 ErsteErste ... 56789 ... LetzteLetzte
Ergebnis 61 bis 70 von 113

Thema: neue Asuro Lib V2.70 (Release Candidate 3)

  1. #61
    Benutzer Stammmitglied
    Registriert seit
    01.02.2007
    Ort
    Ashausen
    Alter
    66
    Beiträge
    64
    Anzeige

    E-Bike
    Danke m.a.r.v.i.n und sternthaler für die schnelle Antwort. Ich konnte leider erst jetzt reagieren, da ich meinen Laptop erst einmal retten mußte, aber das ist jetzt geschafft. Einen Accout bei Sourceforge habe ich angelegt und m.a.r.v.i.n eine Mail zukommen lassen - es kann also losgehen. Ich freue mich schon...

    Gruß,

    _HP_

  2. #62
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199

    IR-Kollisionsvermeidung & Funktionen basierend auf UartP

    Hallo,

    die auf UartPutc() basierenden Funktionen
    • void PrintInt (int wert)
    • void PrintLong (long wert)
    • void SerPrint (unsigned char *data)
    • void UartPutc (unsigned char zeichen)
    funktionieren gut, wenn man sie separat von der IR-Kollisionsvermeidung einsetzt.

    Die IR-Kollisionsvermeideung (IRCollisionTest/test.c.) funktioniert gut (IR-Hindernisvermeideung, IR-Höhenmesser, ...), wenn man sie separat von auf UartPutc() basierenden Funktionen einsetzt.

    Frage:
    Gibt es "magic_1" und "magic_2", damit folgender Code funktioniert?
    Code:
    ...
    Init();
    
    DDRD |= (1 << DDD1);  // Port D1 als Ausgang
    PORTD &= ~(1 << PD1); // PD1 auf LOW
    OCR2  = 0xF7;         // Pulsbreite 8
    
    while (1)
    {
      "magic_1"
    
      if (PIND & (1 << PD0))
        StatusLED(GREEN);
      else
        StatusLED(RED);
    
      "magic_2"
    
      SerPrint(something);
    }
    ...
    Gruß, Hermann.
    myIrAsuro.Bild hier  

  3. #63
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    Was meinst du mit "seperat"? nicht im gleichen programm? oder die funktionen nur ausführen, wenn die IR-kollisionserkennung gerade abgeschaltet ist?
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  4. #64
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Hermann,

    wie wäre es damit:

    "magic_1"
    Code:
    USRB = 0;               // UART TX disable
    OCR2  = 0xF7;         // Pulsbreite 8
    "magic_2"
    Code:
    OCR2 = 0x91;         // Pulsbreite fuer 36kHz

  5. #65
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199
    Hallo m.a.r.v.i.n.,
    Zitat Zitat von m.a.r.v.i.n
    Hallo Hermann,

    wie wäre es damit:

    "magic_1"
    Code:
    USRB = 0;               // UART TX disable
    OCR2  = 0xF7;         // Pulsbreite 8
    "magic_2"
    Code:
    OCR2 = 0x91;         // Pulsbreite fuer 36kHz
    den Beitrag hatte ich bisher irgendwie nicht gesehen -- werde es gleich im Zug mal ausprobieren!
    Gruß, Hermann.
    myIrAsuro.Bild hier  

  6. #66
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199

    Kleine "Zugabe" in asuro.h?

    Hallo Librarians!

    Könntet Ihr euch vorstellen, folgenden Abschnitt am Ende von asuro.h reinzunehmen:
    Code:
    #ifdef REVERSE_DIR 
    
    #undef  FWD 
    #define FWD   (1 << PB4)          /*!< Motor vorwaerts */ 
    #undef  RWD 
    #define RWD   (1 << PB5)          /*!< Motor rueckwaerts */ 
    
    #endif
    
    
    #ifdef UPSIDE_DOWN 
    
    #undef  FWD 
    #define FWD   (1 << PB4)          /*!< Motor vorwaerts */ 
    #undef  RWD 
    #define RWD   (1 << PB5)          /*!< Motor rueckwaerts */ 
    
    #undef  LEFT 
    #define LEFT    1 
    #undef  RIGHT 
    #define RIGHT   0 
    
    #undef  LEFT_DIR 
    #define LEFT_DIR   (1 << PB4) | (1 << PB5)   /*!< PB4, PB5 Ports fuer Drehrichtung rechter Motor */ 
    #undef  RIGHT_DIR 
    #define RIGHT_DIR  (1 << PD4) | (1 << PD5)   /*!< PD4, PD5 Ports fuer Drehrichtung linker Motor */ 
    
    #undef  IR_RIGHT 
    #define IR_RIGHT   (1 << MUX0) | (1 << MUX1)   /*!< ADC3 A/D Wandler Port fuer Linienfolger Fototransistor links */ 
    #undef  IR_LEFT 
    #define IR_LEFT    (1 << MUX1)                   /*!< ADC2  A/D Wandler Port fuer Linienfolger Fototransistor rechts */ 
    
    #undef  WHEEL_RIGHT 
    #define WHEEL_RIGHT (1 << MUX0)      /*!< ADC1 A/D Wandler Port fuer Odometrie Sensor links*/ 
    #undef  WHEEL_LEFT 
    #define WHEEL_LEFT  0            /*!< ADC0 A/D Wandler Port fuer Odometrie Sensor rechts */ 
    
    #define BackLED(l,r)       BackLED(r,l) 
    #define MotorDir(l,r)      MotorDir(r,l) 
    #define MotorDir(l,r)      MotorDir(r,l) 
    #define MotorSpeed(l,r)    MotorSpeed(r,l) 
    #define SetMotorPower(l,r) SetMotorPower(r,l) 
    
    #endif
    Der erste Abschnitt mit REVERSE_DIR ist in folgendem Beitrag besprochen:
    https://www.roboternetz.de/phpBB2/vi...=267410#267410

    Der Abschnitt mit UPSIDE_DOWN in in diesem Beitrag:
    https://www.roboternetz.de/phpBB2/vi...=267146#267146

    REVERSE_DIR ermöglicht es, ein "normales" Programm für einen Asuro zu übersetzten, der beide Motoren falsch hermum angeschlossen hat (z.B. weil einer der beiden nur rückwärts dreht, wie aktuell bei mir).

    UPSIDE_DOWN ermöglicht es, einen "falsch herum" fahrenden Asuro ohne Änderungen mit "normalen" Programmen ansteuern zu können.

    Wenn ja, dann müßte allerdings noch $(DEFS) in die ersten Zeilen von CFLAGS in allen Makefiles eingefügt werden
    Code:
    ... 
    CFLAGS = -g $(DEFS) -O$(OPT) -I../../lib/inc\ 
    ...
    damit "make DEFS=-DUPSIDE_DOWN" bzw. "make DEFS=-DREVERSE_DIR" den Rest erledigt!

    Cool finde ich die Makrovertauschungen (z.B. BackLED) am Ende der Einfügung ...
    Gruß, Hermann.
    myIrAsuro.Bild hier  

  7. #67
    Benutzer Stammmitglied
    Registriert seit
    01.02.2007
    Ort
    Ashausen
    Alter
    66
    Beiträge
    64
    Hi HermannSW,

    erst einmal: Ich bin beeindruckt davon, was Du hardwaretechnisch alles angestellt hast - und noch mehr, wie Du das alles unter Einbeziehung Deiner zwei Kinder auf die Reihe bekommst!!!!

    Trotzdem würde ich die von Dir vorgeschlagenen Änderungen nicht in die reguläre Lib aufnehmen. Sie sind einfach zu speziell und machen sie für Leute, die neu dazukommen schwer nachvollziehbar. Leider mußt Du dann jedesmal die Lib anpassen, wenn es eine neue Version gibt, aber das geht anderen bestimmt auch so, die Änderungen wollen, die die Lib eben nicht erfüllt.

    Sorry...

    Aber ich bin natürlich nur ein kleines Licht hier und meine Meinung ist nicht die ausschlaggebene. Wenn die anderen Entwickler meinen, diese Änderung sollte Eingang in die Lib finden...

    Gruß,

    Helmut

  8. #68
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.147
    Blog-Einträge
    3
    Trotzdem würde ich die von Dir vorgeschlagenen Änderungen nicht in die reguläre Lib aufnehmen.
    Ich möchte mich dieser Meinung anschließen. Die größten Probleme bei Betriebssystemen, Programmen und Videorecordern hat man dadurch, dass es zuviele Schalter gibt, an denen man drehen kann.

    Variabilität erhöht die Komplexität

    Gruss,
    stochri

  9. #69
    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

    Der 72kHz - Timer wurde auf 36kHz geändert. Leider steht nirgends WARUM?!
    Ich hab mal gelesen, die Verringerung der Frequenz sollte die Anzahl der Interrupts verringern um dem Hauptprogramm mehr Rechenzeit zu gönnen.(Ohne Gewähr)

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  10. #70
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199
    Hallo,
    Zitat Zitat von _HP_
    Trotzdem würde ich die von Dir vorgeschlagenen Änderungen nicht in die reguläre Lib aufnehmen. Sie sind einfach zu speziell und machen sie für Leute, die neu dazukommen schwer nachvollziehbar.
    Zitat Zitat von stochri
    Ich möchte mich dieser Meinung anschließen. Die größten Probleme bei Betriebssystemen, Programmen und Videorecordern hat man dadurch, dass es zuviele Schalter gibt, an denen man drehen kann.
    Ihr habt beide Recht, das war wohl ein Schnellschuß von mir, ist ok, wenn das nicht in die Lib kommt. Wenn jemand solche Probleme hat, wird er ja über die Forensuche auch hier fündig werden ...

    Zitat Zitat von _HP_
    Leider musst Du dann jedesmal die Lib anpassen, wenn es eine neue Version gibt, aber das geht anderen bestimmt auch so, die Änderungen wollen, die die Lib eben nicht erfüllt.
    Ist schon ok, ist ja nur einmalig das Reinkopieren in asuro.h.

    Letztes Mal hatte ich mehr Glück, PrintLong() hat ja bereits seinen Weg in die Lib gefunden.

    Noch eine Frage hinterher:
    Unter "9.2.12. unsigned char PollSwitch(void)" werden im Handbuch die Taster K1-K6 benannt.
    Wie wäre es denn mit Konstanten K1-K6 im Abschnitt Makrodefinitionen von asuro.h?
    Gruß, Hermann.
    myIrAsuro.Bild hier  

Seite 7 von 12 ErsteErste ... 56789 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen