-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Uart Fehler

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.01.2008
    Ort
    Krefeld
    Beiträge
    272

    Uart Fehler

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    N'abend,

    also weil ich es noch nie brauchte habe mich noch nie mit UART beschäftigt, da es aber jetzt mal dran ist, bin ich seit zwei Tagen
    am Probieren und es klappt irgendwie nicht.

    Ich hab das Beispiel von RN-Wissen genommen.

    Leider kommen nur Zeichen an.

    Ich habe TX/RX mal kurzgeschlossen und wenn ich über ein terminal was raus gebe kommt auch das richtige an.

    Hab ich was übersehen?

    Benutze den Rn-Control(Atmega32)

    Code:
    #include<avr/io.h>
    
    #defineF_CPU16000000L
    #defineUSART_BAUD_RATE9600
    #defineUSART_BAUD_SELECT(F_CPU/(USART_BAUD_RATE*16L)-1)
    
    
    //-----------------------------------------------------
    void_writeString(constchar*string)
    {
    while(*string)
         {
    while(!(UCSRA&(1<<UDRE)))
             {} 
    
    
    UDR=*string++;
         }
    }
    
    
    //-----------------------------------------------------
    voidmain()
    {
    UCSRB=(1<<TXEN);
    UCSRC=(1<<URSEL)|(1<<UPM1)|(1<<UCSZ1)|(1<<UCSZ0);
    // UCSRC = (1<<URSEL) | (1<<UCSZ1) | (1<<UCSZ0); 
    UBRRL=(unsignedchar)USART_BAUD_SELECT;
    
    
         _writeString ("Hallo, Welt!\n"); 
    
    
    // Endlossschleife nach Verlassen von main
      }
    
    
    Ich kam, sah und alles funktionierte **** doch dann klingelte mein Wecker!!!

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Code:
     uint16_t ubrr = (uint16_t) ((uint32_t) F_CPU/(16*BAUDRATE) - 1);
    gib mach das ganze casting dazu, auch wenn's bescheuert aussieht.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.01.2008
    Ort
    Krefeld
    Beiträge
    272
    Ne hat leider auch nicht geklappt, es kommt jedes Zeichen an, nur nicht das was ankommen soll... So ein kurzer Code, was kann man denn da übersehen haben.

    hab den auf extern 16.000 64 ms gestellt, und noch die Optimierung auf das unterste.

    Gruß David
    Ich kam, sah und alles funktionierte **** doch dann klingelte mein Wecker!!!

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Du setzt UPM1 (Parity even enabled)
    Weiss das Terminal auch was davon ?
    Probier mal ohne
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.01.2008
    Ort
    Krefeld
    Beiträge
    272
    Ja hatte schon einmal mit und einmal ohne ausprobiert...
    Ich kam, sah und alles funktionierte **** doch dann klingelte mein Wecker!!!

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Hartnäckig.
    Also stelle das Terminal auf 8-Bit 1 Stop no parity, no handshake, 9600 Baud
    Das UPM1 lass also aus.

    Setze mal UBRR Wert "zu Fuß" (9600 bei 16 MHZ) #define USART_BAUD_SELECT 0x67
    Check nochmal die Fuses wegen der Clock=16 MHZ
    Statt "Hallo, Weilt" schicke "AAAAAAAA" ( 8 mal "A")
    sag dann, welche Art Schmierzeichen zu kriegst und ob es 8 sind oder mehr oder weniger
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.01.2008
    Ort
    Krefeld
    Beiträge
    272
    Also es kommt Dezimal="01011111" und als zeichen 8 mal = "_"

    Hoffe man kann damit was anfangen
    Ich kam, sah und alles funktionierte **** doch dann klingelte mein Wecker!!!

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    672
    Hallo,

    sowas hatte ich auch schon mal. Benutzt du einen Quarz? Ohne habe ich nie eine stabile UART-Kommunikation hinbekommen. Das Ergebnis so so ähnlich aus wie bei dir.

    Es könnte auch an deiner Verkabelung liegen. A = 65dez = 01000001bin. Bei dir scheints genau invertiert anzukommen. (Ich habe jetzt nicht genau die Start-/Stop-Bits im Kopf, sieht aber tatsächlich komplett invertiert sein)

    Viele Grüße
    Andreas

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.01.2008
    Ort
    Krefeld
    Beiträge
    272
    also ich benutze es im Moment zur Probe Rn-control. (16MHz) Verkabelung kann man nicht ändern, weil ein port ist ja zum senden ein zu empfangen, senden tut der Mic ja, der dritte ist ja masse, also sollte die Verkabelung falsch sein, würde er ja nichts senden. Wie ich das inventwierte weg bekomme, weis ich aber nicht, der Code ist ja so wie er bei RN-Wissen steht.

    Das einzige was ich mir vorstellen kann, wäre das RX/TX an Port C ist, weil die led gehen auch bei "00" an und bei "ff" aus.

    Gruß David
    Ich kam, sah und alles funktionierte **** doch dann klingelte mein Wecker!!!

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    672
    Ich kenne das RN-Control leider nicht. Mit dem Pinning hast du recht. Die Verbindungen selbst hast du richtig gemacht.
    Aber ein Inverter ist ja schnell gebaut und getestet. Zwei Widerstände und ein NPN-Transistor und fertig.

    z.B. über 1kOhm des Ausgangs des RN-Controls an die Basis des Transistor (z.B. BC547). Emitter auf Masse, Collector an den Eingang deines PC und an einen Pull-Up-Widerstand. (kann auch 1kOhm sein)

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Bascom Software Uart Inkey Fehler
    Von Furtion im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 10.11.2010, 14:24
  2. BASCOM 2te UART oder software UART
    Von Snecx im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 19.02.2009, 00:25
  3. Daten von Software UART nach Hardware UART weiterleiten
    Von kusli im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 06.10.2008, 22:24
  4. Hardware UART + Software UART gleichzeitig möglich?
    Von eevox im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 22.04.2007, 19:54
  5. Fehler bei UART ausgabe mit ATtiny2313
    Von hagbart im Forum AVR Hardwarethemen
    Antworten: 9
    Letzter Beitrag: 08.03.2006, 20:19

Berechtigungen

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