12-TWI_M24C02-Library (ATMega)

-diese Library dient zum ansteuern eines M24C02 seriellen EEprom ICs
von einem externen Modul das per TWI-Bus an die CPU angeschlossen ist
(z.B. das Modul von myAVR “myTWI EEprom”)

-es koennen bis zu 8 M24C02 gleichzeitig angesteuert werden
(Vorsicht … alle M24C02 benoetigen eine eindeutige Hadrware-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
void EXT_INIT_24C02(void);
void EXT_24C02_WRITE(ADR_24C02 twi_adr, char adresse, char wert);
char EXT_24C02_READ(ADR_24C02 twi_adr, char adresse);

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
61
62
63
64
//-----------------------------------------------------------------------------
// Title      : bsp_ub021_mk3_ext_24c02
//-----------------------------------------------------------------------------
// Funktion   : Externes TWI-Modul : serielles EEprom (2kBit)
// Schaltung  : myAVR MK3 + myTWI-AddOn-EEprom
//-----------------------------------------------------------------------------
// 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_24C02.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 EEprom muss auf ADR A2h eingestellt sein
// - das Programm schreibt ein Byte ins externe EEprom,
//   liest es danach wieder aus und zeigt es an den LEDs an
// - bei einem Fehler wird 0x55 bzw. 0xAA angezeigt
//-----------------------------------------------------------------------------
int main (void)
{
  char n=0;
 
  EXT_INIT_24C02(); // init vom externen EEprom
  MK3_INIT_LED(); // init der LEDs
 
  // in die Adresse 0x18 wird der Wert 0x31 geschrieben
  EXT_24C02_WRITE(ADR1_24C02,0x18, 0x31);
 
  if(EXT_24C02_OK==true) {
    // wenn das schreiben erfolgreich war
 
    // auslesen der Adresse 0x18
    n=EXT_24C02_READ(ADR1_24C02,0x18);
 
    if(EXT_24C02_OK==true) {
      // Anzeigen des Wertes
      MK3_LED_ZAHL(n);
    }
    else {
      // 0xAA wird als FEHLER angezeigt
      MK3_LED_ZAHL(0xAA);
    }
  }
  else {
    // 0x55 wird als FEHLER angezeigt
    MK3_LED_ZAHL(0x55);
  }
 
  while (true)
  {
    // hier wird nichts gemacht
  }
  return 0;
}

Hier die Library zum download :

UB_EXT_TWI_24C02_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.