- LiFePO4 Speicher Test         
Ergebnis 1 bis 8 von 8

Thema: UART bringt µC aus dem Takt

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Bei 9600 mit 8MHz gibt es da keine Probleme. Wenn die Ausgänge sich anders verhalten, wenn UART läuft, dann ist das ein anderes Problem.

    Das überlasse ich dann anderen, bin erst wieder am WE am PC.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.11.2013
    Ort
    Home
    Beiträge
    213
    Hallo demmy,

    bin ich richtig in der Annahme du hast kein RS232 Pegelwandler nachgeschaltet?

    Wenn nicht kann die Fehlersuche schon aufwendiger werden.
    Wenn ja die einzelnen Platinen mit PC-COM Terminal lesen. Nun solltest du sehen ob UART fehlerfrei funktionier.
    Hinweis: Für solche Tests habe ich ein kleines RS232 Modul gebaut. Ist mittlerweile für Software Überprüfung unentbehrlich geworden.
    Vermute aber(da kein Code) es liegt an Enable/Disable Interrupts.

    Mit

    $baud = 9600
    $hwstack = 32
    $swstack = 32
    $framesize = 32

    Bist du erst mal auf der sicheren Seite.

    Mit freundlichen Grüßen
    Fred

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    348
    Hallo zusammen,

    ich wollte euch mal eben schnell auf den aktuellen Stand bringen. Ich habe den Fehler gefunden und ich konnte es selber nicht glauben als ich es gesehen habe.
    Ich habe tatsächlich bei einem UART interrupt vergessen die Register zu sichern. Kein wunder das der µC da irgendwo rumgesprungen ist sobald was über die Serielle riengekommen ist.

    In Bascom gibt es die Möglichkeit bei der Deklaration der Interruptverzweigung mit anzugeben ob beim Springen in das Interrupt die Register gesichert werden sollen.

    Bsp.:
    On Int0 Label2 Nosave 'jump to label2 on INT0

    Der Zusatz "Nosave" war das Problem. Hier die Erklärung aus der Bascom Hilfe.
    When you specify NOSAVE, no registers are saved and restored in the interrupt routine. So when you use this option make sure to save and restore all used registers.

    Ich habe das Nosave im Code entfernt und jetzt läuft alles einwandfrei. Das war wohl ein klassicher copy / paste Fehler von mir.

    Aber vielen vielen danke an alle die sich mit dem Problem beschäftigt haben.

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Zitat Zitat von demmy Beitrag anzeigen
    Das war wohl ein klassicher copy / paste Fehler von mir
    Hättest Du direkt Deinen Code gepostet, hätten die meisten (Bascom-kundigen) das Problem sofort erkannt ...

Ähnliche Themen

  1. UART Umschaltung mit Bascom, rasch genug bei 8Mhz Takt?
    Von Accenter im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 23.11.2013, 12:33
  2. Bringt das was?
    Von HannoHupmann im Forum Mechanik
    Antworten: 14
    Letzter Beitrag: 15.04.2009, 08:12
  3. CLK Takt höher als Datenbus Takt (SDRAM)
    Von saoirse im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 25.08.2007, 17:12
  4. Interner Takt vom Mega8 genau genug für UART?
    Von Johannes G. im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 08.05.2007, 13:42
  5. Was bringt _BV()
    Von michaelb im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 18.10.2005, 18:22

Berechtigungen

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

12V Akku bauen