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