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

Re: modul DS1631.C2 V1.3 Kategorie: I²C-Bus (von mgerbeth - 2.01.2012 15:09)
Als Antwort auf modul DS1631.C2 V1.3 von Marius Stelzl - 10.07.2010 20:17
Ich nutze:
C164CI-ControllerBoard, OSOPT V3.1
> hi,
>
> ich an meine ccontrol II station ein thermometer modul von conrad (198298)
> angeschlossen und dazu die neue version des ds1631.c2 in die
> entwicklungsumgebung eingespielt.
>
> ich habe jetzt ein paar stunden lang herumprobiert und mich gewundert,
> warum das gerät immer -60 grad oder -0.00 grad anzeigt bis ich
> daraufgekommen bin, das die funktion ds1631.init() irgendwie nicht so
> tut wie sie soll;  aber mit ds1631.setConfig() gefolgt ds1631.convert()
> funktioniert es:
>
> thread main
> {
>
>   int ret;
>   int temp;
>   float temp_calc;
>   string temp_ausgabe;
>
>   ret = ds1631.init(7, 12, 1);
>   //funktioniert nicht wirklich
>
>   ds1631.setConfig(7,12);
>   ds1631.convert(7);
>   //funkt
>
>  loop
>   {
>     second=system.second();
>     temp_ausgabe = "";
>    
>     pcflcd_c.line(2);
>     temp = ds1631.readi2(7);
>    
>     temp_calc = temp;
>     temp_calc = temp_calc / 100;
>
>     str.putfloatf(temp_ausgabe,temp_calc,2);
>      
>     pcflcd_c.print(temp_ausgabe);
>     pcflcd_c.put(' ');
>     pcflcd_c.put(223);
>     pcflcd_c.put('C');
>     sleep 500;
>     pcflcd_c.delLine(0);
>
>    wait second!=system.second();//Auf Sekundenwechsel warten
>   }
> }
>
> die funktion ds1631.init() in version 1.3 dürfte einen käfer haben
> *insektenvertilgungsmittel such* oder liegts an der hardware von conrad?
>
>
>
Hallo zusammen,

ich habe hier das selbe Problem, daher Dank an Marius für den Workarround.
Die Hardware ist es eher nicht, da mein Sensor von CCTools stammt und mit der Init-Funktion
des alten Treibers problemlos funktioniert.
Evtl. kann sich Andrè ja das Problem mal ansehen.


   //I2c Temperaturfühler initialisieren
   //mret = ds1631.init(0, 12, 0); //Aussentemperaturfühler
   // Init-Funktion des neuen Treibers funktioniert nicht, daher dieser Workarround:
   ds1631.setConfig(0,12);
   ds1631.convert(0);

   //if (mret==-1)
   if i2c.cstart(0x90) // interne Adresse des Fühlers(0)
      {
      hwcom.print("03 Aussentempf. OK");
      }
   else
      {
      hwcom.print("03 Aussentempf. --");
      }
   i2c.stop();  // muÃ? beim umstellen auf ds1631.init wieder herausgenommen werden
   hwcom.ret();


Danke und GruÃ? Manfred


    Antwort schreiben


Antworten: