Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: I2C Mit PCF8574 und Munit 2.0 Kategorie: Programmierung Basic (von Dieter - 12.02.2011 13:50)
 Als Antwort auf Re: I2C Mit PCF8574 und Munit 2.0 von Dieter - 11.02.2011 20:05
> > Hallo Dieter
> > durch den PRINT"#ON_IIC#" werden alle Printdaten auf I2C "umgeleitet"
> > Du musst danach wieder zurück schalten (OFF) bevor du wieder Daten auf die serielle geben kannst ...
> > Viel Erfolg
>
> Mit dem Neuen Program Funktioniert die RS 232 Wieder
> Beim PCF 8574 gab es ein verdrahtungs Problem   Behoben
 Das neue Programm siht jetz so aus :

 'Steuergerät U-BOOT Leviatan

 'PORT 1-8 LED Ausgännge
 'Port 1 Straler
 'Port 2 Positionsleuchten
 'Port 3 LED Blau 1
 'Port 4 LED Blau 2
 'Port 5 LED Blau 3
 'Port 6 LED Blau 4
 'Port 7 LED Blau 5
 'Port 8 LED Zyklus

'PCF8574 Adr 0    PytePort 3

'define Kanal_6 Port[17]
'define Kanal_5 Port[18]
'define Down_K  Port[19]
'define UP_K    Port[20]
'define Full    Port[21]
'define Emty    Port[22]
'define Down_R  Port[23]
'define UP_R    Port[24]

define AUSGANGE byteport[1]
define PCF_8574 byteport[3]
define LED_STRAHLER byte
define LED_POSITION byte

define L byte
define T byte
define H byte
define E byte
define X byte
define Y byte
define Z Byte
define C byte
define WERT byte

PRINT "MODULTEST"


#START
FOR L=0 TO 4
PAUSE 5
LOOKTAB LED, L+10, WERT
GOSUB PCF_GET
X = 255
IF (Y and  4) = 0 THEN X = X-64
IF (Y and  8) = 0 THEN X = X-128
GOSUB PCF_PUT

IF (Y and  1) = 0 THEN  LED_STRAHLER = 1    ELSE  LED_STRAHLER = 0
IF (Y and  2) = 0 THEN  LED_POSITION = 2    ELSE  LED_POSITION = 0
AUSGANGE = 0
AUSGANGE = LED_STRAHLER + LED_POSITION + WERT

NEXT L


GOTO START

END

#PCF_PUT
PRINT "#ON_IIC#";
PRINT "#STOP#";
PRINT "#START#";
PCF_8574 = X
PRINT "#STOP#";
PRINT"#OFF_IIC#"
RETURN

#PCF_GET
PRINT "#ON_IIC#";
PRINT "#STOP#";
PRINT "#START#";
Y = 0
Y = PCF_8574
PRINT "#STOP#";
PRINT"#OFF_IIC#"
RETURN





TABLE LED
 64  32  16   8   4   0   0   0   0   0 'Lauflicht
 60  92 108 116 120   0   0   0   0   0 'Lauflicht Reverse
124  60  28  12   4   0   0   0   0   0 'Tank Leeren Dive Up
  0   4  12  28  60 124   0   0   0   0 'Tank Füllen
124  68 124  68 124  68   0   0   0   0 'Störung
  1   2   4   8  16  32   64  128 0   0 'Störung
TABEND

 
> Nur die logik wird falsch verstanden
X = 255                              'Allse aus  (invertiert)
IF (Y and  4) = 0 THEN X = X-64       'Bit 3  gesetzt  geht die vorletzte lampe an
IF (Y and  8) = 0 THEN X = X-128      'BIT 4  gesetzt  ghet die Vorletzte und Letzte lampe an ?

Falsch schreibweise ?!?

Grüsse Dieter

>

 Antwort schreiben

Bisherige Antworten: