- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Erster UART Versuch... schaut mal bitte kurz drüber...

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    18.08.2005
    Beiträge
    86

    Erster UART Versuch... schaut mal bitte kurz drüber...

    Anzeige

    Powerstation Test
    ... und sagt mir mal kurz, wo denn der Controller springt, wenn also ein Datenwort empfangen wurde?
    Ich verstehe nicht, wie/wo man jetzt in den Code die Routine einbringt, die dann ausgeführt wird, wenn Daten empfangen werden.

    Seid Ihr bitte so nett und könnt mir das in der Code an die richtige Stelle einfügen und erklären, damit ich das verstehe.

    Danke im voraus und Grüße

    popi

    Hier der Code:


    #include <avr/io.h>
    #include <avr/interrupt.h>

    void init(void)
    {
    SREG = 0x80; //Interrupts enable
    UCSR1A = (1 << RXC1); //nötig für Interrupt
    UCSR1B = (1 << RXCIE1) | (1 << RXEN1); //RxCompleteInterruptEnable und Receiver Enable
    UCSR1C = (1 << UCSZ10) | (1 << UCSZ11); //8 Datenbits, 1 Stoppbit, keine Parität
    UBRR1 = 0x51; //Baudrate 9600 bei 8MHz Quarz
    }

    void main(void)
    {

    init();

    }

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    18.08.2005
    Beiträge
    86
    Kennt sich denn keiner von Euch mit UART aus???
    Ich muss es heute noch hinbekommen, das mein Controller Daten von der seriellen Schnittstelle meines Computers empfängt!!!

    Helft mir doch mal bitte....

    Gebe eine Kiste Bier aus... ;o)

    Grüße
    popi

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    UCSR1A = (1 << RXC1); //nötig für Interrupt

    diese Zeile dürfte unnötig sein, da dieses Flag vom Controller gesetzt wird *glaub*

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Das wäre dann ISR für Mega 8
    Code:
    ISR (USART_RXC_vect){
    }
    ...wo ist das Bier ?
    Software is like s e x: its better when its free.
    Linus Torvald

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    18.08.2005
    Beiträge
    86
    Danke schon mal für die Bemerkung...

    Wie schreibt man den einen Wert in das EEPROM?

    Grüße

    popi

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Zum Problem UART: Mit Interrupt ist die Sache etwas verschärft. Versuch es noch man wie in dem Beispiel
    https://www.roboternetz.de/wissen/in...statur-Echo.29
    sozusagen einmal grundätzlich.
    Und dann erst stürz' dich in Interrupts und andere Schweinereien.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.06.2006
    Ort
    Schriesheim
    Alter
    37
    Beiträge
    478
    Also ich habe auch ein Problem mit USART und wollt kein neuen Thread aufmachen:

    Ich habe das myAVR Board 2.0 USB mit einem ATMega8L - 8PU drauf

    Im Hyperterminal habe ich aktiviert:
    Bps: 9600
    Datenbits: 8
    Parität: Keine
    Stoppbits: 1
    Flusssteurerung: Hardware


    Also F_CPU hab ich auch schon 8Mhz probiert...

    Habe schon mit Debug-LEDs rumgemacht und rausgefunden, dass er bei...

    while ( !(UCSRA & (1 << RXC)) )

    hängen bleibt. D.h. ja, dass keine Daten ankommen, oder ???

    Code:
    #include <avr/io.h> 
    
    #define F_CPU 			3868400 
    #define USART_BAUD_RATE 	9600 
    #define USART_BAUD_SELECT 	(F_CPU/(USART_BAUD_RATE*16L)-1) 
    
    //-----------------------------------------------------
    void main()
    {
    	char bZeichen;
    	
    	UCSRB = (1 << RXEN) | (1 << TXEN); 
    	UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0); 
    	UBRRL = (unsigned char) USART_BAUD_SELECT; 
    	
    	while (1) 
    	{ 
    		while ( !(UCSRA & (1 << RXC)) ) 
    		{}
    		bZeichen = UDR; 
    		
    		while (!(UCSRA & (1 << UDRE)))  
    		{} 
    		UDR = bZeichen; 
    	}
    }
    Jemand ne Idee?

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    normalerweise hats keine Flusssteuerung
    evtl. wartet da einer drauf.

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.06.2006
    Ort
    Schriesheim
    Alter
    37
    Beiträge
    478
    Funkt auch nciht...

  10. #10
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Schau mal

    https://www.roboternetz.de/wissen/in...#Tastatur-Echo

    d.h, wenn es trotzdem nicht funzt:
    Flußsteuerung: none
    Der Quarz muß stimmen ! (+Fuses)
    Und die Verbindung µC <> PC muß auch passen !



    Tip: Mach erstmal "Hello, world !"
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress