-diese Library dient zum ansteuern eines PCA9555 16bit IO-Port ICs
von einem externen Modul das per TWI-Bus an die CPU angeschlossen ist
(z.B. das Modul von myAVR “myTWI PortExpander”)
-es koennen bis zu 8 PCA9555 gleichzeitig angesteuert werden
(Vorsicht … alle PCA9555 benoetigen eine eindeutige Hardware-Adresse)
-das externe Modul ist an den TWI-Bus angeschlossen,
aus dem Grund wird auch der TWI-Treiber
“MK3_2560_TWI.h” benoetigt
Funktionen :
1 2 3 4 5 6 7 | void EXT_INIT_PCA9555(void); // zum initialisieren des PCA9555 void EXT_PCA9555_CONF_PORTA(ADR_PCA9555 twi_adr,char io_conf); // zum Konfigurieren von Port-A void EXT_PCA9555_CONF_PORTB(ADR_PCA9555 twi_adr,char io_conf); // zum Konfigurieren von Port-B char EXT_PCA9555_READ_PORTA(ADR_PCA9555 twi_adr); // zum lesen von Port-A char EXT_PCA9555_READ_PORTB(ADR_PCA9555 twi_adr); // zum lesen von Port-B void EXT_PCA9555_WRITE_PORTA(ADR_PCA9555 twi_adr, char wert); // zum schreiben von Port-A void EXT_PCA9555_WRITE_PORTB(ADR_PCA9555 twi_adr, char wert); // zum schreiben von Port-B |
Beispiel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | //----------------------------------------------------------------------------- // Title : bsp_ub024_mk3_ext_pca9555 //----------------------------------------------------------------------------- // Funktion : Externes TWI-Modul : 16bit IO/PortExpander // Schaltung : myAVR MK3 + myTWI-AddOn-PortExpander //----------------------------------------------------------------------------- // Prozessor : ATMega2560 // Takt : 16 MHz // Sprache : C // Date : 20.11.2010 // Version : 1.1 // Autor : UB //----------------------------------------------------------------------------- #define F_CPU 16000000 #include <avr/io.h> #include <ub_ext_module/EXT_TWI_PCA9555.h> #include <ub_mk3_2560/MK3_2560_LED.h> //----------------------------------------------------------------------------- // Hinweis : // > Quick-Jumper Port-L muss gesetzt sein // > externes TWI-Modul muss am Stecker rechts unten angeschlossen sein // > TWI-Port-Pins (D0+D1) werden benoetigt // > Das PCA9555 muss auf ADR 40h eingestellt sein // - das Programm liest zyklisch den externen Port-A ein // und gibt das Ergebnis an den LEDs wieder aus // - bei einem Fehler wird 0x55 angezeigt //----------------------------------------------------------------------------- int main (void) { char wert=0; unsigned int p=0; MK3_INIT_LED(); // init der LEDs EXT_INIT_PCA9555(); // init vom externen PCA9555 // externes Port-A als 8bit Eingang definieren EXT_PCA9555_CONF_PORTA(ADR0_PCA9555,PORT_IN); while (true) { // einlesen vom externen Port-A wert=EXT_PCA9555_READ_PORTA(ADR0_PCA9555); if(EXT_PCA9555_OK==true) { // wenn alles ok // anzeigen des wertes MK3_LED_ZAHL(wert); } else { // 0x55 wird als FEHLER angezeigt MK3_LED_ZAHL(0x55); } for(p=0;p<60000;p++) { // kleine Pause } } return 0; } |
Hier die Library zum download :