- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 14

Thema: USART Problem beim ATMEGA88 A ( STUDIO 7 )

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    .. ein Problem mit dem USART an einem ATMEGA 88A ..
    Meine Probleme mit unpassenden UARTS sind (waren ?) zahllos. Irgendwann hatte ich dann entweder standardmässig oder fallweise diese Routine eingebunden und verwendet :
    Code:
    // ============================================================================= =
    // ==  Auslesen der UBBR0-Werte und Ausgabe auf UART
    // ============================================================================= =
      void UBBR0tst ( void )        // UBBR auslesen und auf UART ausgeben       <main
     {                              //
      u16   bdv, iword;             // Bauddivider und iword für Anzeige auf UART
    // - - - - - - - - - - - - - - - -
    //      Testweise Ausgabe des UBBR0 vorbereiten
    //      Rechenformel :  ( (u16)(F_CPU / BAUD / 16 - 0.5) )
    //  bdv       = (u16)(F_CPU / 115200 / 16 );
    // In main: = (u16)(F_CPU / BAUD / 16 - 0.5 );
      bdv       = (u16)(F_CPU / BAUD / 16 - 0.5 );
      iword     = uniq ( bdv, (bdv >>8));
      
    //      Hier anschließend  - - - f Datenaustausch
    
      uputs0  ("\r\tUBRR0 Rechnung: "); uputs0u ( iword ); // Anzeige UBRR0
      wms ( 1000);
    
      iword     = uniq ( UBRR0L, UBRR0H );
      uputs0  ("\t => Register ~L/H: "); uputs0u ( iword ); // Anzeige UBRR0
                                    //
      return;       // Ende  void UBBR0tst ( void )
     }           
    // ============================================================================= =
    Damit hatte ich dann Tipp-, Bibliotheks-, Rundungs- und sonstige -fehler oder so entdecken können. Sieht am Terminal, nach Reset oder Kaltstart der Platine, so aus (die Farbe rot ist rein"getürkt"):

    Code:
        NaCo x50 5 Mar 2019 13:20
        UART0_64 256 kBd, Datenuebertrgg ebenso
        Datenformat je 3 Bytes [ENQ][Sensora][Sensorb]
        Übertragung ca 1 x je 3 Bytes / sek
    
        UBRR0 Rechnung: 4     => Register ~L/H: 4
    
        ?Addr I²C-Dev 0xE0-0xFE; NoDev =: '-'
        I²Cdevaddr aktiv    224 0xE0
        I²Cdevaddr aktiv    226 0xE2
        --------------        I²C_look Ende @ Addr.:  254 /  0xFE
    
        #> ~r1n~/Tst1prsc: 1 Messung pro Sekunde
        ¼.¼.¯.¼.¼.½.!.¼.½.¼.¼.¼.¼.¼.¼.¼.¼.¼.¼.
    Ne ausführlicher Anmerkung, so kurz nach dem Frühstück, geht grad nicht . . .

    Nachtrag:
    Warum das Ganze? Es gehört natürlich die Berechnung des Baudratenfehlers dazu - Vorsicht: manche Schritte ganzzahlig rechnen. Die Abweichung (klick) kann erheblich sein, mit meinem neuen "Scope" sieht man wie deutlich :-/ so etwas sein kann. Und die Empfindlichkeit auf unterschiedlich große Baudratenabweichungen sind bei unterschiedlichen Empfängern (und Baudraten) eben verschieden.
    Geändert von oberallgeier (06.03.2019 um 10:34 Uhr) Grund: Nachtrag Baudratenfehler
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. AVR Studio Problem beim Build
    Von Bumbum im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 14.10.2016, 06:28
  2. Antworten: 7
    Letzter Beitrag: 27.02.2010, 20:12
  3. USART mit Atmega88 16Mhz
    Von robo-sebi im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 01.07.2009, 20:54
  4. Problem mit AVR Studio 4 - Fehler beim Compilieren
    Von Olle_Filzlaus im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 18.04.2007, 14:05
  5. ATMega88 USART / Baudrateneinstellung
    Von bin_wolf01 im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 16.01.2005, 18:52

Berechtigungen

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

12V Akku bauen