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

ds2482.init gibt nicht (-1) bei erfolgreicher Initialisierung zurück Kategorie: I²C-Bus (von eagle1311 - 13.11.2007 19:06)
Ich nutze:
C-Control II Station, OSOPT V3.1
Hallo miteinander,

bin gerade dabei die ersten Schritte für eine Einzelraumsteuerung bzgl. Heizungssteuerung eines
EFH zu realisieren und sto�e schon zu Beginn auf für mich unüberwindbare Hürden.

Laut dem beigestellten Hilfetext (2482.html) sollte die Initialisierung eines 1W-Busmasterbaustein
bei Erfolg eine "-1" zurück geben. Falls nicht erfolgreich eine "0".
Soweit klar.

Bei dem unten aufgeführten Code wollte ich in Abhängigkeit der erfolgreich initialisierten
Bausteine die linken gelben LED's der Station "zum leuchten" bringen.
Soweit die Theorie. Die Praxis sieht ein wenig anders aus.
Ich kann erfolgreich den Baustein mit der Adresse "0" ansprechen, die 8-Byte-ROM-Adresse des
angeschlossenen DS18B20 kann ausgelesen werden genau wie auch die Temperatur.
Die erste gelbe LED an der Station bleibt allerdings dunkel, so wie die anderen drei LED's auch.

Hat einer eine Idee, was ich falsch gemacht habe ?
Oder liegt hier einfach nur ein Bug vor ?

thread main
{
 byte i, key;
 int init;
 byte DS1820Addr[8], Temp_HI, Temp_LO;
 long OneW_Temp, Temp;

 lcdext.init();             // interne Display der CC2-Station initialisieren
 stports.init();            // internen dig. Ports der CC2-Station initialisieren

 ds1631.init(1);            // nur den einen DS1631-Sensoren initialisieren

 // INIT der Temperaturfühler
 TS[0].title = "DS18B20";
 TS[0].LONGvalue = 0;
 TS[1].title = "DS1631 ";
 TS[1].LONGvalue = 0;
 
// Anzeige der erfolgreich initialisierten 1W-Busmaster-Bausteine
 for i=0...3
 {
  init = ds2482.init(i);
  if (init==(-1)) stports.setLED((i+1),-1);
 }
 sleep 2000;

 // ROM-Adresse des angeschlossenen DS18B20 ermitteln.
 // Es darf nur "E I N" 1W-Bus-Device angeschlossen sein,
 // wenn diese Funktion ausgeführt wird!
 ds2482.getROM(0,DS1820Addr);
 
 lcdext.delline(1); lcdext.line(1);
 // 8 Byte Adresse des "E I N E N" 1W-Temp.-Sensors ausgeben !!!
 for i=0...3 lcdext.zahl4(DS1820Addr[i]);
 lcdext.line(2);
 for i=4...7 lcdext.zahl4(DS1820Addr[i]);
 sleep 3000;


Interessant ist hier die "for i=0...3"-Schleife zum setzen der LED's.

Vielen Dank für Eure Hilfe.

@ Ich hoffe der Quelltext ist nachher formatiert und so einigermaÃ?en leserlich.
Bei der "Vorschau" war alles lediglich schwarz dargestellt und ohne farbliche Unterscheidung
im Quelltext


    Antwort schreiben


Antworten:

Re: ds2482.init gibt nicht (-1) bei erfolgreicher Initialisierung zurück (von JackFrost - 22.11.2007 22:07)