اطلاعیه

Collapse
No announcement yet.

اسم گذاری بر روی پین های میکروکنترلر در زبان c++

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    اسم گذاری بر روی پین های میکروکنترلر در زبان c++

    سلام
    من نزدیک به 60 پایه رو میخوام استفاده کنم توی میکروکنترلر 2560 و تعداد ورودی و خروجی ها زیاد شدن ، میخواستم برای بهتر نظم دادن به برنامه ام اسم های پین ها رو عوض کنم و متناسب با عملکردشون (متصل شده به موتور یا ال ای دی یا سنسورو یا ...) نامگذاری کنم و صفر و یک کنمشون یا توی شرط باشن دقیقا مثل .PORTX.Y یا PINX.Y .مثلا اگر led به پایه b.2 متصل شده باشه ، میخوام که بنویسم :led=1 یا بر فرض مثال
    if(led==1) portb.1=0;
    این به عنوان مثال گفته شده.
    یادم نمیاد دقیقا از const استفاده میکردیم یا define یا .... ؟
    ممنون از دوستانی که جواب میدن و راهنمایی میکنن

    #2
    پاسخ : اسم گذاری بر روی پین های میکروکنترلر در زبان c++

    نوشته اصلی توسط parsezan نمایش پست ها
    سلام
    من نزدیک به 60 پایه رو میخوام استفاده کنم توی میکروکنترلر 2560 و تعداد ورودی و خروجی ها زیاد شدن ، میخواستم برای بهتر نظم دادن به برنامه ام اسم های پین ها رو عوض کنم و متناسب با عملکردشون (متصل شده به موتور یا ال ای دی یا سنسورو یا ...) نامگذاری کنم و صفر و یک کنمشون یا توی شرط باشن دقیقا مثل .PORTX.Y یا PINX.Y .مثلا اگر led به پایه b.2 متصل شده باشه ، میخوام که بنویسم :led=1 یا بر فرض مثال
    if(led==1) portb.1=0;
    این به عنوان مثال گفته شده.
    یادم نمیاد دقیقا از const استفاده میکردیم یا define یا .... ؟
    ممنون از دوستانی که جواب میدن و راهنمایی میکنن
    سلام
    فرض کنید من پین 0 از پورت A یک AVR رو میخوام به یک LED متصل کنم. به این صورت این کارو میکنیم:


    #define LED_PORT PORTA
    #define LED_PIN 0


    #define sbi(reg, bit) reg|=(1<<bit)
    #define cbi(reg, bit) reg&=~(1<<bit)

    اون دوتا شبه تابع هم برای صفر و یک کردن نوشتم. برای یک کردن مینویسیم:
    sbi(LED_PORT, LED_PIN);

    برای صفر کردن هم از cbi میشه استفاده کرد. کافیه شما بسته به نیاز و سلیقتون شبه تابع های خودتون رو بنویسید.
    جدیدترین ویرایش توسط hossein.m98; ۱۶:۴۰ ۱۳۹۷/۰۷/۰۷.

    دیدگاه


      #3
      پاسخ : اسم گذاری بر روی پین های میکروکنترلر در زبان c++

      نوشته اصلی توسط parsezan نمایش پست ها
      سلام
      من نزدیک به 60 پایه رو میخوام استفاده کنم توی میکروکنترلر 2560 و تعداد ورودی و خروجی ها زیاد شدن ، میخواستم برای بهتر نظم دادن به برنامه ام اسم های پین ها رو عوض کنم و متناسب با عملکردشون (متصل شده به موتور یا ال ای دی یا سنسورو یا ...) نامگذاری کنم و صفر و یک کنمشون یا توی شرط باشن دقیقا مثل .PORTX.Y یا PINX.Y .مثلا اگر led به پایه b.2 متصل شده باشه ، میخوام که بنویسم :led=1 یا بر فرض مثال
      if(led==1) portb.1=0;
      این به عنوان مثال گفته شده.
      یادم نمیاد دقیقا از const استفاده میکردیم یا define یا .... ؟
      ممنون از دوستانی که جواب میدن و راهنمایی میکنن
      سلام
      من تو اتمل استدیو اینطوری ماکرو می نویسم:

      //================Easy access to bits=====================)
      #define set_bit(Register, Bit) (Register |= (1<<Bit))
      #define clr_bit(Register, Bit) (Register &= ~(1<<Bit))
      #define tog_bit(Register, Bit) (Register ^= (1<<Bit))
      #define read_bit(Register,Bit) ((Register >> Bit) & 1)
      //========================================================)



      خب همون طور که دوستمون گفتن شما می تونی مثلا تعیین کنی که ال ای دی به پایه 3 وصله و بعدش:

      #define led 3

      set_bit(PORTC, led);

      ارادت داریم!


      دیدگاه

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