- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 37

Thema: Usart programmierung

  1. #21
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    39
    Beiträge
    647
    Anzeige

    Powerstation Test
    nein wenn ichs so mache hat er ein problem mit dem "uint"

    mfg
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  2. #22
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Es heisst uint16_t
    Disclaimer: none. Sue me.

  3. #23
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Schau mal ins Wiki, da hab ich was dazu geschrieben:
    UART mit avr-gcc. Kannst es gleich mal auf Herz und Nieren testen
    Disclaimer: none. Sue me.

  4. #24
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    39
    Beiträge
    647
    Ja danke mit ui9nt16_t gehts.

    @Sprintersb: Das ist aber nicht für nen mega128 d.h. dann müsste ich es wieder komplett umstricken da mache ich lieber mit meinem jetzigen weiter.
    Aber trotzdem danke.

    MFG
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  5. #25
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Was geht denn nicht auf ATmega128?

    Die Anzahl der Stopbits ist anzupassen. Und dein USBS find ich auch nirgendwo... Ansonsten sollte das für ATmega gehen.
    Disclaimer: none. Sue me.

  6. #26
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    39
    Beiträge
    647
    So jetzt habe ich das programm mal getestet.

    Eigentlich laüft es soweit. Nur irgendwie weiss ich nicht so richtig was ich da eingeben muss damit er zb. ein ganzes Wort sendet.

    wenn ich die zwei sende kommt ein smiley an und wenn ich die drei sende dann kommt ein herz an.

    Mfg
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  7. #27
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    39
    Beiträge
    647
    Also ich habe das jetzt so gelöst:
    Code:
    #include <inttypes.h> 
    #include <avr/io.h> 
    #include <avr/signal.h> 
    #include <string.h> 
    
    
    #define F_CPU            16000000     
    #define UART_BAUD_RATE      9600   
    #define UART_BAUD_SELECT (uint16_t)(F_CPU/(UART_BAUD_RATE*16l)-1) 
    
    
    void USART_Init (unsigned int baud)
    {
    /* Set baud rate */
    	//UBRR0H = (unsigned char)(baud>>8);
    	//UBRR0L = (unsigned char)baud;
    
    	UBRR0H = UART_BAUD_SELECT >> 8;   
    	UBRR0L = UART_BAUD_SELECT; 
    /* Enable reciever and transmitter */
    	UCSR0B = (1<<RXEN)|(1<<TXEN);
    /* Set frame format: 8data, 2stop bit*/
    	UCSR0C = (1<<USBS)|(3<<UCSZ0);
    }
    
    
    
    void USART_Transmit (unsigned char data)
    {
    /* Wait for empty transmit buffer */
    	while(!(UCSR0A & (1<<UDRE)))
    ;
    /* Put data into buffer, sends the data */
    	UDR0 = data;
    }
    
    //------------------------------------------------------
    
    
    void send_string(char wort[])
    {
    unsigned int index=0;
    while(wort[index] != '\0')
    {
    USART_Transmit(wort[index]);
    index++;
    }
    return;
    }
    
    //----------------------------------------------------------
    
    
    
    unsigned char USART_Recieve(void)
    {
    /* Wait for data to be recieved */
    	while (!(UCSR0A & (1<<RXC)))
    ;
    /* Get and return recieved data from buffer */
    	return UDR0;
    }
    
    
    long i;
    
    
    
    int main(void)
       {
    
       DDRC = 0xff;
       //USART aktivieren mit einer Baudrate von 9600 Baud
       USART_Init(9600);
       //Endlosschleife
       for(;;)
          {
    	  PORTC=0x01;
          for(i=0 ; i<160000 ; i++){} 
    	  PORTC=0x00;
    	  for(i=0 ; i<160000 ; i++){} 
          //2 über USART verschicken
    	  send_string("Hallo"); 
          USART_Transmit(3);
          }
       }

    Ich meinte das man zb für UBRRH -> UBRR0H schreiben muss das steht nirgendwo ausser in diesem thread . Ich denke das es für nen anfänger irgendwie zu schwer ist mit deiner variante wobei sie sicherlich gut ist. Sie ist nur nicht speziell genug aber man kann das ja auch nicht für jeden controller schreiben.


    Jetzt habe ich nur noch ein problem, ich möchte das nachjedem sende zyklus eine neue reihe begonnen wird.

    mfg danielsan
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  8. #28
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Du must die einzelnen Zeichen schicken. Ich habs ins Wiki dazugemacht.
    Disclaimer: none. Sue me.

  9. #29
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Doch, das steht im Datenblatt des jeweiligen Controllers Wie gesagt, die Codebeispiele sind mit Vorsicht zu genießen, zumal die meist für den IAR Compiler gemacht sind.

    Ein weiteres Beispiel dafür ist, dass beim Mega128 die ISP Pins nicht auf MOSI, MISO, etc. liegen, wie das bei vielen anderen ATMegas der Fall ist. Das findet man eben auch nur im Datenblatt. In den Appnotes zum ISP von Atmel steht das auch nicht so direkt drin.

    Neu Zeile:

    USART_Transmit('\n');

  10. #30
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Ok, das war eher als Vorlage gedacht um mal ein Beispiel zu haben, wie es prionzipiell geht, und weniger als Fix-Fertig-Lösung zum reinkopieren ins Programm. Das wirst du eh kaum finden...
    Disclaimer: none. Sue me.

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress