-         

Ergebnis 1 bis 3 von 3

Thema: Keine serielle Komunikation

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    11.08.2005
    Beiträge
    8

    Keine serielle Komunikation

    Anzeige

    hi habe ein Kleines Problem. !!
    Komme einfach nicht weiter.
    Die serialle komunikation mit meinem Board funktioniert in soweit, das ich prgrammieren kann und das er beim starten im Hyperterminal die Fragezeichen macht. Aber dann ist sense.
    Hier mal der Code.


    void USART_Init(unsigned int baudrate)
    {
    // Set baud rate
    UBRRH = (unsigned char)(baudrate>>;
    UBRRL = (unsigned char)baudrate;

    // Enable 2x speed
    UCSRA = (1<<U2X);

    // Enable receiver
    UCSRB = (1<<RXEN)|(0<<TXEN)|(0<<RXCIE)|(0<<UDRIE);

    // Async. mode, 8N1
    UCSRC = (0<<UMSEL)|(0<<UPM0)|(0<<USBS)|(3<<UCSZ0)|(0<<UCPO L);
    }
    void Usart_Tx(char data)
    {
    while (!(UCSRA & (1<<UDRE)));
    UDR = data;
    }


    initalizierung
    CLKPR = (1<<CLKPCE); // set Clock Prescaler Change Enable
    // set prescaler = 8, Inter RC 8Mhz / 8 = 1Mhz
    CLKPR = (1<<CLKPS1)| (1<<CLKPS0);
    USART_Init(12); // Baud rate = 9600bps

    Programm

    lcd wird benutzt und einige Ports aber auch durch ausschalten wird es nicht besser.
    die funktion rufe ich mit
    Usart_Tx(5); auf aber passieren tut nichts
    jemand eine Idee?

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.08.2005
    Ort
    49.80248 8.59252
    Alter
    33
    Beiträge
    172
    Die Funktion Usart_Tx will ein Zeichen. Du gibs ihr nur eine 5 und das entspricht ja keinen druckbaren Zeichen. Versuchs mal so:
    Usart_Tx('a');

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    11.08.2005
    Beiträge
    8

    Fehler gefunden

    Der Fehler war das ich eine Flag falsch gesetzt habe. Das mit dem Zeichen stimmt auch, aber das ich nicht so tragisch, da er dann das entsprechende Zeichen der ASCII Tabelle übertragen hat.
    Das Flag TXEN war auf null gesetz, wie es in der Beschreibung zum erlernen von c auf Atmel heißt. Richtig ist aber das es eine 1 sein muss das das Hyperterminal angesprochen werden kann.

Berechtigungen

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