- 12V Akku mit 280 Ah bauen         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 28 von 28

Thema: RC5 Code von Roboternetz geht nicht

  1. #21
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Anzeige

    Powerstation Test
    Hier liegt ein Timingfehler vor, entweder ist dein Prozessor falsch getaktet oder deine Fernbedienung sendet kein RC5. Im Code springst du nämlich nur die Zeilen für einen ungültigen RC5 Code an.

    mfg

  2. #22
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Also der Code funktioniert ohne Änderungen, von SIGNAL abgesehen.
    Ich hatte einen Fehler in der UART-Ausgabe.
    In der UART-Ausgabe ist natürlich auch noch die Konvertierung auf ASCII mit itoa notwendig.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #23
    Neuer Benutzer Öfters hier
    Registriert seit
    30.08.2013
    Beiträge
    9
    Die Fernbediehnung müsste eigentlich alles richtig machen, hab eine Loewe Control 150 TV die folgenden Frame aussendet bei der Power Taste: (14 Bit ) Klicke auf die Grafik für eine größere Ansicht

Name:	RC5 Frame.jpg
Hits:	3
Größe:	45,2 KB
ID:	26299

    - - - Aktualisiert - - -

    In der UART-Ausgabe ist natürlich auch noch die Konvertierung auf ASCII mit itoa notwendig.
    Was bedeutet das ( für einen Anfänger)?

    Ich habe leider keinen schimmer wie ich dem besagten Timingfehler auf die Spur kommen sollen.. Mehr als den CPU takt mit F_CPU vorgeben kann man doch nicht, oder?

  4. #24
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Auf deinem Terminal möchtest du ja das ASCII-Zeichen sehen und nicht das binäre.
    Code:
               uint8_t code = rc5.code;
                uint8_t addr = rc5.addr;
                char codea[2];
                char addra[2];
                //FB Code senden!
    
                itoa(code,codea,10);
                itoa(addr,addra,10);
                uart_puts(codea);
                uart_putc(' ');
                uart_puts(addra);
                uart_puts( "\n\r" );
                  /* und auf naechstes Zeichen warten */
                  rc5.flip = -1;
    Das habe ich mal auf die schnelle dazugepfriemelt.
    Vor dem while(1) habe ich noch uart_puts("Start"); eingefügt, damit man sieht ob die UART-Ausgabe überhaupt funktioniert.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  5. #25
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Was bedeutet das ( für einen Anfänger)?
    Für dich uninteressant solange der Empfang nicht mal funktioniert.

    Ich habe leider keinen schimmer wie ich dem besagten Timingfehler auf die Spur kommen sollen.. Mehr als den CPU takt mit F_CPU vorgeben kann man doch nicht, oder?
    Doch, du musst die Fuses im Controller so setzen wenn du eine externe Clock verwendest!! F_CPU sagt dem Compiler nur, wie schnell der Controller getaktet ist, setzt aber nicht den Wert selbst im Controller.

    mfg

  6. #26
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.063
    Wie schon geschrieben gibst du mit FCPU nur dem Compiler vor wie schnell der µC in der Schaltung takten wird damit dieser das Programm richtig übersetzen kann (wird u.A. bei "wait_ms()" benötigt).

    Wenn du im Programm 1MHz vorgibst musst du dem Controller auch eine Takt von 1MHz vorgeben. Die µC haben meist einen internen 8MHz RC Oszillator und einen eingestellten Teiler durch 8, dadurch läuft der µC im Urzustand mit 1MHz.

    Du hast dem Compiler vorgegeben das du einen 16MHz Takt verwendest. Du musst also einen 16MHz Takt irgendwie dem µC zur verfügung stellen (entweder Takt oder Quarz) und die Fuses dementsprechend einstellen. Eventuell funktioniert es auch wenn du FCPU auf 8MHz stellst (Interner RC-Oszillator).

    MfG Hannes

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    30.08.2013
    Beiträge
    9
    SO!! Dank euer Unterstützung habe ich das Problem nun endlich gelöst. Wie 021aet04 schon sagt, das Fuse Bit für den internen Takt muss auf F_CPU abgelichen werden!
    Habe nun das Fusebit auf 8 MHz intern, und F_CPU dementsprechend auf 8000000 angeglichen, nun funktioniert der Code so wie er soll

    Viele Dank an Euch!
    gruß wolf7272

  8. #28
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.063
    Herzlichen Glückwunsch, schön das es jetzt funktioniert.

    MfG Hannes

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

LiFePO4 Speicher Test