Durch einen zweiten Lesezugriff auf den Port.... habe keine Ahnung wie ich den INT am PCF 8574 zurücksetzen kannst (im Lesemodus)
Gruß Dirk
vielleicht kann mir jemand helfen....
habe keine Ahnung wie ich den INT am PCF 8574 zurücksetzen kannst (im Lesemodus) damit ich auf eine neuerliche Änderung am PCF reagieren kann. Pin 12 des PCF ist mit den INT1 des µP verbunden, den ich über einen Pullup nach high gezogen habe.
I2C zum Schreiben funktioniert bereits, nur das Lesen habe ich noch nicht im Griff, bzw. Löschen des INT am PCF8574!
Danke Papua
PS: Bin ich da überhaupt richtig am Weg?????
#define READ_ADRESSE_1 0x41 // Lese - Adresse
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
// wartet ms Millisekunden
void delay_ms(uint16_t ms)
{
for(uint16_t t=0; t<=ms; t++)
_delay_ms(1);
}
ISR (INT0_vect)
{
hier sollte der Code zum Löschen des PCF Interrupt steht, nur wie geht das????????
}
//lesen der PCF's Adresse
i2c_start_wait(READ_ADRESSE_1+I2C_READ);
wert = i2c_readNak();
i2c_stop();
delay_ms(30);
};
Durch einen zweiten Lesezugriff auf den Port.... habe keine Ahnung wie ich den INT am PCF 8574 zurücksetzen kannst (im Lesemodus)
Gruß Dirk
Danke Dirk,
es ist der Schreibbefehl der das INT am PCF8574 löscht!
Dank dir
was noch nicht ganz funktioniert ist das Lesen aus dem PCF 8574.
Habe ich da noch was vergessen im Code? Normal sollte in der Variablen "wert" der Zustand der Port Pin's am PCF wiedergegeben werden, oder?
Papua
Hallo
Sowohl ein Lese- als auch ein Schreibzyklus setzt den INT Ausgang zurück.
Also z.B INT erkannt, daraufhin Port gelesen, INT ist wieder gelöscht.
Auch die Wiederherstellung des ursprünglichen Zustandes des Ports löscht INT.
Mit freundlichen Grüßen
Benno
Wo man nicht mit Vernunft handelt, da ist auch Eifer nichts nütze; und wer hastig läuft, der tritt fehl.
Ein König richtet das Land auf durchs Recht; wer aber viel Steuern erhebt, richtet es zugrunde
Danke Benno;
Leider habe ich das Lesen noch nicht im Griff...
Vielleicht kannst du mir da noch einen guten Tipp geben....
Oben steht mein Code zum Lesen der PCF's..
Danke Papua
Keine Ahnung. Das Problem ist der "I2C-Dialekt", den ich nicht spreche.... was noch nicht ganz funktioniert ist das Lesen aus dem PCF 8574. Habe ich da noch was vergessen im Code?
Gruß Dirk
Hallo
Ich habe keine Ahnung, wie das Programm abläuft.
Warum
?READ_ADRESSE_1+I2C_READ);
0x41 ist doch bereits die "Leseadresse".
Mit freundlichen Grüßen
Benno
Wo man nicht mit Vernunft handelt, da ist auch Eifer nichts nütze; und wer hastig läuft, der tritt fehl.
Ein König richtet das Land auf durchs Recht; wer aber viel Steuern erhebt, richtet es zugrunde
Lesezeichen