mình có đoạn code ghi vào eeprom at24c02b như sau:
VÀ đoạn code đọc từ eeprom :
k hiểu tại sao khi nạp vào mạch thật( mình nạp chương trình ghi vào atmega8 trước để ghi dữ liệu,sau đó mới nạp lại code đọc để đọc từ eeprom và xuất ra portd nhưng nó xuất ra k giống như dữ liệu đã ghi vào)?
và cho mình hỏi những chỗ có "????" trong đoạn code trên mình đã config các port đúng k?
à 3 chân A1,A2,A0 mình nối mass có ổn ko?
Thanks!!!
Code:
#asm .equ __i2c_port=0x15 ;PORTC .equ __sda_bit=0 .equ __scl_bit=1 #endasm #include <i2c.h> *********************** void main(void) { DDRC=0x7F; //2 chân scl và sda la output????? i2c_init(); i2c_start(); i2c_write(0xa0); //dia chi eeprom i2c_write(0x01); //dia chi o nho can ghi i2c_write(0x11); // du lieu can ghi i2c_stop(); }
Code:
#asm .equ __i2c_port=0x15 ;PORTC .equ __sda_bit=0 .equ __scl_bit=1 #endasm #include <i2c.h> void main(void) { unsigned char result; ************************** DDRC=0x02; //chân scl là output,sda là input????? DDRD=0xFF; //xuất dữ liệu đọc ra portd i2c_init(); i2c_start(); i2c_write(0xa0); i2c_write(0x01); i2c_start(); i2c_write(0xa1); result=i2c_read(0); i2c_stop(); PORTD=result; }
và cho mình hỏi những chỗ có "????" trong đoạn code trên mình đã config các port đúng k?
à 3 chân A1,A2,A0 mình nối mass có ổn ko?
Thanks!!!
Comment