papuadive
27.03.2009, 20:48
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);
};
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);
};