PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tastprellen beim I2C



Duesentrieb
05.04.2014, 21:17
Hallo,

ich möchte die Ports erweitern und habe mir deshalb eine kleine Schaltung mit einem I2C Port gebastelt und kann nun 32 Ports als I/O nutzen.
Einziges Problem was ich habe ich das Tasterprellen.
Im Prinzip müsste ich eine Zeit einprogrammieren die der Taster gedrückt sein muss um einen Ein/Ausschaltimpuls zu geben.
Ich komme da aber nicht weiter. Vielleicht kennt hier jemand das Problem und hat eine ganz einfach Lösung.
Als I2C Treiber nutze ich einen PCF8574

Hier mein Programmausschnitt der so weit auch läuft:

#Port A_ein_aus
vari_a = 0
for n in Adresse:
vari_a = vari_a + 1
Status = bus.read_byte_data(0x3a,n)
if Status < n:
if inputPorta[vari_a]> Status:
n_out1 = n_out1 - n
bus.write_byte(0x38,n_out1)
inputPorta[vari_a] = 0
istzeitPorta[vari_a] = 0
else:
n_out1 = n_out1 + n
#print "geschaltet out1: ", n_out1, " - ", vari_a
bus.write_byte(0x38,n_out1)
inputPorta[vari_a] = 1
istzeitPorta[vari_a] = time.time()

fredred
06.04.2014, 09:43
Hallo
Schau mal im Forum Bascom.
Thema:

BASCOM AVR Software für Bussystem mit Atmel AVR Controller (https://www.roboternetz.de/community/forums/threads/64472-BASCOM-AVR-Software-für-Bussystem-mit-Atmel-AVR-Controller)
Dort sind auch Sub’s zufinden für PCF8574. Mit Tastenprellen habe ich keine Probleme feststellen können.
Vielleicht findest du dort eine Anregung für dein Projekt.

Mit freundlichen Grüßen
fredred

Duesentrieb
07.04.2014, 07:20
Hallo,
danke für deinen Hinweis! Der Link funktioniert bei mir aber nicht.
ich habe zwischenzeitlich eine Lösung gefunden.
Ich akzeptiere einfach nur eine Tasterbetätigung in der Sekunde und fange so jedes Prellen und Flackern ab.

Schöne grüße
Daniel