سلام به دوستان
مثلا اگه ما بخوایم چندین اطلاعات یه وسیله ای که با باس i2c ارتباط برقرار میکنه رو بخونیم اینطور عمل میکنیم :
I2cstart
(دستور نوشتن )i2cwbyte
I2cwbyte 0
I2cstop
I2cstart
(دستور خواندن) i2cwbyte
I2crbyte a , Ack
I2crbyte b , Ack
I2crbyte c , Nack
I2cstop
a و b و c نام 3 متغیر است .
در بخش اول ما ابتدا دستور نوشتن را میفرستیم و سپس آدرس آن محل که قرار است خوانده شود .
در بخش دوم ما دستور خواندن را میفرستیم و سپس مقادیر را در متغیرهای a , b , c میریزیم .
ما با دستورهای ack و nack کاری میکنیم که به صورت اتوماتیک آدرس محل اطلاعات و همچنین متغیر شیفت
داده میشود یعنی آدرس اول که 0 بود در مرحله دوم میشود 1 و همچنین متغیر اول که a بود میشود b و ...
این درسته ؟؟؟؟
حالا اگر ما بخوایم این روند و روش رو برای فرستادن اطلاعات انجام بدیم باید مثل زیر عمل شه ؟
یه جا من اینطوری دیدم نوشته بود:
i2cstart
(دستور نوشتن)i2cwbyte
i2cwbyte 0
i2cwbyte a
i2cwbyte b
i2cwbyte c
i2cstop
در اینصورت به نظر شما اطلاعات متغیر a در آدرس 0 و اطلاعات متغیر b در آدرس 1
و اطلاعات متغیر c در آدرس 2 قرار میگیره ؟
این درسته ؟
مثلا اگه ما بخوایم چندین اطلاعات یه وسیله ای که با باس i2c ارتباط برقرار میکنه رو بخونیم اینطور عمل میکنیم :
I2cstart
(دستور نوشتن )i2cwbyte
I2cwbyte 0
I2cstop
I2cstart
(دستور خواندن) i2cwbyte
I2crbyte a , Ack
I2crbyte b , Ack
I2crbyte c , Nack
I2cstop
a و b و c نام 3 متغیر است .
در بخش اول ما ابتدا دستور نوشتن را میفرستیم و سپس آدرس آن محل که قرار است خوانده شود .
در بخش دوم ما دستور خواندن را میفرستیم و سپس مقادیر را در متغیرهای a , b , c میریزیم .
ما با دستورهای ack و nack کاری میکنیم که به صورت اتوماتیک آدرس محل اطلاعات و همچنین متغیر شیفت
داده میشود یعنی آدرس اول که 0 بود در مرحله دوم میشود 1 و همچنین متغیر اول که a بود میشود b و ...
این درسته ؟؟؟؟
حالا اگر ما بخوایم این روند و روش رو برای فرستادن اطلاعات انجام بدیم باید مثل زیر عمل شه ؟
یه جا من اینطوری دیدم نوشته بود:
i2cstart
(دستور نوشتن)i2cwbyte
i2cwbyte 0
i2cwbyte a
i2cwbyte b
i2cwbyte c
i2cstop
در اینصورت به نظر شما اطلاعات متغیر a در آدرس 0 و اطلاعات متغیر b در آدرس 1
و اطلاعات متغیر c در آدرس 2 قرار میگیره ؟
این درسته ؟


دیدگاه