- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 4 von 4

Thema: Timer0 und UART Lib Fleury Timer läuft nicht mehr los

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    24.06.2007
    Alter
    44
    Beiträge
    61

    Timer0 und UART Lib Fleury Timer läuft nicht mehr los

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo zusammen,

    ich habe ein Problem mit den Interrupts am ATMEGA644.

    Folgendes tritt auf. Ich habe ein Programm geschrieben, wo der Timer0 läuft und im 1/10 Sekunden Takt ein paar andere Funktionen abfrägt.

    Das funktioniert wunderbar. Da das Testboard, welches ich benutze auch mit MAX232 ausgestattet ist, wollte ich die UART Lib von Peter Fleury mitintegrieren um ein Display zu sparen und über COM-Schnittstelle zu debuggen.

    Wenn ich die Integration durchführe, funktioniert die serielle Datenübertragung zwar, nur läuft mein Timer nicht mehr los und alle Funktionen, welche darüber gesteuert werden natürlich auch nicht mehr.

    Hat jemand eine solche Problematik schon mal erlebt? Ich weiß nicht wo ich ansetzen soll. Bin etwas ratlos.

    Viele Grüße

    Rainer
    Wenns brennt, dann brennts....

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von steveLB
    Registriert seit
    24.10.2005
    Beiträge
    481
    Ja, passiert oft. google nach : UART blockiert AVR , oder so und wirst ein haufen Zeug finden, oder KBhit().
    Dein Code wartet in der Schleife darauf das ein Zeichen empfangen wird, und zwar so lange bis ein Zeichen kommt. Kommt das Zeichen, so führt es die folgende Aktion aus und wartet dann weiter auf ein Zeichen. Damit blockiert es den Rest.
    Lese von dem UART Speicher nur dann wenn auch was drin ist, sonst mach was anderes
    probier mal so was :

    if ( USCR1A & (1<<RXC) ) // oder wie dein USCR bei dir heißt, schau ins Datenblatt
    {
    // mache was , z.b.rufe getchar auf

    }
    else
    {
    // kann leer bleiben
    }

    // weiter mit deinem normalen Prog


    kann aber auch sein, das die LIB von Peter auch deinen Timer nutzt oder ihn anders Initialisiert oder Interrupts abstellt, musst du alles Prüfen wenn du fremde Libs nutzt
    [X] <-- Nail here for new Monitor

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    24.06.2007
    Alter
    44
    Beiträge
    61
    Danke für den Tip.

    Ich werd mich dran machen eine Lösung zu finden.

    Grüße und Danke
    Wenns brennt, dann brennts....

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    24.06.2007
    Alter
    44
    Beiträge
    61
    So den Fehler gefunden. Es liegt an der Portbelegung des Boards, welches ich benutze. Legt man die LCD Ansteuerung auf die UART PINS tut sich nix mehr.

    Hab mir zwar jetzt mit dem LCD die ganzen Analogeingänge zugemacht, doch dafür hab ich den CAN-Bus und RS232. Das dürfte reichen...

    Grüße und Danke für den Anstoß

    Rainer
    Wenns brennt, dann brennts....

Berechtigungen

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

Labornetzteil AliExpress