اطلاعیه

Collapse
No announcement yet.

یک سوال آسون

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

    یک سوال آسون

    برنامه زیر یک برنامه فلاشر هست که 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
    پاسخ : یک سوال آسون

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

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

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

    دیدگاه

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