اطلاعیه

Collapse
No announcement yet.

نمونه گیری استاندارد

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

    نمونه گیری استاندارد

    باسلام و عرض خسته نباشید خدمت همه عزیزان

    من چندتا سنسور دارم و یه مدار stm32f103ret6 که هم روی رم داده هام رو ذخیره میکنم و هم در پورت سریال نمایش میدم.

    حالا به فرض اینکه من بخوام در یک ثانیه مثلا 100 نمونه از داده هام رو ذخیر کنم شما چه راه حلی برای این کار دارید؟
    باسپاس فراوان

    #2
    پاسخ : نمونه گیری استاندارد

    کسی نیست راهنمایی کنه؟

    دیدگاه


      #3
      پاسخ : نمونه گیری استاندارد

      خوب ذخیره کنید دیگه مشکلش چیه!؟
      یا تو ایتوپرام یا تو spi flash یا sd ...
      فيلم آموزشي ميکروکنترلر LPC1768
      فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
      فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
      فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...

      دیدگاه


        #4
        پاسخ : نمونه گیری استاندارد

        ممنون از جواب متفکرانه شما دوست عزیز
        اما منظور من اینه که چطور در 1 ثانیه 100 نمونه ذخیره کنم نه اینکه چطور و با چی ذخیره کنم.

        من الان با خروجی پورت سریال اینکار رو انجام میدم ولی مشکل اینجاست مثلا در ثانیه 1 ،100 در ثانیه 2 ،101 بعضی جاها 98 و ....

        دیدگاه


          #5
          پاسخ : نمونه گیری استاندارد

          من به این نتیجه رسیدم که باید از تایمر استفاده کنم و برای همین تایمر یک رو راه اندازی کردم ولی بازم یه مشکل عجیب دارم.
          اولا تایمرم رو تنظیم کردم روی 1میلی ثانیه ولی توی هر ثانیه 112 تا نمونه خروجی میده دوما بازم مثل قبل پایین بالا میشه مثلا بعضی وقتا میشه111 بعضی وقتا 112
          لطفا راهنمایی کنید

          دیدگاه


            #6
            پاسخ : نمونه گیری استاندارد

            خوب بالاخره یه ذره خطا را باید قبول کنید.چون کلاک میکرو هم دقیق دقیق نیست.
            دقیق ترین راه استفاده از تایمر است.البته فک کنم از این ها استفاده کنید مشکل 99 درصد حل میشه.
            http://roboeq.ir/search/search_key/%D8%A7%D8%B3%DB%8C%D9%84%D8%A7%D8%AA%D9%88%D8%B1/page/2/
            آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

            دیدگاه


              #7
              پاسخ : نمونه گیری استاندارد

              وقت بخیر

              شما تایمر رو برای 10 میلی ثانیه و رخداد اینتراپت تنظیم کنید !!
              حالا در هر اینتراپت یه داده ارسال کنید !! هم نظم ارسال داده مرتب میشه هم در یم ثانیه 100 نمونه ارسال میشه !!

              دیدگاه


                #8
                پاسخ : نمونه گیری استاندارد

                ممنون از پاسخ های شما دوستان عزیز

                من تنظیم کردم ولی نظم رعایت نمیشه دلیل اینکه نظم رعایت نمیشه فکر میکنم دستور printf هستش کد برنامه usart رو نگاه کردم خیلی جالبه به جای اینکه داده ها رو به صورت byte ارسال کنه میاد بصورت کاراکتری ارسال میکنه و همین سبب میشه که نظم به هم بخوره بنظر شما همینطوره که من میگم یا نه ؟؟

                دیدگاه


                  #9
                  پاسخ : نمونه گیری استاندارد

                  برای نظم دادن میخواستم از این کد استفاده کنم ولی خیلی خیلی خنده داره چون در هرصورت شرط اینکه یک ثانیه گذشته اجرا میشه؟

                  و خروجی اینطور میشه:

                  0 100 0
                  0 0 0
                  که باید اینطور بشه

                  0 100 0
                  1 0 1
                  کد:
                  if (TIM1->SR & (TIM_SR_UIF)) 
                  	{         
                  		Count++;
                  		NSec=RTC1.sec;
                  		if (Count<=100)
                  		{
                  			rtc_gettime (&RTC1);
                  			PSec=NSec;
                  			printf("%d %d %d\r\n",NSec,Count,PSec);
                  			TIM1->SR &= ~(TIM_SR_UIF);          /* clear UIF flag      */
                  		}
                  		else if(PSec<NSec)
                  		{
                  			Count=0;
                  		}
                   }

                  دیدگاه

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