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





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









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









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





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

صفحه 1 از 3 123 آخرین
نمایش نتایج: از 1 به 10 از 26
  1. #1
    2013/06/19
    1,544
    80

    [آموزش] آموزش کامپايلر CCS از صفر

    با سلام به همه ي دوستان
    توي اين تاپيک قصد داريم آموزش کاربردي کامپايلر CCS که به زبان C و يکي از بهترين کامپايلر ها براي ميکرو کنترل PIC هستش رو از صفر آغاز کنيم و اون رو تا جايي که علم و زمان اجازه بده ادامه بديم.
    در بينا بين صحبت ها ممکن است قسمتي هم به آموزش سطحي ميکرو کنترل و حتي آموزش سطحي نرم افزارهايي مثل پروتئوس که در آموزش مبحث اصلي به ما کمک ميکنند انجام گيرد.

    سعي ميشه برنامه ها با فايل شبيه سازي شده در پروتئوس ارائه بشه آموزش راحت تر باشه.

    لطفا دوستان نظرات خودشون رو بيان و اشتباهات بنده رو گوشزد کنند.

    کامپايلر CCS رو ميتونيد از آدرس زير دانلود کنيد که روش نصب رو هم توضيح دادم

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

    عضویت





    اضافه شده در تاريخ :
    خب اول بايد نرم افزار ccs رو تهيه و نصب کنيد. برنامه ccs رو که نصب کرديد بايد يه پروژه ايجاد کنيد.براي اين کار از سربرگ Project گزينه Create رو انتخاب کنيد. اسم پروژه رو تايپ کنيد و ok رو بزنيد تا پروژه شما ايجاد بشه. حالا بريم سراغ کد نويسي.
    ساده ترين برنامه اي که باهاش ميشه شروع به آموزش يک کامپايلر کرد برنامه led چشمک زن هستش.
    ميخوايم توي اولين قسمت آموزش اين برنامه رو بنويسيم :nerd:

    اولين خطي که توي هر کامپايلر و هر برنامه اي وجود داره دستور مربوط به معرفي ميکرو کنترل هستش. پس قبل از هرچيزي بايد ميکرو رو معرفي کنيم. اينکار رو با دستور زير انجام ميديم
    کد:
    #include <نوع ميکرو.h>
    مثلا اگه بخوايم ميکروکنترل 16F877A رو معرفي کنيم به شکل زير اين کار رو انجام ميديم
    کد:
    #include <16F877a.h>
    در خط بعدي بايد مقدار کريستال رو تعيين کنيم. که اين کار رو با دستور زير انجام ميديم.
    کد:
    #use delay(xtal=20Mhz)
    در دستور بالا مقدار کريستال 20 مگا هرتز معرفي شده است.
    دقت کنيد که اين فرکانس کرستال خارجي است و و براي بدست آوردن فرکانس کاري ميکرو بايد اون رو تقسيم بر 4 کنيم پس سرعت ( فرکانس کاري ميکرو) 5 مگاهرتز است.

    پس از اين بايد وارد تابع اصلي برنامه شد تا بتونيم عمل چشمک زدن رو انجام بديم.
    براي روشن و خاموش کردن يک LED توسط پورت ميکرو نياز است تا بتونيم يک پايه از ميکرو رو صفر و يک کنيم.
    براي 1 کردن هر پايه از ميکرو از دستور زير استفاده ميکنيم:
    کد:
    output_high(pin_X);
    براي 0 کردن هر پايه از ميکرو از دستور زير استفاده ميکنيم:
    کد:
    output_low(pin_X);
    که X ميتونه هر يک از پين هاي ميکروکنترل مورد استفاده شما باشه که قابليت ورودي و خروجي کردن رو داره.

    مثلا دستور زير پايه b5 رو از پورت b يک ميکنه.
    کد:
    output_high(pin_b5);
    دقت کنيد که دو دستور بالا ، خود هم عمل خروجي کردن پايه و هم 0 يا 1 کردن پايه را انجام ميده.

    تنها کار ديگه اي که در اين برنامه بايد بکنيم اينه که بتونيم تاخير در برنامه ايجاد کنيم تا بشه به مدت زمان دلخواه LED رو روشن يا خاموش نگه داشت.
    ايجا تاخير در برنامه رو با دستورات زير انجام ميديم.
    کد:
    delay_ms(x);
    کد:
    delay_us(x);
    دستور اول به اندازه x ميلي ثانيه تاخير ايجاد ميکند و دستور دوم به اندازه x ميکروثانيه.

    خب حالا بريم سراغ برنامه کامل
    کد:
    #include <16F877a.h>
    #use delay(xtal=4Mhz)
    
    void main()
    {
    
     while(true)
     {
     output_high(pin_b5);
    
     delay_ms(200);
    
     output_low(pin_b5);
    
     delay_ms(200);
     }
    
    }
    نکته مهم:
    در کامپايلر ccs حلقه بي نهايت بايد به شکل (while(true نوشته شود نه (while(1

    بعد از نوشتن برنامه براي کامپايل اون از سربرگ Compile گزينه Compile رو انتخاب کنيد تا برنامه کامپايل بشه و کد هگز (کدي که بايد روي ميکرو بريزيد) توليد بشه. وقتي اينکار رو انجام ميديد خطاهاي دستوري رو هم بهتون نشون ميده.

    بعد در نرم افزار پروتئوس فايل هگز رو روي ميکرو ميريزيد و دکمه play رو ميزنيد تا برنامه اجرا بشه( اگه کسي توي اين قسمت مشکل داره بگه تا يه آ�وزسي هم در اين مورد بذارم)



    اين هم فايل برنامه و فايل شبيه سازي شده در پروتئوس:

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

    عضویت

    ویرایش توسط شاهرخ مستقیمی : 2016/08/07 در ساعت 17:47
    AYRIC
  2. #2
    2007/11/22
    تبریز
    2,483
    492

    پاسخ : آموزش کامپايلر CCS از صفر

    در تکميل فرمايشات دوست عزيزمون، ميشه از اين دستور هم استفاده کرد:

    کد:
    output_toggle(PIN_B5);
    که مشابه همون علامت تعجب ( ! ) براي Not کردن خروجي هست.

    راستي اين عکس بالايي از محيط پروتئوس واسه ورژن چنده؟

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

    عضویت



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

    عضویت

  3. #3
    2013/06/19
    1,544
    80

    پاسخ : آموزش کامپايلر CCS از صفر

    نقل قول نوشته اصلی توسط شاهرخ
    راستي اين عکس بالايي از محيط پروتئوس واسه ورژن چنده؟
    ورژن 7.8 هستش خودم آبيش کردم :mrgreen:
    AYRIC
  4. #4
    2013/06/19
    1,544
    80

    پاسخ : آموزش کامپايلر CCS از صفر

    خب توي آموزش قبلي تعريف کردن ميکرو و کريستال و خروجي کردن يک پايه از ميکرو و 0 و 1 کردن اون رو ياد گرفتيم.
    حالا ميخوايم نحوه ي ورودي کردن و خوندن مقدار پورت ( 0 يا 1 بودن ) رو ياد بگيريم.
    براي ورودي کردن و خوندن مقدار يه پايه از ميکرو از دستور زير استفاده ميکنيم

    input(pin_X)

    که X اسم پايه اي هستش که شما ميخوايد مقدارش رو بخونيد

    حال بايد نحوه تعريف متغير رو ياد بگيريم چون از اينجا به بعد با متغيير کار داريم.
    دو نمونه از متغير هاي عددي رو اينجا ميگم تا بعدا در صورت نياز ازشون استفاده کنيم.
    اولين نوع Integer است که اعداد صحيح را اختيار ميکنند و با ظرفيت هاي مختلف مورد استفاده قرار ميگرند:
    1- int1 که فضايي معادل 1 بيت را اشغال ميکند و تنها دو مقدار 0 و 1 را ميتواند اختيار کند
    2- int8 که فضايي معادل 8 بيت را اشغال ميکند و مقادير از 0 تا 255 را ميتواند اختيار کند
    3- int16 که فضايي معادل 16 بيت را اشغال ميکند و مقادير از 0 تا 65536 را ميتواند اختيار کند
    3- int32 که فضايي معادل 16 بيت را اشغال ميکند و مقادير از 0 تا 4294967295 را ميتواند اختيار کند
    در کامپايلر ccs با تعريف کردن متغير هاي بالا به صورت ديفالت Unsigned ( بدون علامت)در نظر گرفته ميشوند و اگر ميخواهي مقادير منفي را در اين متغيرها ذخيره کنيد بايد عبارت Signed را قبل از آنها بنويسيد. به صورت زير
    1- Signed int8 که مقاديري از 128- تا 127+ ميتواند اختيار کند.
    2- Signed int16 که مقادير از 32768- تا 32767+ را ميتواند اختيار کند
    3- Signed int32 که مقادير از 2147483648- تا 2147483647+ را ميتواند اختيار کند

    دومين نوع هم متغير float هستش که اعداد اعشاري رو اختيار ميکنه

    حالا اگر بخواهيم يک متغير در برنامه تعريف کنيم بايد نوع متغير مورد نظرمون رو بنويسيم و جلوي اون اسمي که براي متغيير ميخواهيم رو بنويسيم. مثلا:
    int8 x=0;

    متغير x از نوع 8 بيتي و بدون علامت تعريف شده است
    signed int16 x=0,y=0;

    متغير x و y نوع 16 بيتي و علامت دار تعريف شده است
    float z=2.36;

    متغير z از نوع اعشاري تعريف شده و مقدار اوليه ان 2.36 در نظر گرفته شده

    اين هم يک نمونه کد از دو مبحث بالا
    int1 x=0;
    float z=2.36;

    void main()
    {

    while(true)
    {

    if(input(pin_b1)==1) z+=0.1;

    else x=input(pin_b3);
    }
    }

    در نمونه بالا گفته شده اگر مقدار پايه ي b1 برابر 1 بود به متغير z مقدار 0.1 رو اضافه کن و اگر نه ( مقدار پايه ي b1 برابر 0 بود) مقدار پايه b3 رو در متغيير x بريز

    انشاالله در قسمت بعدي نحوه راه اندازي pwm رو آموزش ميديم.
    ویرایش توسط شاهرخ مستقیمی : 2016/06/09 در ساعت 16:01
    AYRIC
  5. #5
    2013/06/19
    1,544
    80

    پاسخ : آموزش کامپايلر CCS از صفر

    خب قرار شد در اين قسمت نحوه راه اندازي pwm رو توضيح بدم

    دو راه براي راه اندازي pwm در کامپايلر ccs وجود داره يکي استفاده از فرمول هاي موجود براي بدست آوردن فرکانس و پريود تا اونها رو در دستورات کانفيگ pwm قرار بديم که براي اين روش ميتونيد به اين تاپيک مراجعه کنيد:
    http://www.eca.ir/forum2/index.php?topic=82583.msg503696#new
    توي تاپيک بالا دوست عزيزمون محمد حسين فايلي رو قرار داده که توضيحات خوبي درش ارائه شده.
    حتي اگر اطلاعاتي در مورد pwm نداريد ميتونيد از فايلي که توي اين تاپيک قرار داده شده استفاده کنيد

    راه ديگه براي راه اندازي pwm در کامپايلر CCS استفاده از WIZARD هستش که شما فرکانس دلخواهتون رو به اون ميديد و اون دستورات کانفيگ PWM رو براي شما مينويسه. که در ادامه مطلب اين روش رو آموزش ميديم

    براي اينکار در محيط کامپايلر وارد NEW و از اونجا گزينه Project Wizard را بزنيد


    بعد از ذخيره فايل پنجره زير باز ميشه


    جلوي عبارت device ميکرو کنترل خودتون رو انتخواب ميکنيد (البته اين ويزارد براي ميکرو هاي 8 بيتي هستش) که در اينجا 16f877a هستش
    و جلوي عبارت ocillator type نوع اسيلاتور رو مشخص ميکنيد که در اينجا چون از کريستال خارجي استفاده شده گزينه کريستال رو انتخواب ميکنيم

    حالا از سربرگ هاي سمت چپ صفحه گزينه ccp & comparator رو انتخواب کنيد( مثل عکس زير)
    همچنين گزينه pwm رو انتخواب کنيد تا تنظيمات pwm ظاهر شود
    حال در قسمت set pwm frequency فرکانس دلخواهتان رو انتخواب کنيد (البته اين مقدار نبايد از 1220.7 هرتز کمتر و از 5mhz بيشتر باشه). که بنده فرکانس 50khz رو انتخواب کردم
    و قسمت duty cycle هم که مشخصه duty cycle مورد نظرتون رو انتخواب کنيد و چون ديوتي سايکل از 0 تا 100 درصد است مقداري که ميديد نميتواند خارج از اين بازه باشه. در اينجا من 100 رو انتخواب کردم تا حداکثر عددي که ميتونم به دستور ديوتي سايکل بدم مشخص بشه


    بعد از اين کارها روي کليد create project کليک کنيد تا دستورات کانفيگ نمايش داده بشن. همانند عکس زير:


    خط 5 دستور کانفيگ timer2 که مخصوص pwm هستش رو کانفيگ ميکنه و خط 7 هم کانال ccp رو در حالت pwm قرار ميدهد
    خط 8 هم همان خطي است که در طول برنامه ممکن است باهاش کار داشته باشيد.اين دستور همان دستوري است که ديوتي سايکل pwm خروجي رو مشخص ميکنه. همانطور که ميبينيد (عکس بالا) در حال حاضر عدد 397 را گرفته. اين عددي است که ويزارد داده و ما در ويزارد درصد ديوتي سايکل رو 100 داده بوديم پس اين مقدار 397 حداکثر مقداري است که دستور set_pwm1_dut ميتواند بپذيرد. پس شما در طول برنامه ميتوانيد عددي بين 0 تا 397 رو در اين دستور قرار بديد و ديوتي سايکل pwm خودتون رو مشخص کنيد.

    حالا يه برنامه کامل براي دو pwm1 و pwm2 مينويسيم

    [code=c]#include <16f877a.h>
    #use delay(xtal=20Mhz)
    #fuses HS,NOWDT

    #define sw_1 input(pin_b0)
    #define sw_2 input(pin_b1)

    int16 i=0,j=0;

    void main()
    {
    setup_timer_2(T2_DIV_BY_1,99,1); //20.0 us overflow, 20.0 us interrupt

    setup_ccp1(CCP_PWM);

    setup_ccp2(CCP_PWM);

    while(TRUE)
    {
    set_pwm2_duty((int16)198);

    if( (sw_1) && (i<397) ) i++;

    if( (sw_2) && (i!=0) ) i--;

    while( (sw_1==1) && (sw_2==1) ) {}

    set_pwm1_duty((int16)i);

    set_pwm2_duty((int16)j);

    }
    }[/code]

    توي اين برنامه کانال ccp1 و کانال ccp2 بر روي pwm با فرکانس 50 کيلو هرتز تنظيم شده اند.

    به کانال 2 ديوتي سايکل ثابت 50 درصد (198 نصف 397 است) داده شده است.

    اگر کليد متصل به پين b0 را فشار دهيد يک واحد به i اضافه ميشود و اگر کليد متصل به پين b1 رو فشار دهيد يه واحد از i کم ميشود. سپس در يک while منتظر ميماند ( اگر اي while نباشد بخاطر سرعت زياد ميکرو کنترل با يکم فشار دادن کليد عدد به سرعت کم و زياد ميشه) اين while را گذاشتم تا براي هر واحد اضافه يا کم کردن i مجبور باشيم يک بار کليد رو فشار بديم

    و در نهايت مقدار i در دستور ديوتي سايکل pwm 1 قرار ميگيرد

    اين هم فايل پروتئوس و کد c مربوط به برنامه بالا
    http://s2.picofile.com/file/7917913117/pwm.rar.html
    AYRIC
  6. #6
    2009/12/26
    1,732
    265

    پاسخ : آموزش کامپايلر CCS از صفر

    جهت اطلاع از اپديت شدن تاپيک
  7. #7
    2013/06/19
    1,544
    80

    پاسخ : آموزش کامپايلر CCS از صفر

    سلام
    ببخشيد يه مدت افتاد توي کاراي يه مسابقه و کاراي دانشگاه نتونستم پست جديد بذارم

    خب توي اين پست ميخوام کار با LCD کارکتري رو آموزش بدم.
    نمايشگرهاي کارکتري قادر به نمايش حروف و اعداد هستند.
    کامپايلر ccs دو کتابخانه با نام هاي LCD.C و LCD420.C داره که اولي براي LCD هاي 16*2 و کوچکتره و دومي براي LCD هاي 20*4 و کوچکتر هستش.

    اين LCD ها سه تا پايه با نام هاي RS و RW و ENABLE دارند که پايه هاي کنترلي هستند. و 8 پايه ديگر که 4 تاي آن (D0/D1/D2/D3) براي خواندن از روي LCD و 4 تاي ديگر (D4/D5/D6/D7 که به پايه هاي خط ديتاي نمايشگر معروفند) براي نوشتن بر روي LCD هستند.

    ما ميخواهيم فقط روي LCD اطلاعاتي رو نمايش بديم پس با 4 پايه دوم کار داريم.
    اگه با کتابخانه اولي کار ميکنيد ميتونيد اين 7 پايه رو (3 پايه کنترلي و 4 پايه خط ديتاي نمايشگر) به هر پايه از ميکرو که قابليت IO داشته باشه وصل کنيد. چون در اين کتابخانه دستوراتي هستند که شما ميتونيد مشخص کنيد هر پايه رو به کدام پايه از مکرو وصل کرده ايد.

    کل پايه هاي LCD به ترتيب به صورت زير هستند:


    کنتراست صفحه روشنايي کارکتر ها هستش که با يه پتانسيومتر قابليت کم و زياد شدن داره. طريقه اتصال توي فايل شماتيک که در پيوست قرار داده شده مشخصه. وقتي LCD بسته شد و برنامه رو نوشتيد بايد اين پتانسيومتر رو اونقدر بچرخونيد تا وضوح نوشته به حداکثر خودش برسه.

    بعد از اينکه LCD رو وصل کرديد بايد بريم سراغ برنامه :nerd:
    بعد از دستورات تعريف ميکرو و کريستال بايد پايه هاي LCD رو مشخص کنيم. به صورت زير:

    [code=c]
    #define LCD_RS_PIN PIN_b0
    #define LCD_RW_PIN PIN_b1
    #define LCD_ENABLE_PIN PIN_b2
    #define LCD_DATA4 PIN_b3
    #define LCD_DATA5 PIN_b4
    #define LCD_DATA6 PIN_b5
    #define LCD_DATA7 PIN_b6
    [/code]

    پايه هاي RS و RW و ENABLE به ترتيب به پايه هاي b0 و b1 و b2 متصل شدند و پايه هاي ديتا (D4 تا D7) به ترتيب به پايه هاي b3 تا b6 متصل شده اند. شما ميتونيد بر حسب نياز پايه هارو تغيير بديد.

    و در خط بعدي بايد کتابخانه LCD.C رو صدا بزنيد. به اين صورت:
    [code=c]#include <LCD.c>[/code]

    حالا براي کار با LCD و نوشتن بر روي آن بايد حتما دستور زير نوشته شود:
    [code=c] lcd_init();[/code]
    با نوشتن اين دستور LCD پاک شده و آماده به کار ميشود.

    يکي از توابعي که در اين کتابخانه تعريف شده تابع lcd_putc هستش. که به صورت زير تعريف شده:
    [code=c]Void lcd_putc(char c); [/code]

    به اين معني که اين تابع يک کارکتر را به عنوان آرگومان گرفته و هيچ مقداري را بر نميگرداند.
    مثلا دستور زير حرف Q را بر روي LCD مينويسد:
    [code=c]Lcd_putc(“Q”[/code]

    توسط دستور printf نيز ميتوانيم اين کار رو انجام بديم. به صورت زير:
    [code=c]Printf(lcd_putc,”#test#”[/code]
    که دستور بالا رشته ي #test# رو بر روي LCD نمايش ميده.

    با دستور printf عدد هم ميتونيد نشون بديد. به صورت زير
    [code=c]
    Unsigned int8 i=80;

    Printf(lcd_putc,”\f\variable is %u”,i);
    [/code]
    دستور بالا نوشته روبرو رو چاپ ميکنه: variable is 80
    که قسمت variable is که قبل از u% نوشته شده به عنوان رشته هستش و i به عنوان يک عدد متغير هستش که هر مقداري رو در برنامه بگيره روي lcd چاپ ميشه که اينجا 80 هستش
    بخش \f\ باعث پاک شدن LCD ( نه رفلش شدن آن) ميشه. شما اگه نميخوايد LCD پاک بشه ميتونيد اين رو ننويسيد

    دومين تابع در اين کتابخانه تابع lcd_gotoxy هستش. به صورت زير:
    [code=c]Void lcd_gotoxy(BYTE x, BYTE y);[/code]

    که x شماره ستون و y شماره سطر هستش. و خانه اي که از سمت چپ در اولين ستون و در سطر بالا هستش داراي شماره ي 1و1 ميباشد پس خانه ستون 5 ام و سطر دوم به صورت زير مشخص ميشه:
    [code=c]Lcd_gotoxy(5,2); [/code]

    خب حالا ميريم سراغ برنامه کامل:
    [code=c]#include <16f877a.h>
    #use delay(xtal=20Mhz)
    #fuses HS,NOWDT

    #define LCD_RS_PIN PIN_b0
    #define LCD_RW_PIN PIN_b1
    #define LCD_ENABLE_PIN PIN_b2
    #define LCD_DATA4 PIN_b3
    #define LCD_DATA5 PIN_b4
    #define LCD_DATA6 PIN_b5
    #define LCD_DATA7 PIN_b6
    #include <LCD.c>

    int i=0;

    void main()
    {
    lcd_init();

    lcd_gotoxy(6,1);
    printf(lcd_putc,"<<ECA>>"
    lcd_gotoxy(8,2);
    printf(lcd_putc,"PIC"

    delay_ms(700);

    lcd_init();

    while(true)
    {
    lcd_gotoxy(1,1);
    printf(lcd_putc, "I=%u", i);

    i++;

    delay_ms(100);
    }
    }[/code]

    اين برنامه ابتدا کارکتر هايي رو روي lcd نمايش ميده سپس اون رو رفلش ميکنه و مقدار يه متغير به نام i که مدام در حال افزايش هست رو نشون ميده.


    اينم فايل برنامه به اضافه فايل پروتئوس:
    http://s3.picofile.com/file/7963502254/lcd.rar.html
    AYRIC
  8. #8
    2013/01/29
    بندرانزلي
    705
    38

    پاسخ : آموزش کامپايلر CCS از صفر

    من شروع کردم فعلا اولی رو دارم تمرین میکنم!!


    دیگه تصویر جا نشد 8 تا LED پشت سر هم روشن و خاموش میشن جالبه!!
    اینم کدش
    کد:
    #include <16f877a.h>
    #use delay(xtal=20Mhz)
    
    void main()
    {
    
    while(true)
    {
    output_high(pin_b0);
    
    delay_ms(100);
    
    output_low(pin_b0);
    
    delay_ms(100);
    
    output_high(pin_b1);
    
    delay_ms(100);
    
    output_low(pin_b1);
    
    delay_ms(100);
    
    output_high(pin_b2);
    
    delay_ms(100);
    
    output_low(pin_b2);
    
    delay_ms(100);
    
    output_high(pin_b3);
    
    delay_ms(100);
    
    output_low(pin_b3);
    
    delay_ms(100);
    
    output_high(pin_b4);
    
    delay_ms(100);
    
    output_low(pin_b4);
    
    delay_ms(100);
    
    output_high(pin_b5);
    
    delay_ms(100);
    
    output_low(pin_b5);
    
    delay_ms(100);
    
    output_high(pin_b6);
    
    delay_ms(100);
    
    output_low(pin_b6);
    
    delay_ms(100);
    
    output_high(pin_b7);
    
    delay_ms(100);
    
    output_low(pin_b7);
    }
    
    }
  9. #9
    2014/03/08
    بابلسر
    884
    350

    پاسخ : آموزش کامپايلر CCS از صفر

    سلام آموزشت برای شروع خیلی عالیه
    یه سوال داشتم
    شما نوشتید که فرکانسی که به میکرو میدیم تقسیم بر 4 میشه و فرکانس اصلی میکرو تقسیم شدشه مثلآ اگر نوشتیم xtal=20mhz فرکانس واقعی میکرو 5 مگاهرتزه پس این 20 مگاهرتز برای چیه؟
    باید تو خروجی کریستال 20 مگاهرتز قرار بدیم؟

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

    عضویت


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

    عضویت


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

    عضویت

  10. #10
    2010/04/09
    69
    2

    پاسخ : آموزش کامپايلر CCS از صفر

    شما وقتي با دستور xtal=20M قرار مي ديد يعني به کامپايلر اعلان مي کنيد که يک کريستال 20 مگاهرتزي به دو پايه osc1 و osc2 وصل کرديد بعدش خود کامپايلر فيوز بيت هاي داخلي شو مناسب با 20M قرار مي ده... ولي کلاکي که cpu با اون عمل پردازش رو انجام مي ده ميشه مقدار کريستالي که به دو پايه osc1 و osc2 وصل شده تقسيم بر 4 = 5Mhz ....
صفحه 1 از 3 123 آخرین
نمایش نتایج: از 1 به 10 از 26

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

  1. [آموزش] آموزش کامل PIC تحت کامپايلر XC8
    توسط abritco در انجمن میکروکنترلرهای PIC
    پاسخ: 29
    آخرين نوشته: 2020/02/02, 19:07
  2. پرسش و پاسخ آموزش کامپايلر XC8
    توسط mdolia در انجمن میکروکنترلرهای PIC
    پاسخ: 42
    آخرين نوشته: 2019/06/08, 06:56
  3. منبع آموزش حرفه اي براي کامپايلر microC PRO for PIC
    توسط sharif_sharifzadeh در انجمن میکروکنترلرهای PIC
    پاسخ: 2
    آخرين نوشته: 2014/05/06, 20:43
  4. آموزش ميکروکنترلرهاي PIC به زبان C با کامپايلر microC PRO
    توسط hamed8419215 در انجمن میکروکنترلرهای PIC
    پاسخ: 2
    آخرين نوشته: 2012/07/23, 15:07
  5. کمک براي آموزش کار با کامپايلر keil
    توسط mohsehana در انجمن پروسسورهای ARM
    پاسخ: 2
    آخرين نوشته: 2012/03/12, 16:40

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

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

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

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

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