PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : 0 کردن یک بیت در زبان c



hamed.b3269
28-07-2014, 18:41
سلام.
اگه من بخوام که فقط یک بیت در یک رجیستر رو 0 کنم به طوری که بقیه بیت ها در همون وضعیت قبلی خود باقی بمانند باید چه کدی بنویسم. مثلا بخوام فقط بیت 5 از رجیستر x رو 0 کنم و به بقیه بیت ها کاری نداشته باشم.
حالا اگه بخوام فقط یک بیت در یک رجیستر 0 باشه و بقیه بیت ها همه 1 باشند باید چه کدی بنویسم.

behnam6500
28-07-2014, 22:07
register &= ~(1<<bitNo)

sobhan537
28-07-2014, 22:12
سلام
مثلا اگه بخواید بیت های 0 و 4 و 10 و 15 و 24 از پورت x رو 1 کنید و بقیه بیتها دروضعیت قبلی خودشون باقی بمانند؛ میتونید از کد زیر استفاده کنید:

portx=(1 << 0)|(1 << 4)|(1 << 10)|(1 << 15)|(1 << 24)

esisafa
29-07-2014, 01:34
دوستان دو روش گفتن ولی یکی برای avr بود و اون یکی برای arm بود. شما با کدوم میکرو کار میکنید؟

hamed.b3269
29-07-2014, 11:56
من با arm کار میکنم.

esisafa
29-07-2014, 19:11
پس از پست 3 استفاده کنید و به جای portx از نام رجیستر صفر کردن پورت استفاده کنید

M3R
30-07-2014, 15:52
سلام
مثلا اگه بخواید بیت های 0 و 4 و 10 و 15 و 24 از پورت x رو 0 کنید و بقیه بیتها دروضعیت قبلی خودشون باقی بمانند؛ میتونید از کد زیر استفاده کنید:

portx=(1 << 0)|(1 << 4)|(1 << 10)|(1 << 15)|(1 << 24)

سلام
این دستور مگه ریجسترهای 0 و 4 و 10 و 15 و 24 از پورت x رو 1 نمیکنه؟؟

sadmonew
31-07-2014, 00:51
سلام
این دستور مگه ریجسترهای 0 و 4 و 10 و 15 و 24 از پورت x رو 1 نمیکنه؟؟
سلام
بله مهندس درسته، همین کار را انجام میده.

M3R
31-07-2014, 10:51
آخه شما گفتید 0 میکنه!

آقا حامد هم میخواست 0 بشه. واسه همین پرسیدم

Sent from my Lumia 620 using Tapatalk