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: PCF 8574 als Eingang Kategorie: Programmierung Basic (von Nicolas - 5.07.2015 23:24)
 Als Antwort auf Re: PCF 8574 als Eingang von das |_ Team - 4.07.2015 0:24
Hallo |_ Team

Du, oder Ihr... seid wirklich stark !
Ich danke euch dass Ihr euch die Mühe gegeben habt die Schaltung nachzubauen.
Wer seid Ihr denn um so einen Service anzubieten ?

An einen defekten PCF8574 habe ich auch gedacht und habe deswegen mit andere neue aus der Verpackung versucht...ohne erfolg.

Ich habe dann noch ein paar Tage daran gearbeitet und plötzlich laufts... aber nicht so wie es im datasheet steht !?!

Ich verwende PCF8574N von Texas Instruments

Um es zum laufen zu bringen muss ich eingang=off statt eingang=on schreiben und Pin Nr 4 vom PCF muss ich nicht nach GND, sondern nach 5V ziehen... dann laufts aber ich verstehe nicht warum...

Im Datasheet von Texas Instruments Seite 1 steht folgendes: "The I/Os should be high before being used as inputs" Es steht übrigens genau so in meinen eigenen Notizen die ich mir das letztemal gemacht habe als ich schon eine solche Schaltung gebaut habe.

Bei mir ist es jetzt genau umgekehrt: ich muss es zuerst softwaremässig low legen und dann den pin4 gegen 5V ziehen um einen Input zu erfassen. Ich versteh das nicht und es gefàllt mir auch nicht es anders zu machen als es die Spezifikationen vorscheiben.

Hat jemand dafür eine Erklärung ?


Gruss

Nicolas


> Wir haben mal die Schaltung hier nachgebaut und das Programm:
>
> > > > Hier ist mein Testprogramm:
> > > >
> > > > define SDA as port [9]
> > > > define SCL as port [10]
> > > > define led as port [1]
> > > > define eingang as port [17]
> > > >
> > > > LCD.init
> > > > LCD.off
> > > >
> > > > SDA=on
> > > > SCL=on
> > > > eingang=on
> > > >
> > > >
> > > > #loop
> > > > led=eingang
> > > > goto loop
>
>  ... funktioniert (bei uns) ohne Änderungen und auf Anhieb!
>
> Komisch.
>
> Vielleicht hilft dies weiter, unsere Testumgebung:
>
>  
> Hardware:
>  
> - Applicatiionboard I 2.0
> - CC-I-2.0 (OS-Version 2.07)
> - PCF8574P (Philips)
>
>
> Kompiler:   Basic++ Version 0326
>
>    51 Bytes Token, (bei Codeoptimierung Systemobjekte "AUS")
> bzw.
>    59 Bytes Token, (bei Codeoptimierung Systemobjekte "EIN")
>
> (Beide Kompilate funktionieren)
>
>
> Das Kompilat (ohne Codeoptimerung):
>
> CCTRL-BASIC
> 51
> 3 0 7 31 35 79 78 95 76 67 68 35 0 31 35 73 78 73 84 35 0 31 35 79 70 70 35 0 20 255 255 13 8 20 255 255 13 9 20 255 255 13 16 10 16 13 0 3 0 47 255
> 0
>
>    
> Vielleicht ist ja der PCF8574 kaputt?
>
>
>
>        
>
> > Danke für den heissen Tipp
> >
> > Ich habe es mit viel Hoffnung ausprobiert... leider funktionniert es nicht.
> >
> > Port 17 hängt an den I2C Bus... ich bin nicht sicher dass es über einen Datenrichtungsregister verfügt, sowie z.B. port 1
> >
> >
> > Ich vermute einen Softwaregag... aber ich kann es nicht erkennen.
> > Die Elektronik scheint in ordnung zu sein: mit led=on / Led=off kann ich es ein/ausschalten, und mit eingang=on/off kann ich pin 4 vom pcf8574 auf High/low schalten.
> > Nur auslesen schaff ich nicht.
> >
> >
> > Hätte jemand noch einen Tipp ?
> >
> > Nicolas
> >
> >
> >
> > > Hallo zurück - hier im Forum :-)
> > >
> > > Vermutlich ist eingang nach dem Schreibzugriff in Zeile 11 noch weiterhin als Ausgabeport aktiv.
> > >
> > > Mittels DEACT kann ein als Ausgabeport gesetzter Pin wieder auf Eingabe umgeschaltet werden.
> > >
> > >
> > > define SDA as port [9]
> > > define SCL as port [10]
> > > define led as port [1]
> > > define eingang as port [17]
> > >  
> > >  LCD.init
> > >  LCD.off
> > >  
> > >  SDA=on
> > >  SCL=on
> > >  eingang=on    'Port 17 wurde durch den Schreibzugriff automatisch Ausgabeport
> > >
> > >  <b>DEACT eingang</b> ' ...konfiguriert den Port 17 wieder als Eingabeport
> > >
> > >  #loop
> > >  led=eingang
> > >  goto loop
> > >
> > >
> > > Wir konnten das jetzt gerade nicht testen - funktioniert es damit?
> > >
> > > das |_ Team
> > >
> > >
> > >
> > > > Hallo, gruss an alle, ich bin seit jahren nicht mehr da gewesen...meinen Passwort habe ich auch vergessen...
> > > >
> > > >
> > > > Seit drei Tagen versuche ich ohne Erfolg den Port 17 (PCF 8574 auf den I2C Bus) als Eingang zu nutzen... was ich früher schon geschafft habe. Was mach ich denn falsch ?!?
> > > >
> > > >
> > > > Hier ist meine Schaltung:
> > > >
> > > > [URL=http://www.hostingpics.net/viewer.php?id=870290Schaltung.jpg][IMG]http://img11.hostingpics.net/pics/870290Schaltung.jpg[/IMG][/URL]
> > > >
> > > > Hier ist mein Testprogramm:
> > > >
> > > > define SDA as port [9]
> > > > define SCL as port [10]
> > > > define led as port [1]
> > > > define eingang as port [17]
> > > >
> > > > LCD.init
> > > > LCD.off
> > > >
> > > > SDA=on
> > > > SCL=on
> > > > eingang=on
> > > >
> > > >
> > > > #loop
> > > > led=eingang
> > > > goto loop
> > > >
> > > >
> > > >
> > > >
> > > > Die Led an port 1 sollte den Zustand des Port 17 anzeigen... macht es aber nicht
> > > > Die Messung bestätigt dass der Port 17 (pin4 auf pcf8574) nach Befehl "eingang=on" auf high geht. Der Portexpander funktionniert also einwandfrei als Ausgang.
> > > > Die Portabfrage als Eingang liefert aber immer nur einen low, unabhängig davon ob pin 4 vom pcf8574 (port17) auf low oder auf high gezogen wird !
> > > >
> > > > Ich versteh das nicht.
> > > >
> > > > Stimmt da etwas mit die Softwareabfrage nicht ?
> > > >
> > > >
> > > > Wer könnte mir bitte helfen ?
> > > >
> > > >
> > > > Gruss
> > > >
> > > > Nicolas

 Antwort schreiben

Bisherige Antworten:

Re: PCF 8574 als Eingang (von Bert - 6.07.2015 1:24)