شما قبلا زبان c کار کردین؟اگه نه پیشنهاد میکنم کتاب جعفر نژاد قمی رو بخونید
مثلا میشه به جای یه متغیر بولین ازش استفاده کرد یا مثلا وضعیت یک رخداد یا یک بیت خاص از یک ریجیستر رو در خودش نگهداری کنه
مثلا دراثر یک event خاص این متغیر مقدار 1 بگیره و در یک جای دیگر در یک شرط این متغییر چک بشه و یک عمل خاصی انجام بشه
با سپاس
ببین دوست من خیلی چیز ها هست اما کاربرد چندانی نداره. مثلا متغییر بیت اصلا تو keyword های سی نیست و تو کد ویژن فقط تعریف میشه. البته تو سی++ متغیر بول داریم که شبیه به این هست.
کد ویژن متغیر های بیتی رو روی ریجستر های working تعریف میکنه و این رجیستر ها نسبت به رم میکرو سرعت بالاتری دارن. پس بهتره برای کار های مهم تر از این ها استفاده کنیم.
استفاده از این سیستم موردی نداره اما علاوه بر موردی که گفتم تو کامپایلر های دیگه کدتون نمیشه کامپایل بشه.چون دستور بیت توی دستورات سی نیست و فقط تو کدویژن هست. من ترجیح میدم همیشه از متغیر های 8 بیتی برای فلگ هایی که تو برنامه مورد نیاز هست استفاده کنم.یکم که دستتون راه بیفته میتونید 8 تا فلگ رو توی 1 متغیر 8 بیتی جا کنید. این روش استاندارد زبان سی هست.
این 2 تا دستوری هم که گفتید فکر کنم برای ادرس دهی رجیستر ها استفاده میشد.کلا این 2 تا دستور رو تو هدر فایل های میکرو میبینید.تو برنامه اصلی کاربرد خاصی نداره.
کلا بهتره به دستورات خاص کد ویژن عادت نکنین
شاهین جان هم لطف کردند توضیح دادن در مورد sfrb و sfrw فقط من یه مقدار بیشتر براتون بازش میکنم:
این دستور علاوه بر اینکه یه نام به ریجیستر اختصاص میده یه فایده دیگه هم داره
همونطور که میدونید خیلی از ریجیستر ها 16 بیتی هستند و در حالت عادی باید در دو مرحله به این ریجیستر ها مقدار بدین
ولی با تعریف ریجیستر ها با sfrw میتونین به صورت 16 بیتی بهشون دسترسی داشته باشین و در یک مرحله ازشون بخونید یا روشون بنویسین
با سپاس
دیدگاه