Re: ds2482.init gibt nicht (-1) bei erfolgreicher Initialisierung zurück Kategorie: I²C-Bus (von JackFrost - 22.11.2007 22:07) | |
Als Antwort auf ds2482.init gibt nicht (-1) bei erfolgreicher Initialisierung zurück von eagle1311 - 13.11.2007 19:06
| |
> 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 Hast du es mal mit der Funktion stports.togLED () probiert ? Ich war der Meinung das man einen Port mit 1 und nicht mit -1 einschaltet, Gruss JackFrost | |
Antwort schreiben Antworten: |