-         

Ergebnis 1 bis 2 von 2

Thema: UART Zeichen werden nicht korrekt übertragen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.10.2007
    Ort
    Mauerkirchen
    Beiträge
    12

    UART Zeichen werden nicht korrekt übertragen

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo!

    Habe ein Problem mit dem Microcontroller ATMEGA 8 auf dem STK-500, ich habe ihn bereits
    erfolgreich mit einer Demo-Version von CodeVision so programmiert, dass
    er mir jedes Zeichen, das ich mittels UART übertragen will, richtig
    überträgt. Allerdings überträgt er mir wenn ich mit dem AVR-Studio
    programmiere (GCC-Plugin) nicht die richtigen Zeichen. In einem Terminal
    Programm sehe ich nur sowas: "eeueeuueeuueeuueeuueeueeuueeuu" usw.usw.
    wenn ich eigentlich lauter "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa" übertragen
    will. Wisst ihr, was das Problem dabei sein kann?

    der Programmcode ist 1:1 von dem CodeVision Assistenten übernommen und
    lautet wie folgt:


    #include <avr/io.h>

    // Standard Input/Output functions
    #include <stdio.h>

    // Declare your global variables here

    int main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
    Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T
    State0=T
    PORTB=0x00;
    DDRB=0x00;

    // Port C initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTC=0x00;
    DDRC=0x00;

    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
    Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T
    State0=T
    PORTD=0x00;
    DDRD=0x00;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    TCCR0=0x00;
    TCNT0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer 1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer 2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    MCUCR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: Off
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 9600
    UCSRA=0x00;
    UCSRB=0x08;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x17;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;

    while(1) {
    while (!(UCSRA & (1<<UDRE))) /* warten bis Senden moeglich
    */
    {
    }

    UDR = 'a'; /* schreibt das Zeichen x auf die
    Schnittstelle */
    }

    /* wird nie erreicht */
    return 0;
    }

    mfg: Wasserzähler....

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Was hast du für eine Quarz in Verwendung

Berechtigungen

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