13-TWI_PCA9555-Library (ATMega)

-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 :

UB_EXT_TWI_PCA9555_v102


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert