اطلاعیه

Collapse
No announcement yet.

ایجاد تاخییر اشتباه

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

    ایجاد تاخییر اشتباه

    یه مشکل خیلییی عجیب این کتابخونه delay.h سایت که هست برای ایجاد تاخیر مثلا یک میلی ثانیه دقیقا یه ثانیه تاخییر ایجاد میکنه این برنامه ای هست که استفاده کردم قبلا این مشکلو نداشتم کسی هست راهنمایی کنه؟
    کد:
    #include <AT91SAM7X256.H> 
    #include <lib_AT91SAM7X256.H> 
    #include "delay.h"
    //#include <adc.h>
    //#include <pio.h>
    
    int main (void) {
    int adc_v;
    AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, 0xFFFFFFFF);
    //config_adc(0x10);
    while (1) { 
    //start_adc(); 																				 ;
    //adc_v = read_adc(4);
    
    AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,0xFFFFFFFF);
    AT91F_PIO_SetOutput(AT91C_BASE_PIOA,0x02aa02aa);
    delay_ms(1);
    AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,0xFFFFFFFF);
    AT91F_PIO_SetOutput(AT91C_BASE_PIOA,0x01550155);
    delay_ms(1);
    	} 
    }

    #2
    پاسخ : ایجاد تاخییر اشتباه

    برای اطمینان یه بار دیگه لایبرری را دانلود کنید.

    اما برای ایجاد تاخیر دقیق یک ثانیه از وقفه تایمر استفاده کنید بهتره .

    دیدگاه


      #3
      پاسخ : ایجاد تاخییر اشتباه

      :cry: :cry: :cry: :cry:
      درست نمیشهههه میشه میکرو سوخته؟ 1 میلی ثانیه 1 ثانیه طول میکشه

      دیدگاه


        #4
        پاسخ : ایجاد تاخییر اشتباه

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

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

        مثلا روی برد های آرم ECA وقتی روی مسیر کلاک دست بذاری سرعت بد جوری پایین میاد که دلیل عدم کلاک خوردن صحیحه.

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

        دیدگاه


          #5
          پاسخ : ایجاد تاخییر اشتباه

          نوشته اصلی توسط reza javahery
          یه مشکل خیلییی عجیب این کتابخونه delay.h سایت که هست برای ایجاد تاخیر مثلا یک میلی ثانیه دقیقا یه ثانیه تاخییر ایجاد میکنه این برنامه ای هست که استفاده کردم قبلا این مشکلو نداشتم کسی هست راهنمایی کنه؟
          کد:
          #include <AT91SAM7X256.H> 
          #include <lib_AT91SAM7X256.H> 
          #include "delay.h"
          //#include <adc.h>
          //#include <pio.h>
          
          int main (void) {
          int adc_v;
          AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, 0xFFFFFFFF);
          //config_adc(0x10);
          while (1) { 
          //start_adc(); 																				 ;
          //adc_v = read_adc(4);
          
          AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,0xFFFFFFFF);
          AT91F_PIO_SetOutput(AT91C_BASE_PIOA,0x02aa02aa);
          delay_ms(1);
          AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,0xFFFFFFFF);
          AT91F_PIO_SetOutput(AT91C_BASE_PIOA,0x01550155);
          delay_ms(1);
          	} 
          }
          سلام
          از هدر delay.h اصلا نباید انتظار داشته باشی برات تاخیر با دقت تولید کنه چون از حلقه های while و تقریبا تو خالی استفاده میکنه و با دستکاری شدن تنظیمات pll به احتمال قوی زمان رو اشتباه محاسبه میکنه
          برای دقت در اندازه گیری زمان باید از تایمر ها استفاده کنی
          اگه خودت بلدی که هیچ وگرنه میتونی از این کتابخونه استفاده کنی
          http://imanifar.persiangig.com/ECA/Delay.rar
          چندتا تابع داره
          1-
          کد:
          GET_MASTER_CPU_CLOCK (void)
          این تابع مقدار کلاک سیستم را محاسبه میکنه
          2-
          کد:
          void init_delay(void);
          راه اندازی اولیه (جهت فعال سازی و پیکره بندی تنظیمات تایمر کانتر 2)
          3-
          کد:
          void delay_us(unsigned int us);
          ایجاد تاخیر بر حسب میکرو ثانیه (حداکثر 5000 میکرو ثانیه)
          4-
          کد:
          void delay_ms(unsigned long ms);
          ایجاد تاخیر بر حسب میلی ثانیه

          توجه: این برنامه از تایمر کانتر شماره 2 استفاده میکند بنابراین در حین استفاده از این برنامه از تایمر کانتر 2 نباید استفاده شود

          در نهایت از آقای مزراعی بابت تهیه این برنامه تشکر میکنم



          زندگی یعنی امید و حرکت
          کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
          سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
          برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
          به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

          دیدگاه


            #6
            پاسخ : ایجاد تاخییر اشتباه

            تابع تاخیر رو توی هم پوشه کپی کردم هم داخل فابل bord ,..... اما بازم ارور دارم که تابع تاخیر پیدا نشد :redface:
            مدت هاست نیستم

            دیدگاه


              #7
              پاسخ : ایجاد تاخییر اشتباه

              نوشته اصلی توسط abbasalifix
              تابع تاخیر رو توی هم پوشه کپی کردم هم داخل فابل bord ,..... اما بازم ارور دارم که تابع تاخیر پیدا نشد :redface:
              لطفا اررور ها رو عینا اینجا بزارین تا برسی کنم
              زندگی یعنی امید و حرکت
              کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
              سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
              برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
              به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

              دیدگاه

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