Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Display Ausgabe über i2C Kategorie: I²C-Bus (von Hans-Jürgen - 20.04.2005 14:44)
Als Antwort auf Re: Display Ausgabe über i2C von krassos - 19.04.2005 21:18

Hallo Krassos, anbei der Display thread. Habe versucht mehr Code zu posten,ging nicht. Gibt es hier
eine Beschränkung? Am I2C hängt zur Zeit nur das Display.
Die Schaltung ist für meinen Wintergarten mit 13 Rollos/MArkisen/Heizung/Fenster.
Als Fühler habe ich Temp,Feuchtigkeit,2xLicht,2xWind und Regen.
Ich wei� natürlich das es schwer ist sich in einen anderen Code reinzudenken.
Aber vielleicht kannst Du mir Tips geben wie's schneller geht ohne zu viel
Zeit zu investieren. Habe ich das mit Code Tags richtig verstanden?
Vielen Dank für die Hilfe !!
>//***************
>thread Display
>//***************
>{
>  //Diese Variablen damit Anzeige nur neu wenn Werte geändert
>  byte MemDisplayDampnessOut,MemLightL_Alarm,MemLightR_Alarm,MemRainAlarm,
>         MemTempHeaterFloorAlarm,MemTempHeaterRadAlarm,MemWindL_Alarm,
>       MemWindR_Alarm;
>  int MemDampnessIn,MemDisplayTempIn2,MemDisplayTempOut,MemTempIn;
>  // warten bis andere Display Ausgabe bei manueller Bedienung oder Menü Einstellungen fertig
>  wait cap.Capture(1);
>  system.gettime(Time);
>  if second2 != Time.second  // einmal pro Sekunde anzeigen
>  {
>    second2=Time.second;
>    pcflcd.goto(1,0);pcflcd.time(1);
>    if DcfTime != MemDcfTime // synchron Zeichen ja  22.6.
>    {
>      if DcfTime==1
>      {
>        pcflcd.goto(1,8);pcflcd.put(7);MemDcfTime=1;//lcdext.put(3);goto ergänzt 14.8.
>      }
>      else
>      {
>        pcflcd.print(" ");MemDcfTime=0;
>      }
>    }
>  }
>  if all_auto != Memall_auto  // Anzeige Auto Funktion
>  {
>    if all_auto==1
>    {
>      pcflcd.goto(1,9);pcflcd.print(" Auto");Memall_auto=1;
>    }
>    if all_auto==0
>    {
>      pcflcd.goto(1,9);pcflcd.print("     ");Memall_auto=0;
>    }
>  }
>  if jal.RainAlarm != MemRainAlarm
>  {
>    if jal.RainAlarm==0
>    {
>      pcflcd.goto(1,14);pcflcd.print("      ");MemRainAlarm=0;
>    }
>    if jal.RainAlarm==1
>    {
>      pcflcd.goto(1,14);pcflcd.print(" Regen");MemRainAlarm=1;
>    }
>  }
>  if TempIn != MemTempIn
>  {
>    pcflcd.goto(2,0);pcflcd.put(1);pcflcd.zahl4n1(TempIn);pcflcd.put(2);MemTempIn=TempIn;
>  }
>  if DisplayTempIn2 != MemDisplayTempIn2
>  {
>    pcflcd.goto(2,7);pcflcd.zahl4n1(DisplayTempIn2);pcflcd.put(2);pcflcd.print(" ");
>   MemDisplayTempIn2=DisplayTempIn2;
>  }
>  if DampnessIn != MemDampnessIn
>  {
>    pcflcd.goto(2,14);if DampnessIn != 0 pcflcd.zahl2(DampnessIn/10);pcflcd.put('%');
>   MemDampnessIn=DampnessIn;//pcflcd.print(" ");
>  }
>  if jal.LightL_Alarm != MemLightL_Alarm
>  {
>    if jal.LightL_Alarm==1
>    {
>      pcflcd.goto(2, 18);pcflcd.print("L");MemLightL_Alarm=1;;
>    }
>    if jal.LightL_Alarm==0
>    {
>      pcflcd.goto(2, 18);pcflcd.print(" ");MemLightL_Alarm=0;
>    }
>  }
>  if jal.LightR_Alarm != MemLightR_Alarm
>  {
>    if jal.LightR_Alarm==1
>    {
>      pcflcd.goto(2, 19);pcflcd.print("L");MemLightR_Alarm=1;
>    }
>    if jal.LightR_Alarm==0
>    {
>      pcflcd.goto(2, 19);pcflcd.print(" ");MemLightR_Alarm=0;
>    }
>  }
>  if jal.DcfTimer2 != 3 //wenn keine synchronisation statt gefunden hat
>  {
>    if  MemDisplayTempOut != DisplayTempOut
>    {
>      pcflcd.goto(3,0);pcflcd.put(3);pcflcd.zahl4n1(DisplayTempOut);pcflcd.put(2);pcflcd.print(" ");
>     MemDisplayTempOut=DisplayTempOut;
>    }
>    if MemDisplayDampnessOut != DisplayDampnessOut
>    {
>      pcflcd.goto(3,8);pcflcd.zahl2(DisplayDampnessOut);pcflcd.put('%');pcflcd.print(" ");
>      MemDisplayDampnessOut=DisplayDampnessOut;
>    }
>    if MemWindL_Alarm != jal.WindL_Alarm
>    {
>      if jal.WindL_Alarm==1
>      {
>        pcflcd.goto(3,18);pcflcd.print("W");MemWindL_Alarm=1;
>      }
>      else
>      {
>        pcflcd.goto(3,18);pcflcd.print(" ");MemWindL_Alarm=0;
>      }
>    }
>    if MemWindR_Alarm != jal.WindR_Alarm
>    {
>      if jal.WindR_Alarm==1
>      {
>        pcflcd.goto(3,19);pcflcd.print("W");MemWindR_Alarm=1;
>      }
>      else
>      {
>        pcflcd.goto(3,19);pcflcd.print(" ");MemWindR_Alarm=0;
>      }
>    }
>    if jal.DisplayOutputCounter == 0 //sonst Hinweis für manuelle Bedienung im Modul jal
>    {
>      if TAlarmDriver==0 //sonst Hinweis für Auto Bedienung
>      {
>        pcflcd.goto(4,0);pcflcd.print("Wind");pcflcd.zahl3(WindCounterR);pcflcd.zahl3(WindMeasureR);
>        pcflcd.print(" ");pcflcd.zahl4(Rain);pcflcd.zahl3(WindLmax);pcflcd.print(" ");
>        pcflcd.zahl3(WindRmax);
>        if MemTempHeaterFloorAlarm != jal.TempHeaterFloorAlarm
>        {
>          if jal.TempHeaterFloorAlarm==1
>          {
>            pcflcd.goto(4,18);pcflcd.put(0);pcflcd.print(" ");MemTempHeaterFloorAlarm=1;
>          }
>          else
>          {
>            pcflcd.goto(4,18);pcflcd.print("  ");MemTempHeaterFloorAlarm=0;
>          }
>        }
>        if MemTempHeaterRadAlarm != jal.TempHeaterRadAlarm
>        {
>          if jal.TempHeaterRadAlarm==1 //and auto_1209==1
>          {
>            pcflcd.goto(4,19);pcflcd.put(4);MemTempHeaterRadAlarm=1;
>          }
>          else
>          {
>            pcflcd.goto(4,19);pcflcd.print(" ");MemTempHeaterRadAlarm=0;
>          }
>        }
>      }
>      else
>      {
>        pcflcd.goto(4,0);pcflcd.print("Auto Bedienung    ");
>        sleep 500;pcflcd.goto(4,0);pcflcd.print("                  ");sleep 100;// sleep damit Anzeige blinkt
>      }
>    }
>    else
>    {
>      pcflcd.goto(4,0);pcflcd.print("Bedienung manuell ");
>      sleep 500;pcflcd.goto(4,0);pcflcd.print("                  ");sleep 100;
>    }
>  }
>  else  // wenn synchr. (DcfTimer2=2)
>  {
>    pcflcd.goto(3,0);pcflcd.print("Bedienung gesperrt  ");
>    pcflcd.goto(4,0);pcflcd.print("Uhr Synchronisation ");
>  }
>  cap.Release(1);
>}


    Antwort schreiben


Antworten:

Re: Display Ausgabe über i2C (von krassos - 20.04.2005 17:11)