سلام دوستام . میخواستم i2c رو راهاندازی کنم(بدون کد ویزارد و توابع خود کد ویژین ) هر کاری کردم نشد چند خط کد هست تو کتب مختلف که اصلا متوجه نمیشم میخواستم اگه میشه کمک کنید
در اینجا اون & بیتی به چه دردی میخوره؟ اصلا & اینجا به چه صورت اجرا میشه ؟ من تکیشو دیده بودم مثل: while(PINC & 0x04) که اگه پورت مورد نظر رو بیت 2 رو روشن میکردم تو حلقه while میرفت اما این که مساوی چیزی باشه تا حالا برخورد نکرده بودم
توی کد پایین اگه اینتراپت 1 نشه میاد و وضیت رو چک میکنه . مگه نباید اول اینتراپت یک شه تا وضیت رو چک کنیم؟؟؟ببینیم که اسلیو چی کار کرده؟
در مورد & تا اونجا که میدونم میاد تک تک بیتارو با هم مقایسه میکنه مثلا
0X05&0X04 =0X04
اگه درست گفته باشم !!!
اما اینجا معنیشو متوجه نمیشم . ممنون میشم اساتید کمک کنن
یه سوال دیگه میشه از کدهای زیر به جای بالاییا استفاده کرد؟
کد:
if(twsr&0xf8) =! 0x80) error();
توی کد پایین اگه اینتراپت 1 نشه میاد و وضیت رو چک میکنه . مگه نباید اول اینتراپت یک شه تا وضیت رو چک کنیم؟؟؟ببینیم که اسلیو چی کار کرده؟
کد:
while(!TWCR&0x80); if((twsr & 0xf8 != 0x08) error(); error : nop //
0X05&0X04 =0X04
اگه درست گفته باشم !!!
اما اینجا معنیشو متوجه نمیشم . ممنون میشم اساتید کمک کنن
یه سوال دیگه میشه از کدهای زیر به جای بالاییا استفاده کرد؟
کد:
if(twsr != 0x80) error(); ///////////////////////////////// while(TWCR!=0x80);




نکته دوم از کتابخونه استفاده کن. راحتتری نیاز نیست چرخ رو دوباره اختراع کنی
اما واسه علم خودت بد نیست که بفهمی کتابخونه های دیگه چیکار کردن.نکته سوم بهتر نیست با لحنی ملایم تر سوال کنی؟درسته من تازه وارد هستم اما چیزهای خیلی کمی بلدم که میتونه به خیلیا کمک کنه!
.من با i2c arm زیاد سروکله زدم نوشتن نسبتا راحته اما خوندن اونم به اون روشی که من گفتم در بالا بسیار مشکله.خودم هم از یک کتابخونه استفاده کردم که همون جوابی رو میداد که من با رجیستر نویسی گرفتم.اگه آرمت 1768 هستش کتاب آقای خوش باطن بسیار کمکت میکنه. :nice:
دیدگاه