Salut à tous !
Pour mon projet BTS, je dois, via un PIC18F4550, contrôler une EEPROM 24C16B via une liaison I2C ...
Mais je n'ai jamais utiliser cette liaison et je patauge un peu. Pour l'instant, j'aimerais déjà pouvoir écrire une donnée sur la mémoire ( 24C16B), et ensuite la lire, et pourquoi pas l'afficher sur l'afficheur graphique !
Pour l'instant voilà ce que donne mon programme :
Code://///////////////////////////////////////////////////////////////////////// // Programme gestion Afficheur + Mémoire // /////////////////////////////////////////////////////////////////////////// #include "18F4550.h" #use delay (clock=20000000) #use i2c(master, sda=PIN_B0, scl=PIN_B1) #fuses NOWDT,XT, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT #define FAST_GLCD #include "HDM64GS12.c" #include "GRAPHICS.c" #include "Images.h" int donnee; void main() { set_tris_A(0b11111000); set_tris_B(0b00000000); set_tris_C(0b01111111); set_tris_D(0b00000000); set_tris_E(0b1111); ////////////////////////////////////////////////////////////////////////// // Gestion afficheur // ////////////////////////////////////////////////////////////////////////// glcd_init(1); delay_ms(1000); glcd_fillscreen(0); glcd_panda(); glcd_update(); delay_ms(3000); glcd_fillscreen(0); glcd_update(); ///////////////////////////////////////////////////////////////////////// // Gestion i2c // ///////////////////////////////////////////////////////////////////////// while (1) { i2c_start(); i2c_write(0b10100000); // Mode écriture i2c_write(0b10000000); i2c_write(0b00001111); i2c_write(0x5A); i2c_stop(); i2c_start(); i2c_write(0b10100000); i2c_write(0b10000000); i2c_write(0b00001111); i2c_start(); i2c_write(0b10100001); // Mode lecture donnee = i2c_read(1); // 0 = pas d'acknowledge 1 = acknowledge i2c_stop(); } }
Si quelqu'un pourrait m'aider, ça serait vachement sympa
Merci par avance, et bonne soirée !
-----