پاسخ : سوالات برنامه نویسی در کامپایلر CCS
آقا من فهمیدم مشکل از if نیستش و مشکل از تابع خواندن از رم خارجی هستش. اینم برنامه ای که برای تستش نوشتم.
شما اگر برنامه زیر روی یه eeprom خالی , یعنی همه بیتاش 255 باشن تست کنید میبینید که هر از چند گاهی به جای اینکه بخونه از eeprom اشتباه توش مینویسه!! اینم بگم که وقتی وقفه تایمر ایجاد میشه این مشکل پیش میادش و در غیر این صورت مشکلی نداره
آقا من فهمیدم مشکل از if نیستش و مشکل از تابع خواندن از رم خارجی هستش. اینم برنامه ای که برای تستش نوشتم.
کد:
BYTE read_ext_eeprom(long int address) { BYTE data; while(!ext_eeprom_ready()); i2c_start(); i2c_write((0xa0|(BYTE)(address>>7))&0xfe); i2c_write(address); i2c_start(); i2c_write((0xa0|(BYTE)(address>>7))|1); data=i2c_read(0); i2c_stop(); return(data); }
دیدگاه