ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

نمایش نتایج: از 1 به 9 از 9
  1. #1
    2016/08/27
    17
    6

    مقدار دهی پورت avr

    سلام
    اگه بخوام شماره هر پورت مقدار متغییر i باشه چطور باید متغییر i رو بجای شماره پورت بذارم

    کد PHP:
     int i=0;    
          for(
    i=0;i<=4;i++){
          
          
            
    PORTB.?=0B11
            
    delay_ms(1000);
          
          } 
    اگه اینجوری بذارم خطای کدنویسی میده
    PORTB.i=0b11
  2. #2
    2015/08/27
    1,751
    1,000

    پاسخ : مقدار دهی پورت avr

    نقل قول نوشته اصلی توسط sobhdam_e

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    اگه بخوام شماره هر پورت مقدار متغییر i باشه چطور باید متغییر i رو بجای شماره پورت بذارم

    کد PHP:
     int i=0;    
          for(
    i=0;i<=4;i++){
          
          
            
    PORTB.?=0B11
            
    delay_ms(1000);
          
          } 
    اگه اینجوری بذارم خطای کدنویسی میده
    PORTB.i=0b11
    سلام به شما
    دوست عزیز i نمیتونه متغیر باشه اما اگه بخواید از نوع ثابت ها تعریفش کنید مشکلی نداره
  3. #3
    2016/08/27
    17
    6

    پاسخ : مقدار دهی پورت avr

    خوب اگه بخوام بجای دادن دستی شماره پورت از مقدار i حلقه استفاده کنم چیکار باید بکنم
  4. #4
    2013/03/18
    babol
    1,387
    653

    پاسخ : مقدار دهی پورت avr

    باید از if و یک متغییر استفاده کنید.
    مثلا بگین اگه متغییر این عدد بود ، شما بیا پورت مورد نظر رو مساوی با این ثابت قرار بده.
    به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
    (پيش به سوي هدف)
  5. #5
    2016/07/04
    272
    271

    پاسخ : مقدار دهی پورت avr

    از یکی از دوستان شنیدم که از ارایه باید استفاده کرد اما :
    -1_نفهمیدم ینی چی!
    -2_کاربردش برا مقدار دهی پورت نبود!
    .
    .
    .شما برای هر پورت یه شرط بزار که اگه مثلا i==2 شد پورت 2 رو یک کنه
    .
    اگه برای هر پورت همین کار کنی نهایتا میشه با یه متغیر همه ی پورت هاتو کنترل کنی
    .
    __حالا این متغیر رو میتونی از هر طریقی دریافت کنی_چه کی پد چه وای فای چه بلوتوث چه هرچی دیگه...
  6. #6
    2008/09/12
    Isfahan
    1,040
    235

    پاسخ : مقدار دهی پورت avr

    سلام ، من با یک مثال ساده از کیپد یک نمونه از چیزی که لازم دارید و تعریف اصولی ماکروها را بصورت خیلی کلی توضیح میدم ، هر جایی که نا مفهوم بود بفرمایید تا توضیح مخصوص اون خط را بنویسم

    ابتدا این ماکروها را به اینصورت تعریف کنید:

    کد:
    #ifndef MYUTILS_H
     #define MYUTILS_H
    
     #define _CONCAT(a,b) a##b
     #define PORT(x) _CONCAT(PORT,x)
     #define PIN(x) _CONCAT(PIN,x)
     #define DDR(x) _CONCAT(DDR,x)
    
    #endif
    سپس خارج از بدنه اصلی برنامه اینطور بنویسید:
    کد:
    #define KEYPAD A
    کد:
    #define KEYPAD_PORT PORT(KEYPAD)
    #define KEYPAD_DDR     DDR(KEYPAD)
    #define KEYPAD_PIN     PIN(KEYPAD)
    و حالا اینطور تابع را می نویسیم:

    کد:
    uint8_t GetKeyPressed()
    {
        uint8_t r,c;
    
        KEYPAD_PORT|= 0X0F;
    
        for(c=0;c<3;c++)
        {
            KEYPAD_DDR&=~(0X7F);
    
            KEYPAD_DDR|=(0X40>>c);
            for(r=0;r<4;r++)
            {
                if(!(KEYPAD_PIN & (0X08>>r)))
                {
                    return (r*3+c);
                }
            }
        }
    
        return 0XFF;//Indicate No keypressed
    }


    اضافه می کنم که دستور زیر (نوشتن شارپ # کنار هم ) باعث میشه دقیقا پارامترهایی که استفاده میکنیم به هم بچسبند و هنگام استفاده میتونیم بجای a و b از یک متغیر استفاده کنیم (متغیر میتونه نشانگر نام پورت یا شماره پین باشه)

    کد:
     #define _CONCAT(a,b) a##b
    ویرایش توسط سعید خیری : 2016/09/24 در ساعت 00:33
    Reveng will surely come... Your hard time are ahead
    // - - - - - - - - - -
    برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
    // - - - - - - - - - -
    اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
    // - - - - - - - - - -
  7. #7
    2015/08/27
    1,751
    1,000

    پاسخ : مقدار دهی پورت avr

    سلام و درود به شما
    با تشکر از شما به خاطر اطلاعات خوبتون
    چند تا سوال برام پیش اومده
    اگه ممکنه با ذکر جزیات بگید تا من خووووب ok بشم
    1_MYUTILS_H یعنی چی؟ و چرا این رو قرار میدیم؟ چیکار میکنه ؟
    2_
    _CONCAT(a,b) a##b این رو تا حالا ندیدم چیکار میکنه دقیقا ؟ اون # که گذاشتین گفتین دو متغیر رو به هم میچسبونه یعنی اگه a=1 و b=2 باشه میشه عدد 12 ؟؟؟ من کلا تو این قسمت گیج شدم و دقیق نمیدونم دارم چی میگم و . . . لطفا کالبد شکافی کنید
    3_
    PORT(x) _CONCAT(PORT,x) این چیکار میکنه ؟ پرانتزها برای چیه و . . .



    با تشکر از مطالب خوبتون و وقتی که میزارید
  8. #8
    2015/01/24
    Telegram: @Ashit_Axar
    395
    297

    پاسخ : مقدار دهی پورت avr

    بهترین راه استفاده از Bit Mask ها هستند
    کد PHP:
    /* Define bit macros, note that they are similar to the I/O macros*/
    #define SETBIT(port, pin) (port |= (1 << pin)) /* Set bit pin in byte port*/
    #define CLEARBIT(port, pin) (port &= (~(1 << pin))) /* Clear bit pin in byte port*/
    #define CHECKBIT(port, pin) (port & (1 << pin)) /* Check bit pin in byte port*/
    #define TOGGLEBIT(port, pin) (port ^= (1 << pin)) /* toggle bit pin in byte port*/

    typedef unsigned char ubyte;

    int main(){
        
    ubyte i;
        while(
    1){
            for(
    08i++) SETBIT(PORTBi);
        }
        return 
    0;

    Efficient C Coding For AVR
    Application Notes: AVR035
    ویرایش توسط ASHIT AXAR : 2016/09/24 در ساعت 09:47
  9. #9
    2008/09/12
    Isfahan
    1,040
    235

    پاسخ : مقدار دهی پورت avr

    نقل قول نوشته اصلی توسط rezamajdi

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام و درود به شما
    با تشکر از شما به خاطر اطلاعات خوبتون
    چند تا سوال برام پیش اومده
    اگه ممکنه با ذکر جزیات بگید تا من خووووب ok بشم
    1_MYUTILS_H یعنی چی؟ و چرا این رو قرار میدیم؟ چیکار میکنه ؟
    2_
    _CONCAT(a,b) a##b این رو تا حالا ندیدم چیکار میکنه دقیقا ؟ اون # که گذاشتین گفتین دو متغیر رو به هم میچسبونه یعنی اگه a=1 و b=2 باشه میشه عدد 12 ؟؟؟ من کلا تو این قسمت گیج شدم و دقیق نمیدونم دارم چی میگم و . . . لطفا کالبد شکافی کنید
    3_
    PORT(x) _CONCAT(PORT,x) این چیکار میکنه ؟ پرانتزها برای چیه و . . .



    با تشکر از مطالب خوبتون و وقتی که میزارید
    1- بخش اول را باید بصورت یک هدر تعریف کنید تا بصورت جنرال بتونیم از فایلها در پروژه های دیگه استفاده کنیم (این مساله تقریبا ساده ای هست که به اصطلاح به آن پرتابل نویسی هم گفته میشه و فقط باید با نحوه ی نوشتن هدرفایل ها آشنا بشید)
    لطفا این را بخوانید:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    2- بله دقیقا همین چیزی که نوشتید صحیح هست ، یعنی اگر بجای a و b هر چیزی بنویسیم ، هر جایی از برنامه وقتی اون ماکرو را استفاده کنیم باعث میشه دقیقا a و b را بهم بچسبونه . به اینصورت میتونیم a را تغییر بدیم و مثلا زمانیکه میخواییم بنویسیم PORTA.1 بجای A و 1 معادل ها را بنویسیم . (اگر بازم متوجه نشدید جواب سوال یک را دقیقا مطالعه کنید)

    3- قبلا ما نوشتیم CONCAT(a,b) a##b / و هرجایی که ما از CONCAT استفاده کنیم باعث میشه a و b به هم بچسبند /
    حالا که این عبارت را روبروی ماکروی PORT(x) قرار دادیم باعث میشه اون قبلیها جایگزین بشه
    با فرض اینکه ما a را PORT و b را نام پورت در نظر میگیریم >> اگر مثلا منویسیم PORT(C) باعث میشه که کامپایلر این را ببینه:
    PORTC
    بنابراین دیگه لازم نیست توی کل برنامه

    // - - - - - - - - -

    راه ساده تر هم هست که

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    گفتند و بنابه نوع برنامه میشه استفاده کرد
    Reveng will surely come... Your hard time are ahead
    // - - - - - - - - - -
    برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
    // - - - - - - - - - -
    اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
    // - - - - - - - - - -
نمایش نتایج: از 1 به 9 از 9

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

  1. مقدار پورت میکرو؟
    توسط lost_z در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2015/06/24, 11:51
  2. پاسخ: 9
    آخرين نوشته: 2014/02/14, 01:53
  3. ارسال یک مقدار دابل با پورت سریال و دریافت آن با کامپیوتر دیگر
    توسط gholamaligolabi در انجمن رباتيك و مكاترونيك
    پاسخ: 8
    آخرين نوشته: 2014/01/17, 17:26
  4. تايين مقدار ولتاژ خروجي بر روي پورت ها
    توسط maziyar123 در انجمن میکروکنترلرهای AVR
    پاسخ: 15
    آخرين نوشته: 2010/12/04, 19:00
  5. مقدار دهی بیت به بیت بهATMEGA 64 در پورت های G , F
    توسط soomael در انجمن میکروکنترلرهای AVR
    پاسخ: 9
    آخرين نوشته: 2009/10/20, 13:38

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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