Forum: Mikrocontroller und Digitale Elektronik Microcontroller Programmieren


von Patric (Gast)


Angehängte Dateien:

Lesenswert?

Kann mir bitte jemand weiter helfen!!!

// Bibliotheken
#include "..\art\uart.h"
#include "..\lcd2\lcd2.h"
#include "util\delay.h"



   // Start Programm
   int main(void)
   {
   //variabeln definieren
   unsigned char z;
   unsigned char y;
   unsigned int wert[5];
   int temp; // Teil 2 Temp Variable
   int s;

   lcd_init();
  uart_init();
   uart_getc();


   //Temperaturen werden durch eine Eingabe eingelesen
   //for do while Schleife
      s = 15
      for ( z=1; z<5; z++ )
      {
         do
         {
            uart_puts("Geben Sie die ");
            uart_writeNumber(z, 0);
            uart_puts(". von 4 Temperaturen ein: ");
            _delay_ms(3000); // 3Sek Pause
            wert[z] = uart_geti();
            uart_puts("\033[2J"); //2.Zeile


         }
         // Ausgabe mit While Schleife machen
         //Solange Werte nur zwischen 15 und 200
         while (( wert[z] > 200 ) || ( wert[z] < 15));
      }

      //Wenn der 2. eingegebene Wert 170 aufweist,
      //soll eine zusätzliche Auswahl angezeigt werden
      if ( wert[2] == 170 )
      {
         s = 20;
         uart_puts("2 = Summe, 3 = Mittelwert, 1 = Keine Berechnung");
         temp = uart_geti();

         // die Eingaben mit Switch case auswerten
         switch (temp)
         {
            case '1':
               uart_puts("Keine Berechnung");
;                uart_puts("Stop");
                   uart_puts("\n\r"); // Programm neustart

                break;

            case '2':
                uart_puts("Geben sie die 1. Temperatur zwischen 1 und 
250 ein:") //Zahlen einlesen
                uart_puts("Geben sie die 2. Temperatur zwischen 1 und 
210 ein:")
                uart_puts("Geben sie die 3. Temperatur zwischen 1 und 
250 ein:")
                uart_puts("Geben sie die 4. Temperatur zwischen 1 und 
250 ein:")
                uart_puts("Geben sie die 5. Temperatur zwischen 1 und 
250 ein:")

               // Summe berechnen
               for(z=0; z<anzahl; z++) {
                summe +=wert[z];
               }

               uart_puts ("\nDie Summe ist %.2f\n", summe);

               uart_puts("\n\r(Druecken sie eine beliebige Taste um neu 
zu starten)\n\r");
         uart_puts("\n\r");

               break;

            case '3': ("Mittelwert");
               break;

           }


         // Programm weiterlaufen
        uart_puts("\n\r(Druecken sie eine beliebige Taste um neu zu 
starten)\n\r");
        uart_puts("\n\r");


      // Temperatur zwischen 150 und 180
      if (wert [z]= >150 || <180)

      {
         uart_puts("Wert gut")
      else {
      uart_puts("Alarm 25: die Temperatur mit "wert" ausser 
Sollbereich")
         }

      //Programm neustarten
       uart_puts("\n\r(Druecken sie eine beliebige Taste um neu zu 
starten)\n\r");
       uart_puts("\n\r");



  return 0;
}

von W.S. (Gast)


Lesenswert?

Patric schrieb:
> Kann mir bitte jemand weiter helfen!!!

Und womit?

W.S.

p.s.: Ein steinalter bonmot:
Frage: Woran erkennt man helfende Kritik?
Antwort: Sie beginnt mit "Ihnen werd ich helfen!..."

von squierrel (Gast)


Lesenswert?

Sicherlich ...
aber der ein oder andere würde sich sicherlich darüber freuen wenn er 
nicht alles selbst durchkauen muss, sondern eine Rückmeldung hat was 
denn nicht funktioniert. Z.b. compiler error/linker error/Programm 
Fehlverhalten.

Z.b. scheint nach den function calls Zeile 63-67 schon mal das Semikolon 
zu fehlen am Ende der Anweisung.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Da sind jede Menge Fehler drin - abgesehen von fehlenden Semikolons.

Beispiel:
1
      // Temperatur zwischen 150 und 180
2
      if (wert [z]= >150 || <180)

Das muss heißen:
1
      if (wert[z] >= 150 && wert[z] <= 180)
Wenn 180 ausgeschlossen werden soll, dann "<" statt "<=".

von squierrel (Gast)


Lesenswert?

So Werbepause ...
Zeile 96&98 fehlt auch das schließende Semikolon.

Um das ganze gehört denke ich zudem eine while(1){ dein Code } oder eine 
for(;;) { dein Code } Schleife.

Zeile 81: case '3': ("Mittelwert"); sieht mir mehr nach Notiz aus, das 
hier noch der Mittelwert berechnet werden soll. Compilieren sollte das 
so aber schon, wird halt nichts gemacht.

Mit dem Einwurf von Frank M. zusätzlich denke ich sollte ein ganz 
rudimentäres Grundgerüst stehen.

Eigentlich sollte man nicht mal in einer Werbepause seine Zeit auf eine 
solche Anfrage vergeuden. Ich hoffe es kommt wenigstens ein Danke, wenn 
es geholfen hat.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.