1-Wire Script Befehle und Display

Hallo,

habt Ihr eine aktuelle Doku zu den 1-Wire php Befehlen ? Gibt es auch ein fertiges Modul (Script) um ein Display mir dem DS2408 anzusprechen ?

Danke
ef

Hallo ef,

als Anlage zwei Skripte:
das erste dient der Initialisierung des Displays und das zweite der Ausgabe.
Warum und wieso entnehme bitte den Datenblättern des HD44870 / KS0066

MST


<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : LCD_INI.ips.php
Trigger  : 
Interval : 
*/

$id = 15879;
TMEX_F29_SetStrobe($id, TRUE);
IPS_Sleep(100);
TMEX_F29_WriteBytes($id, chr(03).chr(03).chr(03).chr(03).chr(03).chr(02).chr(02).chr(12).chr(00).chr(06).chr(00).chr(14).chr(00).chr(01).chr(00).chr(02));

?>


<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : LCD.ips.php
Trigger  : 
Interval : 
*/
$id = 15879;

$text = "Test 1234|zweite Zeile";

$lcd = new OneWireLCD(2, 40);
$lcd->SendLCDText($text);

class OneWireLCD {

 private $rows;
 private $cols;

 public function __construct( $rows, $cols ) {
  $this->rows = $rows;
  $this->cols = $cols;
 }

 public function SendLCDText($text) {

   $id = 15879;
   $sendbuf="";
   $currentline=0;
   $lines = explode("|", $text);

   //Clear Display
   $sendbuf .= chr(0);
   $sendbuf .= chr(1);

   //Disable Cursor
   $sendbuf .= chr(0);
   $sendbuf .= chr(12);

   foreach($lines as $line) {

    if ($currentline >= $this->rows) {
     break;
    }

    //Position
    if($currentline > 1) {
     $shift=20;
    } else {
     $shift=0;
    }

    $sendbuf .= chr(((($currentline%2)*4*16+$shift) | 128) >> 4);
    $sendbuf .= chr(((($currentline%2)*4*16+$shift) & 15));

    //Text
    //$line = str_pad($line, $this->cols);
    $line = substr($line, 0, $this->cols);

    for($i=0; $i<=strlen($line)-1; $i++) {
     $sendbuf .= chr((ord($line{$i}) >> 4) | 16);
     $sendbuf .= chr((ord($line{$i}) & 15) | 16);
    }

    $currentline++;
   }
     TMEX_F29_WriteBytes($id, $sendbuf);
  }
}
?>

Cool,

na die Details brauche ich nicht. Habe mal ein Codeschloß mit genau dem Display Controller auf einem C8751 in Assembler programmiert. (naja vor 13 Jahren)

Besten Dank.

ef

PS: 1-Wire Befehls Doku (ein paar Beispiele für alle Chips posten würde ja auch erstmal reichen) ?