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

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: