-         

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

Thema: Uart mit Rn-Control 1.4

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.09.2006
    Ort
    Bayer/Unterfranken
    Beiträge
    31

    Uart mit Rn-Control 1.4

    Anzeige

    hallo zusammen,

    habe wieder mal ein problem.
    versuche gerade einen text über UART an meinen pc zu senden. leider kommt nichts an und der pegel von tx bleibt auf -8,3V stehn.
    der µC ist ein Atmega32.
    das programm habe ich irgendwo im forum gefunden:

    Code:
    // AVR-Includes
    #include <avr/io.h>
    
    // Defines
    #define F_CPU 4000000    // Hier die Taktfrequenz in Hz eingeben
    #define UART_BAUD_RATE 9600    // Hier die gewünschte Baudrate
    #define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*16L)-1)
    
    
    // Funktionen
    //  -=> UART initialisieren <=-
    void UART_init(void){ 
       
       UBRRL |= (uint8_t) UART_BAUD_SELECT;
       UCSRB = (1<<RXEN)|(1<<TXEN);
       UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
    }
    
    //  -=> Byte Transmit <=-
    void UART_transmit(uint8_t c){
       while(!(UCSRA & (1<<UDRE)));
       UDR = c;
    }
    
    //  -=> String Transmit <=-
    void UART_transmit_string(uint8_t *string){
        while(!(UCSRA & (1<<UDRE)));
       while( *string){ UART_transmit (*string++); }
    }
    
    
    
    int main (void)
    {
    
    
    UART_init();  // UART-Init Funktion ausführen
    
    while(1)
    	{
    	UART_transmit_string("Test");
    	waitms(500);
    	}
    }
    wäre super wenn mir jemand helfen könnte, steh gerade auf den schlauch!
    viele grüße
    Manu

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    26
    Beiträge
    995
    Hi,

    verwende mal meine dateien.. sind für atmega16/32 getestet.

    Du musst die usart.h include mit
    #include "usart.h"
    und die usart.c dazulinken (also in der makefile dazuschreiben...)

    vergiss nicht davor zu initialisieren.

    und:
    uart_putf sendet ohne kommastellen, uart_putd mit, jedoch musst du länge und kommastellen angeben. uart_puts sendet text.
    Angehängte Dateien Angehängte Dateien

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    09.09.2006
    Ort
    Bayer/Unterfranken
    Beiträge
    31
    hi superhirn,

    danke für deine funktionen!
    das programm oben von mir macht ja das gleiche wie du in deinen funktionen.
    leider funktiontiert immer noch nichts!

    braucht man für den UART einen externen quarz? müssen lock/fusebits verstellt werden?
    kann bitte noch mal jemand über den code schaun?
    was könnten noch fehlerquellen sein? bin mir sicher, dass am hyperterminal alles stimmt. 9600 8N1 und keine flussteuerung.

    vielen dank!
    manu

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    26
    Beiträge
    995
    Also externer Quarz ist notwendig da der interne zu ungenau ist. Aber der ist eh schon auf dem RN-Board. Musst ihn nur mit den fuse-bits einstellen (cksel0-3: 0000 bei mir).
    und mein programm hat eine andere baudrate,kannst aber einstellen. ich benutz imemr die grlßt mögliche um das programm nicht durch lange übertragungen zu blockieren. (für dich ist das noch kein thema).
    also wenn du hyperterminal auf die serielle schnittstelle einstellst, aber zb baudrate doer so flasch, dann kommen mindestens irgendwelche kryptischen sachen an. sag mal ob da was kommt. hast du das rihtige kabel?

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    09.09.2006
    Ort
    Bayer/Unterfranken
    Beiträge
    31
    ok danke!
    dann werde ich erst mal den externen quarz aktivieren müssen.
    das kabel ist das richtige, ein testprogramm in Bascom hat funktioniert. im moment bekomme ich gar nichts aufs hyperterminal.

    hoffe ich komme heute noch mal zum testen.

    viele grüße,
    manu

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    09.09.2006
    Ort
    Bayer/Unterfranken
    Beiträge
    31
    ok bin gerade etwas verwirrt!

    also ich habe mit ponyprog meine fusebits ausgelesen. alle kästchen haben KEINEN haken.
    muss ich jetzt für den externen quarz die häckchen von CKSEL0-3 setzen?

    viele grüße,
    manu

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    26
    Beiträge
    995
    du musst zuerst fuse bits lesen bevor du setzt!

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    09.09.2006
    Ort
    Bayer/Unterfranken
    Beiträge
    31
    habe ich gemacht. alles leer, also keine häckchen.

    viele grüße

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    09.09.2006
    Ort
    Bayer/Unterfranken
    Beiträge
    31
    hallo noch mal,

    wie kann ich einen hardware-funktionstest für UART machen, glaube langsam das ich ein hardwareproblem habe...

    viele grüße,
    manu

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    26
    Beiträge
    995
    probier einfach nochmal vom Bascom aus.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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