NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3593 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 7 از 7

موضوع: مشکلی در نوشتن دستورات در keil

  1. #1
    عضو جدید
    تاریخ عضویت
    Apr 2014
    نوشته ها
    10
    تشکر
    8
    تشکر شده 0 بار در 0 پست

    پیش فرض مشکلی در نوشتن دستورات در keil

    سلام دوستان من تازه میخوام با arm کار کنم.یه دستوری تو keil نوشتم که میخوام پین های 0 تا 8 پورت صفر رو 2تا 2تا یک کنم.مثلا میخوام پورت 0 با 8 یک شه 1 با 7....حلقه زیر رو نوشتم ولی درس کار نمیکه.میشه راهنمایی کنین مشکلم چیه؟مرسی
    ;float k=1
    float a=511
    (while(k<=3
    }
    ;LPC_GPIO0->FIOSET=a/2+3/2*k
    ;()delay_1s
    ;LPC_GPIO0->FIOCLR=a/2+3/2*k
    ;()delay_1s
    ;++k
    ;a=a/2
    }
    ویرایش توسط arashh : 11-07-2014 در ساعت 14:18

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2

  4. تشکرها از این نوشته :


  5. #3
    عضو جدید
    تاریخ عضویت
    Apr 2014
    نوشته ها
    10
    تشکر
    8
    تشکر شده 0 بار در 0 پست

    پیش فرض

    مرسی ولی a رو با float هم تعریف کردم بازم درس نشد

  6. #4
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض

    با سلام شما میتونید یه متغیر تعریف کنید از جنس اعشاری بعد بیاین مقدار a/2+3/2*k رو تو اون قرار بدین مثلا
    p=a/2+3/2*k;
    بعد p رو در خروجی پورت قرار بدین

  7. تشکرها از این نوشته :


  8. #5
    عضو جدید
    تاریخ عضویت
    Apr 2014
    نوشته ها
    10
    تشکر
    8
    تشکر شده 0 بار در 0 پست

    پیش فرض

    مرسی هیمن کارو کردم ولی به جای اینکه پین 0 با 8 یک بشه 1 با 7...اول پین 8 یک شد بعدش پین 7 با پین 0 بعدش پین 6 با 2 بعدشم از حلقه خارج شد.میشه یه راه راحتتری بهم بگین که چجوری میشه 2 تا پینو با هم یک کرد؟مرسی

  9. #6
    کاربر فعال amiray آواتار ها
    تاریخ عضویت
    Jul 2010
    نام
    عباس یکانلو
    نوشته ها
    351
    تشکر
    187
    تشکر شده 360 بار در 187 پست

    پیش فرض دستور شیفت (<<)

    به نظر من بهتره از این دستور استفاده کنید برای روشن کردن یک بیت
    کد:
    1<<i
    این دستور عدد یک رو به اندازه i واحد به چپ شیفت میده مثلا اگه i=3 باشه این دستور معادل عدد 1000 در مبنای دو هست.
    حالا اگه بخوایم پین چهارم از پورت صفر رو 1 کنیم میتونیم براحتی بنویسیم:
    کد:
    LPC_GPIO0->FIOSET=1<<4;
    برای پاک کردن از همین روش میشه استفاده کرد حالا با این دستور میشه چند پین دلخواه رو هم یک کرد به صورت زیر:
    کد:
    LPC_GPIO0->FIOSET=(1<<8)|(1<<0)|(1<<3);
    دستور بالا پین های 0و3و8 رو یک میکنه میتونید براحتی تحلیل کنید.
    با دستور بالا خیلی راحتتر میتونید فلاشر مورد نظرتون رو بسازید

  10. تشکرها از این نوشته :


  11. #7
    عضو جدید
    تاریخ عضویت
    Apr 2014
    نوشته ها
    10
    تشکر
    8
    تشکر شده 0 بار در 0 پست

    پیش فرض

    مرسی دوستان حل شد

موضوعات مشابه

  1. پاسخ: 0
    آخرين نوشته: 05-05-2014, 11:54
  2. دستورات keil
    توسط reihaneh در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 2
    آخرين نوشته: 13-08-2012, 15:18
  3. دستورات keil
    توسط reihaneh در انجمن AT91 series (ATMEL)
    پاسخ: 0
    آخرين نوشته: 08-08-2012, 20:00
  4. دستورات بیتی keil
    توسط آقاجون در انجمن LPC series (NXP)
    پاسخ: 3
    آخرين نوشته: 18-06-2012, 12:36
  5. نشناختن دستور lcd_init در keil!!!!!
    توسط micro-m در انجمن AT91 series (ATMEL)
    پاسخ: 4
    آخرين نوشته: 06-11-2010, 09:58

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •