-         

Ergebnis 1 bis 3 von 3

Thema: Usart0 von Atmega162

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.05.2006
    Ort
    Rheinzabern
    Alter
    26
    Beiträge
    200

    Usart0 von Atmega162

    Anzeige

    Hi,
    ich bin grad dabei mir ein kleines Bussystem aufzubauen. Als Schnittstelle zum PC will ich einen Atmega162 benutzen, da der 2 Uarts hat. Mein Problem is aber, dass ich es nicht zum laufen bekomm. Ich hab ein kleine Programm geschrieben, dass nur über UART0 ein Zeichen ausgeben soll, an UART0 hängt die serielle Com Schnittstelle. Hier mal mein Programm:

    Code:
    #include <avr/io.h>
    #include <stdint.h>
    #include <avr/interrupt.h>
    
    #define F_CPU 16000000L
    #define CBAUD 9600L
    #define COM_VAL ((F_CPU/(CBAUD*16))-1)
    
    void com_init()
    {
    	UBRR0H = COM_VAL >> 8;
        UBRR0L = COM_VAL & 0xFF;
        UCSR0B = (1<<TXEN0)|(1<<RXEN0);
    	UCSR0C = (1<<URSEL0)|(1<<UCSZ01)|(1<<UCSZ00);
    }
    void com_send(unsigned char c)
    {
    	while ( !( UCSR0A & (1<<UDRE0)) )
            ;
    	UDR0 = c;
    	return;
    }
    
    int main(void)
    {
    	DDRD = 0xFF;
    	com_init();
    	
    	while(1)
    	{
    		com_send('E');
    	}
    
    
    	return 0;
    }
    Harwaretechnisch sollte alles i.O. sein, da der bootloader auch funktioniert. Kann mir einer sagen was ich falsch mache? Am PC kommt kein Zeichen an?!

    gruß, homedom

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,
    prüfe mal die Hardware, die Einstellungen am PC und die Taktfrequenz des µC (FuseBits).
    Kannst du den MAX232 entfernen? Dann kannst du die Leitung zum PC so brücken, dass er sein eigenes Signal (Echo)empfängt. Das gleiche versuchst du noch einmal hinter dem MAX. Wenn das auch geht ist der MAX richtig angeschlossen. Die Verbindung von da bis zum µC sollte man per Sichtprüfung hinbekommen.

    Gruß

    Jens

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.05.2006
    Ort
    Rheinzabern
    Alter
    26
    Beiträge
    200
    Hi,
    leider bin ich immer noch nicht vorran gekommen. Wie gsagt, die Hardware sollte OK sein, weil ja der Bootloader auch geht und der sendet ja auch ein zeichen und empfängt wieder zeichen, also der MAX232 sollte richtig angeschlosse sein. Die Taktfrequenz muss demnach auch richtig sein und die Einstellungen am PC hab ich auch geprüft.. Hat keiner ne erklärung?

    gruß, homedom

Berechtigungen

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