1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

آموزش code vision - برنامه نويسي رباتيك

شروع موضوع توسط minaaa ‏25/11/11 در انجمن برنامه نویسی

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    [h=2][/h]
    آموزش code vision
    در این بخش آموزش برنامه نویسی سی کد ویژن قرار می گیرد
    avr-->c-->code vision

    شکل کلی برنامه
    اولین قدم شناخت شکل کلی برنامه نویسی سی است

    سرامد
    متغیر های عمومی
    تعریف توابع
    تابع اصلی
    {
    متغیر محلی
    تعریف سخت افراری
    برنامه اصلی
    }
    تشریح توابع
     
  2. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آموزش code vision - برنامه نويسي رباتيك

    سرامد
    سرامد ها برنامه هایی از پیش نوشته شده اند که برای جلوگیری از نوشتن چند باره ی آن ها در برنامه متعدد ایجاد شده اند
    شکل کلی سرامد به صورت زیر می باشد

    کد HTML:
    #include < نام سرامد .h >




    از سرامد های پرکاربرد می توان به سرامد میکروکنترلر اشاره کرد که در هر برنامه ای ضروری است و کار شناسایی سخت افزار های داخلی میکرو کنترلر را بر عهده دارد
    و از دیگر سرامد ها می توان به سرامد کیبرد موشواره ال سی دی ها ی گرافیکی دوربین ها و ... اشاره کرد
     
  3. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آموزش code vision - برنامه نويسي رباتيك

    متغیر ها قسمت اول
    متغیر ها مکان هایی از حافظه اند که مقادیری می گیرند .
    متغیر ها به صورت زیر تعریف میشوند
    نام متغییر نوع متغیر
    - در کد ویژن متغیر ها یکی از صورت های زیر است
    bit :
    اعداد بولی 0 یا 1 که یک بیت حافظه اشغال می کند
    char :
    اعداد صحیح بین -128 و 127 که یک بایت حافظه اشغال می کنند
    int :
    اعداد صحیح بین -32768 و 32767 که دو بایت حافظه اشغال می کنند
    long :
    اعداد صحیح بین -2^31 و 2^31-1 که چهار بایت حافظه اشغال می کنند
    float :
    اعداد اعشاری بین +_ 1/175*10^-38- و +_ 3/402*10^38 که چهار بایت حافظه اشغال می کند
    double :
    اعداد اعشاری با دقت مضاعف که هشت بایت اشغال می کند
    اگر قبل از نوع متغیر صحیح از کلمه ی
    unsigned
    استفاده شود منفی آن متغییر از بین رفته و حداکثر مقادیر آن دو برابر می شود
     
  4. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آموزش code vision - برنامه نويسي رباتيك

    [h=2][​IMG][/h]
    متغیر ها قسمت دوم
    متغیر ها در سه جا می توانند ذخیره شوند
    در ram برای این کار هیچ پییشوندی لازم نیست
    در rom برای این کار از پیشوند eeorom استفاده می شود
    در flash برای این کار از پیشوند flash استفاده می شود
    متغیر های که در رم ذخیره می شوند پس از ریست از بین می روند
    متغیر هایی که در فلش ذخیره می شوند ثابت می باشند و امکان مقدار دادن در ادامه برنامه به آن موچود نمی باشد
    همچنین استفاده از پیشوند باعث ثابت شدن متغیذ می شود
    متغیر ها یا محلی اند و یا عمومی اند
    اگر در اول برنامه قبل از تابع main تعریف شده یاشند متغیر عمومی و اگر در داخل یک تابع تعربف شده باشند متغیر محلی اند
    از متغیر عمومی در تمام قسمت های برنامه می توان استفاده کرد
    ولی از متغیر محلی فقط در داخل همان تابع استفاده می شود و با اتمام اجرای تابع آن ها ازبین می روند ​
     
  5. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آموزش code vision - برنامه نويسي رباتيك

    رایه
    آرایه ها n بعدی ماتریس های n بعدی هستند که به صورت زیر تعیریف می شوند
    [​IMG][​IMG][​IMG][​IMG]
    جنس اعضا نام آرایه [تعداد اعضای بعد اول] [تعداد اعضای بعد دوم] [تعداد اعضای بعد سوم] ...​
    [​IMG][​IMG]
    [​IMG][​IMG][​IMG][​IMG]
    int robot [23][245][24][4]​
    [​IMG][​IMG]
    اگر جنس اعضا از نوع char باشد به آرایه ؛ رشته نیز می گویند
    [​IMG][​IMG][​IMG][​IMG]
    char string [10][15]​
    [​IMG][​IMG]
    آرایه ها نیز مانند متغیر ها داری دو نوع محلی عمومی می باشد
     
  6. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آموزش code vision - برنامه نويسي رباتيك

    [h=2][​IMG][/h]
    اختمان
    ساختمان ها مجموعه هایی از متغیر ها ثابت ها رشته ها آرایه ها و ساختمان های دیگر هستند
    اگر شما از یک شی مشخصاتی دارید بهترین وسیله برای بیان ساختمان می باشد وبه صورت زیر تعریف می شود

    [​IMG][​IMG][​IMG][​IMG]
    stract نام ساختمان { اعضا } شی هایی از نوع ساختمان;​
    [​IMG][​IMG]
    [​IMG][​IMG][​IMG][​IMG]
    struct avr { type name pin vcc { atmega32,tiny11,atmega5660;​
    [​IMG][​IMG]
    برای استفاده از ساختمان از کل به جز حرکت کرده و وسط آن نقطه می گذاریم

    [​IMG][​IMG][​IMG][​IMG]
    ali.dars.omumi.farsi=13​
    [​IMG]
     
  7. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آموزش code vision - برنامه نويسي رباتيك

    اشاره گر ها
    اشاره گر ها مکان هایی از حافظاه اند که به آدرس متغییر دیگری اشاره می کنند و به صورت زیر تعریف می شوند
    [​IMG][​IMG][​IMG][​IMG]
    جنس اشاره گر * نام اشاره گر​
    [​IMG][​IMG]
    [​IMG][​IMG][​IMG][​IMG]
    int a; int *b; b = &a;​
    [​IMG][​IMG]
    اشاره گر ها فقط آدرس متغیر ها از جنس خود را نگه می دارند و دادن آدرس دیگر متغیر ها غلط است
     
  8. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آموزش code vision - برنامه نويسي رباتيك

    [h=2][​IMG][/h]
    عملگر ها قسمت اول

    + جمع
    - تفریق
    * ضرب
    / تقسیم
    ++ افزایش یک واحدی
    -- کاهش یک واحدی
    % باقی مانده ی تقسیم
    = انتساب
    >> شیفت به چپ
    << شیفت به راست
    ~ not منطقی
    & and منطقی
    | or منطقی
    ! not بولی
    && and بولی
    || or بولی
    =+ اول جمع سپس انتساب
    =- اول تفریق سپس انتساب
    =* اول ضرب سپس انتساب
    =/ اول تقسیم سپس انتساب
    =% اول باقی مانده سپس انتساب
    == شرط برابری
    =! شرط نابرابری
    < شرط بزرگتر بودن
    > شرط کوچکتر بودن
    => شرط کوچکتر یا مساوی بودن
    =< شرط بزرگتر یا مساوی بودن
    & استخراج آدرس
    * روجوع به آدرس ​
     
  9. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آموزش code vision - برنامه نويسي رباتيك

    عملگر ها قسمت دوم

    کدهای دوگانه ی زیر برابرند

    [​IMG][​IMG][​IMG][​IMG]
    c =a + c ; ------------------------- c + = a ;​
    [​IMG][​IMG]
    [​IMG][​IMG][​IMG][​IMG]
    d = a - d; ------------------------- d - = a ;​
    [​IMG][​IMG]
    [​IMG][​IMG][​IMG][​IMG]
    e = a * e ; --------------------- e * = a ;​
    [​IMG][​IMG]
    [​IMG][​IMG][​IMG][​IMG]
    f = a + f ; -------------------- f * = a ;​
    [​IMG][​IMG]
    [​IMG][​IMG][​IMG][​IMG]
    g = a / g ; ----------------- g / = a ;​
    [​IMG][​IMG]
    [​IMG][​IMG][​IMG][​IMG]
    h = a % h ; ----------------------- h % = a;​
    [​IMG][​IMG]
    [​IMG][​IMG][​IMG][​IMG]
    a = b ; ------------ k = & a ; b = * k ;​
    [​IMG]
     
  10. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : آموزش code vision - برنامه نويسي رباتيك

    توابع

    تابع ها قسنت هایی در برنامه هستند که کد ها در داخل آن ها اجرا می شود هر تابع اول باید تعریف شوند سپس استفاده شوند و در آخر تشریح شوند

    تعریف توابع
    تعزیف ها در اول برنامه نوشته شود

    [​IMG][​IMG][​IMG][​IMG]
    جنس خروجی نام تابع ( جیس وروذی اول , جنس وروذی دوم , ... )​
    [​IMG][​IMG]
    مانند
    [​IMG][​IMG][​IMG][​IMG]
    float ave (int , float [16] ); void chap (void); int rotbe (void) ; bit and (bit , bit ) ;​
    [​IMG][​IMG]
    استفاده از توابع

    توابع برای این که شروع به کار کنند کافی است اسم آن ها آورده شود به همراه مقدار ورودی ها
    الین تابعی که بدون فراخوانی و تعربف در اول شروع برنامه اجرا می شود تابع main است
    پس توابع را باید در توابع دیگر صدا زد

    برای مثال فراخوانی توابع بالا
    [​IMG][​IMG][​IMG][​IMG]
    y = ave ( 6 , stdudent) ; chap( ) ; z= rotbe ( ) ; a = and ( 1 , k ) ;​
    [​IMG][​IMG]
    تشریح توابع

    در پایان برنامه باید توابع تشریح شوند که به صورت زیر به کار می روند
    [​IMG][​IMG][​IMG][​IMG]
    جنس خروجی نام تابع ( جنس ورودی اول نام وردی اول , ... ) } دستورات تابع بازگشت خروجی {​
    [​IMG][​IMG]

    مانند
    [​IMG][​IMG][​IMG][​IMG]float ave (int tedad , float nomre [16] ); { for ( i=1 ; i<tede ; i++ ) { sum+=nomre[i-1] ; } return (sum/tedad