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

Re: PCF 8574 + PCFKeyb.c2 Kategorie: I²C-Bus (von Borris Koszlat, http://www.nighteagle.de - 15.03.2006 14:27)
Als Antwort auf PCF 8574 + PCFKeyb.c2 von Borris Koszlat - 7.03.2006 19:30
Ich nutze:
C-Control II Unit, CC2-Application-Board, OSOPT V3.0
Guten Tag allesamt!

also nachdem ich jetzt sehr viel in den Archiven
gesucht habe, habe ich etwas gefunden das ich dann erfogreich
ausbauen konnte.
Mein Dank geht an Julian mit seiner "Modulzusatz-Idee" für
das PCFKEYB.c2 Modul.
Er postete es am 07.04.2004. Also schon etwas länger her.
Aber der Grundgedanke gefiel mir, ich habe es etwas ausgebaut,
damit kann ich jetzt ähnlich einem elektronischem Zahlenschlo�
mehrere (in meinem Fall 8 Ziffern) eingeben und diese werden dann
in den String übergeben.
Dann lasse ich prüfen ob der Stringinhalt meine Wertvorgabe entspricht
und lasse die entsprechenden "actions" laufen.
Interessant war hier das Julian (Ein Lob an diese Stelle!) vergessen hatte
nach dem Abfragen der Stringvariable bzw. Integervariable, diese
wieder mit str.clear(stringvar); auf Null zu stellen.
Ansonsten nimmt er keine Kombination zweimal.
Ist ja auch klar, da der Wert wohl hinzuaddiert wird.

Hier jetzt der abgeänderte und für mein Problem genutzte Code.

thread main
{
int eins; // Variable für Kombination
int intvar;
byte taste,n;
string stringvar;
//i2c.init();
pcfkeyb.init(8,!0);
lcdext.init();
n=0;
eins = 12345678; //Kombination die zum Erfolg führt

lcdext.clear();
lcdext.goto(1,3);
lcdext.print("Geheimzahl");
lcdext.goto(2,4);
lcdext.print("eingeben!");
do
  {
  taste = pcfkeyb.getchar(0);
  pcfkeyb.released (1);
  //lcdext.put (taste);
  n=n+1;
  if n==1
  {
  plm.beep(15);
  lcdext.clear();
  lcdext.print("Zahl 1");
  sleep 1000;
  }
///>>>>>>> // Weitere Anzeige auf dem Display, wie man will
  stringvar = stringvar + taste;
  }
while n==8 nor taste==0x23;
intvar = strx.getNum(stringvar);

if intvar==eins
{
lcdext.clear();
lcdext.goto(1,0);
lcdext.print("Eingabe");
lcdext.goto(2,0);
lcdext.print("richtig!");
str.clear(stringvar); // String wieder löschen!!!
sleep 2000;
}
else
{
lcdext.clear();
lcdext.goto(1,0);
lcdext.print("Access");
lcdext.goto(2,0);
lcdext.print("denied!");
str.clear(stringvar);
sleep 2000;
}
sleep 100;
plm.beep(-1);
}


Hoffe hier auch jemanden geholfen zu haben! Denn jetzt liegt
es ja bald im Archiv. Tolle Sache!

Ciao
nighteagle

Meine Seite: http://www.nighteagle.de


    Antwort schreiben


Antworten: