اطلاعیه

Collapse
No announcement yet.

آدرس دهی مستقیم به رجیستر ها در CCS

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    آدرس دهی مستقیم به رجیستر ها در CCS

    سلام به دوستان.
    توی این سایت بیشتر شما طرف ccs گرفتید ولی فکر کنم نرم افزار بیخودی باشه اونم به این دلیل که اسم ریجیستر هارو همونجوری که خودش خواسته تغییر داده . مثلا من 2 ساعت وقت صرف کردم که به ریجیستر adcon0 عدد بده نشد . اسم این ریجیسترو عوض کرده یا در مورد پورت ها نمیشه از #define
    به راحتی استفاده کرد . من فکر کنم بهترین نرم افزار mikroc باشه چون c استاندارده مثل کد ویژنه مثل مرد همه ریجیستر هارو میشناسه .
    حالا میخواستم ببینم درست میگم یا نه و نظر شما رو هم بدونم . اگه میشه مستقیم اسم ریجیسترو وارد کنیم یا تعریف #define برای پورت ها کسی میدونه
    بگید تا ما هم یاد بگیریم.
    {خلاف قوانین - حذف شد}

    #2
    پاسخ : آدرس دهی مستغیم به ریجیستر ها در ccs

    نوشته اصلی توسط آقاجون
    سلام به دوستان.
    توی این سایت بیشتر شما طرف ccs گرفتید ولی فکر کنم نرم افزار بیخودی باشه اونم به این دلیل که اسم ریجیستر هارو همونجوری که خودش خواسته تغییر داده . مثلا من 2 ساعت وقت صرف کردم که به ریجیستر adcon0 عدد بده نشد . اسم این ریجیسترو عوض کرده یا در مورد پورت ها نمیشه از #define
    به راحتی استفاده کرد . من فکر کنم بهترین نرم افزار mikroc باشه چون c استاندارده مثل کد ویژنه مثل مرد همه ریجیستر هارو میشناسه .
    حالا میخواستم ببینم درست میگم یا نه و نظر شما رو هم بدونم . اگه میشه مستقیم اسم ریجیسترو وارد کنیم یا تعریف #define برای پورت ها کسی میدونه
    بگید تا ما هم یاد بگیریم.
    سلام. اولاً فکر میکنم حق با شماست که میگید بیشتر با CCS کار میکنند. و ثانیاً باز هم باهاتون موافقم که CCS کامپایلر بیخودیه. این کامپایلر واقعاً افتضاحه . در حالی به عنوان یک کامپایلر C مطرح شده که هیچ کدوم از استانداردهای زبان C توش رعایت نشده. و کار با رجیسترها توش یهکم مشکله. به هرحال برای کار مستقیم با رجیسترها فکر میکنم باید از دوتابع من درآوردی این کامپایلر استفاده کنید:

    set_timer0(0);
    x=get_timer0();
    تابع اولی به تایمر0 عدد دلخواه (در اینجا 0) میده و با تابع دومی رجیستر رو میخونیم. برای کار با همه رجیستر ها باید به این ورت عمل کنید. البته من خودم با این کامپایلر زیاد کار نکردم و مطمئن نیستم این راه مقداردهی ، درست باشه.

    دیدگاه


      #3
      پاسخ : آدرس دهی مستغیم به ریجیستر ها در ccs

      سلام دوستان
      من هم با CCS این مشکلات رو داشتم
      میتونید از MPLAB C18 یا Hi-Tech PICC استفاده کنید
      هردو از زبان C استاندارد پشتیبانی میکنند و مورد تأیید Micrichip هستند
      موفق باشید
      شما زندگي مي کنيد من بازي ميکنم، زندگي شما را; زندگي بازي خدا و يک عروسکِ گِلي ست

      دیدگاه


        #4
        پاسخ : آدرس دهی مستقیم به رجیستر ها در ccs

        نوشته اصلی توسط آقاجون
        سلام به دوستان.
        توی این سایت بیشتر شما طرف ccs گرفتید ولی فکر کنم نرم افزار بیخودی باشه اونم به این دلیل که اسم ریجیستر هارو همونجوری که خودش خواسته تغییر داده . مثلا من 2 ساعت وقت صرف کردم که به ریجیستر adcon0 عدد بده نشد . اسم این ریجیسترو عوض کرده یا در مورد پورت ها نمیشه از #define
        به راحتی استفاده کرد . من فکر کنم بهترین نرم افزار mikroc باشه چون c استاندارده مثل کد ویژنه مثل مرد همه ریجیستر هارو میشناسه .
        حالا میخواستم ببینم درست میگم یا نه و نظر شما رو هم بدونم . اگه میشه مستقیم اسم ریجیسترو وارد کنیم یا تعریف #define برای پورت ها کسی میدونه
        بگید تا ما هم یاد بگیریم.
        سلام دوست گرامی
        شما با استفاده از دو دستور #byte و #bit می توانید به رجیستر های میکرو و حتی تک تک بیت های هریک از رجیستر ها دسترسی داشته باشید
        به راهنمای CCS مراجعه فرمایید
        به عنوان مثال برای رجیستر Adcon0 برای میکروکنترلر PIC16f877A که در آدرس 0x1F قرار دارد (صفحع 17 دیتاشیت را مطالعه فرمایید) باید دستور زیر را به کار ببرید :
        #byte adcon0=0x1F
        و از این به بعد می توانید به راحتی به رجیستر مزبور مقدار دهی نمایید . مانند : adcon0=6
        برای دسترسی به یک بیت از رجیستر می توانید از دستور #bit استفاده نمایید . به عنوان مثال برای تعریف بیت شماره 0 این رجیستر به نام ADON داریم :
        #bit ADON=0x1F.0
        اگر سوالی داشتید بفرمایید
        جدیدترین ویرایش توسط شاهرخ مستقیمی; ۱۰:۴۴ ۱۳۹۵/۰۵/۳۰.

        دیدگاه

        لطفا صبر کنید...
        X