- LiFePO4 Speicher Test         
Ergebnis 1 bis 9 von 9

Thema: Variablenübergabe zwischen RS232 und Atmega32

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    Benutzer Stammmitglied
    Registriert seit
    19.06.2004
    Alter
    50
    Beiträge
    66
    Möglicherweise habe ich etwas übersehen (wer schaut mal drüber?), aber so gefällt es besser:
    Code:
    int index=0;
    char ch[19];
    
    while (1)
    {
      c = uart_getc();
      if ( c & UART_NO_DATA )
      {
        /* 
         * no data available from UART 
         */
      }
      else
      {
        /*
         * new data available from UART
         * check for Frame or Overrun error
         */
        if ( c & UART_FRAME_ERROR )
        {
          /* Framing Error detected, i.e no stop bit detected */
          uart_puts_P("UART Frame Error: ");
          ch[0]=0;
          index=0;
        }
        else
        if ( c & UART_OVERRUN_ERROR )
        {
          /* 
           * Overrun, a character already present in the UART UDR register was 
           * not read by the interrupt handler before the next character arrived,
           * one or more received characters have been dropped
           */
          uart_puts_P("UART Overrun Error: ");
          ch[0]=0;
          index=0;
        }
        else
        if ( c & UART_BUFFER_OVERFLOW )
        {
          /* 
           * We are not reading the receive buffer fast enough,
           * one or more received character have been dropped 
           */
          uart_puts_P("Buffer overflow error: ");
          ch[0]=0;
          index=0;
        }
        else
        {
          /* 
           * send received character back
           */ 
          uart_putc( (unsigned char)c );
               
          if((unsigned char)c!=13)
          {
            ch[index]=c;
            index++;   
          }            
          else
          {
            ch[index]=0;
            index = 0;
            if (strcmp (ch,"TEMP1")==0)
            {
              // Temperatur soll angefragt werden
              uart_puts("Temperatur1=..........\n");
            }
            else
            if (strcmp (ch,"TEMP2")==0)
            {
              // Temperatur soll angefragt werden
              uart_puts("Temperatur2=..........\n");
            }
            else
            if (strcmp (ch,"PH")==0)
            {
              // Temperatur soll angefragt werden
              uart_puts("PH=..........\n");
            }
            else
            if (strcmp (ch,"HUMIDITY")==0)
            {
              // Temperatur soll angefragt werden
              uart_puts("Humidityr=..........\n");
            }    
            ch[0]=0;
          }             
        }
      } 
    }
    PS: es fehlt immernoch die Abfrage, ob die Anzahl der Empfangenen Zeichen länger als 18 sind. Das 19. ist das "0" Byte.
    Geändert von Chris266 (27.09.2012 um 18:18 Uhr)

Ähnliche Themen

  1. Atmega32 zwischen GPS-Modul und PC über RS232 . Brauche Hilfe :)
    Von da_miez3 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 14.04.2012, 17:33
  2. UART zwischen Atmega32 und ATmega8
    Von Lunarman im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 07.06.2007, 16:22
  3. Kommunikation zwischen C++ und ATMega32 (realisieren??)
    Von strunz im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 16
    Letzter Beitrag: 21.04.2006, 05:37
  4. [ERLEDIGT] Übertragung von Daten zwischen Atmega32 und Atmega128
    Von OBI im Forum AVR Hardwarethemen
    Antworten: 0
    Letzter Beitrag: 11.12.2004, 12:41
  5. Variablenübergabe in Funktion
    Von wolf4124 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 19.08.2004, 18:25

Stichworte

Berechtigungen

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

Labornetzteil AliExpress