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





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









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





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

نمایش نتایج: از 1 به 2 از 2
  1. #1
    2009/02/01
    40
    0

    یک سوال آسون

    برنامه زیر یک برنامه فلاشر هست که LEDهای روی پورت رو ار بالا به پایین و برعکس روشن میکنه . ( همونجور که بلدید ) . می خواستم ببینم که دستور DDRD = 0xFF یعنی چی ؟
    1- DDRD چه دستوری است ؟
    2- 0 چیه ( اگر 1 بود چی میشد ؟ )
    3- x چیه
    4- FF چیه ؟
    ( من زبان C کامپیوتر رو بلدم و میخوام زبان C AVR رو یاد بگیرم ، ممنون اگر کمکم کنید .)
    ************************************************** ********************************
    #include<mega16.h>
    #include<delay.h>
    #define xtal 4000000

    int i;

    void main (void)
    {

    DDRD = 0xFF;

    while(1)
    {

    for(i = 1; i <= 128; i = i*2)
    {
    PORTD = i;
    delay_ms(100);
    }

    for(i = 128; i > 1; i = i/2)
    {
    PORTD = i;
    delay_ms(100);
    }

    }

    }
  2. #2
    2008/09/02
    اصفهان
    1,897
    39

    پاسخ : یک سوال آسون

    اگه میخوای روی AVR یا هر میکروی دیگه با C کار کنی باید سه تا چیز رو بلد باشی. اول زبان C که فرقی نمیکنه روی PC باشه یا این میکرو. دوم امکانات نسخه کامپایلر C که برای کار با اون میکرو استفاده میکنی و سوم نحوه برخورد با خود میکرو. اولی که کاملا مشخصه. دومی شامل امکاناتی هست که روی کامپایلر تون اضافه شده تا شما بتونی برای اون میکروی خاص کد بنویسی. مثلا استفاده از ماکروی SIGNAL برای نوشتن روتین وقفه. چرا؟ چون مثلا در PC فقط کافیه آدرس مطلق روتین وقفه رو در حالت حقیقی در آدرس اول حافظه قرار بدی. اما اینجا بایستی به کامپایلر اطلاع داده بشه که این تابع یک تابع معمولی نیست بلکه یک روتین وقفه هست. که بایستی آدرسش در لوکیشن خاصی از کد اجرایی بشینه. سوم آشنایی با خود میکرو.

    از این چهار سئوال شما مشخصه که شما زبان C رو کاملا بلد نیستین چون در زبان C اگر بخواییم یک عدد رو به صورت هگزا دسیمال نشون بدیم بایستی با 0x در اولشون مشخص کنیم. مثلا اینجا 0xFF یعنی همون 255.

    سئوال اول هم غلطه. چون DDRD اسم یک رجیستر داخلی میکرو هست نه یک دستور.
    در این عبارت DDRD=0xFF به میکرو اطلاع میدیم که تمامی 8 بیت مربوط به پورت D رو در حالت خروجی قرار بده. این موضوع دیگه ربطی به C نداره. باید دیتا شیت خود میکرو رو مطالعه کنین.
نمایش نتایج: از 1 به 2 از 2

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

  1. پاسخ: 1
    آخرين نوشته: 2015/12/28, 00:20
  2. پاسخ: 20
    آخرين نوشته: 2013/09/24, 02:30
  3. تثبیت کننده ی ولتاژ(یه سوال آسون)
    توسط e-jafar در انجمن مدار هاي ديجيتال
    پاسخ: 10
    آخرين نوشته: 2012/12/29, 13:04
  4. یک سوال آسون در مورد جعبه فیوز
    توسط alipartovi در انجمن تاسیسات الکتریکی
    پاسخ: 3
    آخرين نوشته: 2012/01/31, 13:47
  5. پاسخ: 10
    آخرين نوشته: 2008/11/02, 12:23

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

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

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

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

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