NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 5142 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از 21 به 39 از 39

موضوع: مشکل در وقفه و pll

  1. #21
    مدیر انجمن Division آواتار ها
    تاریخ عضویت
    Jan 2010
    نام
    افشین علیزاده
    نوشته ها
    628
    تشکر
    206
    تشکر شده 1,013 بار در 407 پست

    پیش فرض

    از بابت اينكه فرمودين بايد برنامه نويس حرفه اي باشيم با تون 100% موافقم و اينم بگم كه من خودم شخصا يه سه سالي ميشه كه با زبان هاي برنامه نويسي اسمبلي و c دست و پنجه نرم مي كنم و فكر مي كنم با كمك دوستان بتونيم يه چيزي رو شبيه سيستم عامل جمع كنيم .

    منم نظرم اينه كه رو قالب هاي اپن سورس كار كنيم منتها صحبت سر اينه 1- دقيقا از كجا شروع كنيم ؟ 2- چه كسايي مي خواي تو اين پروژه سنگين شركت كنن‌ ؟
    سادگی نهایت کمال است
    یه مدتی میشه که نیستم... ولی به زودی بر می گردم...

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #22
    مدیر انجمن farzadsw آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    تهران
    نوشته ها
    485
    تشکر
    105
    تشکر شده 745 بار در 309 پست

    پیش فرض

    1. اول یه rtos رو بردارید برای میکروی خودتون کامپایل کنید ( هر میکرویی حتی avr , 8051 ) و 4-5 تا برنامه چند task یی براش بنویسید
    1.1 . بعدش با استفاده از بوت لودر چندتا نرم افزار مختلف رو روش اجرا کنید (قابلیت انتخاب موقع بوت)
    1.2 . یه محیط گرافیکی آماده براش کامپایل کنید (به مقدار حافظه تون بخوره)
    1.3 . خود rtos رو تغییر بدید یا برای یه میکرویی که پورت نشده پورتش کنید .

    2. من قبلا اون مرحله 1 رو شروع کردم و یه برنامه هم برای میکرو نوشتم ولی کلاسها شروع شد ، وقت نشد ادامه بدم . فعلا هدف اینه که تا مرحله 1.2 برم نه بیشتر .
    (اگر خدا بخواد تو عید فایل آموزش rtos شماره 2 رو هم آماده میکنم.)

    * منظورم از برنامه نویس حرفه ای کسی بود که حرفه و شغلش اینه و البته مهارت زیادی داره ، مثلا با توجه به این تعریف من خودم رو برنامه نویس حرفه ای نمیدونم . بگذریم ...بیشتر بحثم سر خود لغت "حرفه ای " بود.

  4. کاربران : 2 تشکر کرده اند از شما farzadsw برای ارسال این پست سودمند:


  5. #23
    مدیر انجمن Division آواتار ها
    تاریخ عضویت
    Jan 2010
    نام
    افشین علیزاده
    نوشته ها
    628
    تشکر
    206
    تشکر شده 1,013 بار در 407 پست

    پیش فرض

    نقل قول نوشته اصلی توسط farzadsw نمایش پست ها
    1.
    (اگر خدا بخواد تو عید فایل آموزش rtos شماره 2 رو هم آماده میکنم.)
    .



    با تشكر از شما بي صبرانه منتظر ارائه آموزش rtos از طرف شما هستيم .

    بازم ممنون .
    سادگی نهایت کمال است
    یه مدتی میشه که نیستم... ولی به زودی بر می گردم...

  6. #24
    کاربر علاقه مند bato_990 آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    یحیی فرهادی
    نوشته ها
    83
    تشکر
    218
    تشکر شده 94 بار در 36 پست

    پیش فرض

    سلام اين برنامه كه روشن و خاموش شدن led را با كليد كنترل مي كنه در keil جواب ميده اما در برد آموزشي جواب نمي ده .براي برد at91sam7s64 هم تست كردم بازم تو keil مشكلي نداشت اما روي برد جوب نداد led همش روشن بود و به كليد عكس العملي نشان نمي داد . مشكل كجاست!!!! فكرنميكردم با اين برنامه ساده به مشكل بر بخورم.
    کد:
    #include "AT91SAM7S64.h"
    #include "lib_AT91SAM7S64.h"
    int main (){
    AT91F_PIO_CfgOutput( AT91C_BASE_PIOA ,AT91C_PIO_PA3) ;
    ( AT91F_PIO_GetInput( AT91C_BASE_PIOA) , AT91C_PIO_PA4);
    AT91F_PIO_CfgPullup( AT91C_BASE_PIOA, AT91C_PIO_PA4);
    for(;;)
    {
    if (( AT91F_PIO_GetInput( AT91C_BASE_PIOA) & AT91C_PIO_PA4) == 0x00000010)
    {
    AT91F_PIO_ClearOutput ( AT91C_BASE_PIOA, AT91C_PIO_PA3);
    }
    if (( AT91F_PIO_GetInput( AT91C_BASE_PIOA) & AT91C_PIO_PA4) == 0x00000000)
    {
    AT91F_PIO_SetOutput ( AT91C_BASE_PIOA, AT91C_PIO_PA3);
    }
    }
    }
    ویرایش توسط bato_990 : 28-03-2010 در ساعت 22:53

  7. #25
    مدیر انجمن farzadsw آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    تهران
    نوشته ها
    485
    تشکر
    105
    تشکر شده 745 بار در 309 پست

    پیش فرض

    شما کلاک pio رو فعال نکردید، اول برنامه قبل از تعیین ورودی خروجی این کار رو بکنید.

  8. تشکرها از این نوشته :


  9. #26
    کاربر علاقه مند bato_990 آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    یحیی فرهادی
    نوشته ها
    83
    تشکر
    218
    تشکر شده 94 بار در 36 پست

    پیش فرض

    ممنون با دستور
    AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_PIOA);
    كه تو فروم هاي ديگه نوشته بوديد مشكل حل شد.

  10. #27
    کاربر علاقه مند bato_990 آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    یحیی فرهادی
    نوشته ها
    83
    تشکر
    218
    تشکر شده 94 بار در 36 پست

    پیش فرض

    سلام يك سري به اين سايت بزنيد.
    http://o.keil.com/dd/vtr/3815/6673.htm

    گفته در MAINF تعداد سيكل هاي اسيلاتور اصلي يا همان كريستال را در 16 سيكل نوسانساز داخلي
    نگه مي داره. پس با اين حساب MAINF بر اساس فركانس ها يك عددي تو مايه ها ي 5000 تا 9000 را بايدبده من
    برنامه ي زير را براي AT91SAM7S64 نوشتم و تو كيل اجرا كردم MOSCEN و MAINRDY در KEIL فعال شد كه نشان از فعال شدن
    اسيلاتور اصلي و درست بودن MAINF داره اما MAINF مقدار 16 را نشان مي ده كه مسلما غلط هست. مشكل كجاست؟
    کد:
     AT91F_CKGR_CfgMainOscStartUpTime ( AT91C_BASE_CKGR ,1400 ,32768);
    AT91F_CKGR_EnableMainOscillator ( AT91C_BASE_CKGR );
    do{
    }while((*AT91C_PMC_SR&0x1)==0);
    MAINF و MOSCEN و MAINRDY تو قسمت Clock Generator هست.
    يك سوال ديگه : با ريست پردازنده كدام كلا ك فعال مي شه؟ من يك جا خوندم نوشته بود SLOW CLCK اما با ريست تو KEIL
    كلاك PLL با تقسيم بر 2 فعال ميشه!!!!!!!!
    ویرایش توسط bato_990 : 28-03-2010 در ساعت 22:54

  11. #28
    کاربر علاقه مند bato_990 آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    یحیی فرهادی
    نوشته ها
    83
    تشکر
    218
    تشکر شده 94 بار در 36 پست

    پیش فرض

    سلام
    خودم جواب سوالم را پيدا كردم
    من با keil v4.00a كار ميكنم كه متاسفانه در اين مورد اشتباه ميكنه .
    با يك دستور مي توان به MAINF كه در بالا بهش اشاره كردم را خوند من برنامه اي براي خوندن MAINF و نوشتن روي LCD با AT91SAM7S64
    نوشتم و اون را با يك برد تست كردم.فقط با فعال شدن MAIN OSCILATOR و بدون تاثير از اين كه با چه فركانسي كار ميكرو كار ميكرد
    مقدار MAINF را 0X25F4 كه برابر 9716 است را ميدهد. كه بار در نظر گرفته SLOW CLOCK=32KHZ و اين كه در 16 سيكل اين
    فركانس شمارش صورت گرفته مقدار فركانس اسيلاتور حدود 19.5MHZ بدست مي آيد كه اختلاف آن با 18.432MHZ به خاطر درست
    نبودن فركانس SLOW CLOCK درنظر گرفته شده است.

    اما توي KEIL يا همش مقدار 16 را براي MAINF نشان ميده يا اگه فركانس كاري ميكرو را تغيير بديد اعداد عجيب و غريب نشان ميده
    كه هيچكدام درست نيستند.

  12. #29
    کاربر علاقه مند bato_990 آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    یحیی فرهادی
    نوشته ها
    83
    تشکر
    218
    تشکر شده 94 بار در 36 پست

    پیش فرض

    سلام
    تايمر كانتر را در حالت capture با كلاك داخلي تونستم راه بندازم.
    اما با كلاك خارجي هر كارميكنم نمي شه!!!!

    با برد at91sam7s64 دارم كارميكنم.
    مي خوام از كلا ك TIOA1 براي تامر TC0 استفاده كنم. در AT91SAM7S64 ؛ TIOA1 پايه ي 15 ميكرو هست و جزء pheripheral هاي دوم
    پايه هست.
    چند تا سوال؟
    آيا بايد كلاك تايمر TC1 رانيز فعال كنم چون دارم از TIOA1 استفاده ميكنم؟
    آيا تنظيمات PIO براي پايه ي TIOA1 يا همون PA15 نياز هست؟
    اگر هست آيا بعداز فعال كردن TIOA1 در PIOA_BSR و غير فعال كردن اين پايه در PIOA_PDR نياز هست كه اين پايه را به عنوان ورودي تعريف كنم
    و كلاك پورت A را نيز فعال كنم؟

    تايمر صفر ربا XC0 و TIOA1 تو KEIL درست كار ميكرد. اما با برد درست كارنمي كرد.
    برنامه را با تنظيماتي كه سوال كردم و بدون اون ها نوشتم.در هر دو حالت تو KEIL كار ميكرد اما با برد كار نمي كرد.
    تو KEIL از منوي PHERIPHERAL گزينه ي Timer counter را كه انتخاب ميكردم همه چيز درست بود. اما تو برد رجيستر مقدار TC0_CV
    تو همه ي زمان ها صفر بود.
    راستي كلاك پايه ي TIOA1 را با PULL UP كردن پايه و وصل كردن اون با يك كليد به زمين بهش دادم.
    مشكل كار كجاست؟ اگه راهنمايي كنين ممنون ميشم.

  13. #30
    کاربر علاقه مند bato_990 آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    یحیی فرهادی
    نوشته ها
    83
    تشکر
    218
    تشکر شده 94 بار در 36 پست

    پیش فرض

    اين هم برنامه اي كه در موردش سوال كردم.
    اين يكي را براي at91sam7x256 نوشتم و با برد تستش كردم.جواب نداد. كانتر نمي شماره.
    البته به TIOA1 يك كليد وصل كردم. كسي مي دونه مشكل كجاست؟؟لطفآ


    کد:
    #include "AT91SAM7X256.h"
    #include "Lib_AT91SAM7X256.h"
    int main()
    {
    *AT91C_PMC_PCER=((1<<AT91C_ID_TC0)|(1<<AT91C_ID_TC1)|(1<<AT91C_ID_PIOB));
    *AT91C_PIOB_ASR=AT91C_PB25_TIOA1;
    *AT91C_PIOB_PDR=AT91C_PB25_TIOA1;
    *AT91C_PIOB_PPUER=(1<<25);
    *AT91C_TC0_RC=0x8;
    *AT91C_TC0_CMR=0x4005;
    *AT91C_TCB_BMR=0x02;
    *AT91C_TC0_CCR=0x05;
    AT91F_PIO_CfgOutput( AT91C_BASE_PIOB ,AT91C_PIO_PB24) ;
    AT91F_PIO_SetOutput( AT91C_BASE_PIOB, AT91C_PIO_PB24);
    while(1){
    if(*AT91C_TC0_CV!=0x0)
    {
    AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, AT91C_PIO_PB24);
    }
    }
    }
    ویرایش توسط bato_990 : 29-03-2010 در ساعت 02:26

  14. #31
    مدیر انجمن Aghaeifar آواتار ها
    تاریخ عضویت
    Feb 2010
    نام
    علی آقائی فر
    نوشته ها
    751
    تشکر
    552
    تشکر شده 975 بار در 440 پست

    پیش فرض

    يه سوالي داشتم

    روشي براي تشخيص اوليه اينكه ميكرو خرابه يا نه هست ؟ ( از اون سوال ها بود هاااا )

    من يه lpc2146 دارن و يه jlink هر چي مي كنم در ميگه قطعه شناسايي نشده
    اين اولين باره كه مي خوام پروگرام كنم عملي كه اينطوري حال گيري مي كنه !

  15. #32
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    سلام
    تنها روشی که وجود داره این هست که شما تمامی بخش های که در راه اندازی میکرو داخلت داره رو چک کنی .
    اگه اونا خراب نبود میکرو مشکل داره
    بخش های مثل :
    پایه های تغذیه ، خطوط ارتباطی ( خطوط عمومی و خطوطی که به پورت jtag متصل شده ) ، کریستال و pll و عدم وجود اتصال کوتاه در پایه های میکرو .
    بهتره با استفاده از فلش مجیک یه بار روش کار کنی ، بعد بری سراغ jtag

  16. #33
    مدیر انجمن Aghaeifar آواتار ها
    تاریخ عضویت
    Feb 2010
    نام
    علی آقائی فر
    نوشته ها
    751
    تشکر
    552
    تشکر شده 975 بار در 440 پست

    پیش فرض

    pll رو چطور بايد چك كرد ؟! در كدي كه نوشتم بايد چك كنم ؟ يا يه جور چك سخت افزاري منظورتونه ؟ يافايل startup رو ؟

  17. #34
    تازه وارد
    تاریخ عضویت
    Mar 2010
    نوشته ها
    2
    تشکر
    0
    تشکر شده 1 بار در 1 پست

    پیش فرض

    با عرض سلام خدمت بچه های کویر الکترونیک.من تازگی کار با میکرو armرو با مجله های pmmشروع کردم.لطفا چند تا پروژه کاربردی و مناسب برای پروژه پایان دوره کارشناسی معرفی کنید .با تشکر

  18. #35
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نام
    Tehran
    نوشته ها
    154
    تشکر
    61
    تشکر شده 45 بار در 34 پست

    پیش فرض

    با سلام
    من یکی از بردهای آموزش ARM رو تهیه کردم. وقتی برای اولین بار به USB وصل کردم. LED زرد چشمک می زد. طبق توضیحات مجله 2 نرم افزار پروگرام USB رو نصب کردم و جامپر Erase را اتصال کوتاه کردم. حالا وقتی به USB می زنم برد را نمی شناسه. با توجه به توضیحات مجله که گفته بود دوباره Erase کنیم، چند بار دیگه به همون ترتیبی که تو مجله گفته بود جامپر Erase را زدم ولی هنوز نمی شناسه و برد قابل شناسایی نیست. حالا چه کنم؟؟؟؟؟؟؟

  19. #36
    کاربر علاقه مند bato_990 آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    یحیی فرهادی
    نوشته ها
    83
    تشکر
    218
    تشکر شده 94 بار در 36 پست

    پیش فرض

    سلام من تو صفحه ي 3 از همين فروم درباره ي mainf و تايمر سوالاتي كردم كه كسي جواب نداد.
    به اين نتيجه رسيدم كه براي راه اندازي تايمر TC0 با كلاك TIOA1 نياز به تنظيمات PIO نيست.
    اما با حذف تنظيمات PIO از برنامه باز هم جواب نداد هم برا ي AT91SAM7S64 و هم براي AT91SAM7X256 با برد تست كردم.اگه
    اشكال برنامه را بگيد ممنون ميشم.

    #
    کد:
    include "AT91SAM7X256.h"
    #include "Lib_AT91SAM7X256.h"
    int main()
    {
    *AT91C_PMC_PCER=((1<<AT91C_ID_TC0)|(1<<AT91C_ID_TC1)|(1<<AT91C_ID_PIOB));
    *AT91C_PIOB_PPUER=(1<<25);
    *AT91C_TC0_RC=0x8;
    *AT91C_TC0_CMR=0x4005;
    *AT91C_TCB_BMR=0x02;
    *AT91C_TC0_CCR=0x05;
    AT91F_PIO_CfgOutput( AT91C_BASE_PIOB ,AT91C_PIO_PB24) ;
    AT91F_PIO_SetOutput( AT91C_BASE_PIOB, AT91C_PIO_PB24);
    while(1){
    if(*AT91C_TC0_CV!=0x0)
    {
    AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, AT91C_PIO_PB24);
    }
    }
    }

  20. #37
    کاربر علاقه مند bato_990 آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    یحیی فرهادی
    نوشته ها
    83
    تشکر
    218
    تشکر شده 94 بار در 36 پست

    پیش فرض

    نقل قول نوشته اصلی توسط Caspian1361 نمایش پست ها
    با سلام
    من یکی از بردهای آموزش ARM رو تهیه کردم. وقتی برای اولین بار به USB وصل کردم. LED زرد چشمک می زد. طبق توضیحات مجله 2 نرم افزار پروگرام USB رو نصب کردم و جامپر Erase را اتصال کوتاه کردم. حالا وقتی به USB می زنم برد را نمی شناسه. با توجه به توضیحات مجله که گفته بود دوباره Erase کنیم، چند بار دیگه به همون ترتیبی که تو مجله گفته بود جامپر Erase را زدم ولی هنوز نمی شناسه و برد قابل شناسایی نیست. حالا چه کنم؟؟؟؟؟؟؟

    سلام به جامپر ERASE دقت كن از رديف اول دو پايه ي بالايي سمت چپ هست.ممكن شما دو پايه ي سمت چپ دو رديف را به عنوان اين
    جمپر در نظر ميگيريد.
    اگه جواب نگرفتيد ميتونيد به اين قسمت مراجعه كنيدو كامل بخونيد. اگه باز هم نشد تو فروم هاي ديگه در اين مورد بحث شده.با جستجو
    به نتيجه ميرسيد.

    http://iranmicro.ir/forum/showthread.php?t=2981

  21. تشکرها از این نوشته :


  22. #38
    کاربر علاقه مند bato_990 آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    یحیی فرهادی
    نوشته ها
    83
    تشکر
    218
    تشکر شده 94 بار در 36 پست

    پیش فرض

    سلام
    من هر چقدر تلاش كردم تايمرها را با TIOAX راه بيندازم نشد. با TCLKX مشكلي نيست.اما از TIOA نه در BURST و نه در كلاك شمارنده
    نمي تونم استفاده كنم لطفا راهنمايي كنيد!!!!

  23. #39
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

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

صفحه 2 از 2 نخستنخست 12

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

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