PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تشخیص بیشترین محتوا متغییر ها



mehrannohtani
26-09-2016, 19:41
سلام، من میکرو مگا 32 استفاده میکنم. توسط مبدل آنالوگ به دیجیتال داخلی میکرو میخوام شروع به نمونه برداری سیگنال کنم. دامنه سیگنال بین صفر تا حداکثر 5 ولت در نوسان است. مثلا هر 300 میلی ثانیه و مثلا به مدت 10 ثانیه مدام نمونه برداری کنم و در هر 300 میلی ثانیه در داخل یک متغییر جدید بریزم ( الان تعداد متغییر ها زیاد شد دیگه). تا اینجای کار خیلی سخت نبود. بعد از 10 ثانیه کل نمونه برداری متوقف بشه و عملیات مقایسه شروع بشه و سیستم برسی کنه که از میان این همه متغییر کدام بیشترین را دارد و با تشخیص این که کدام متغییر بیشترین مقدار را دارد مثلا فلان محتوای متغییر A را برابر مثلا 8 قرار دهید.
خودم یه برنامه ای بسیار ساده ابتدایی نوشتم ولی حجمش خیلی بالا رفت ( بالاتر از 32 کیلو شد فایل هگزش خخخخ ) میشه دوستان راهنمایی کنند باید چیکار کنم؟
من میخوام که کلا یکجا در طول مدت نمونه ها را داشته باشم و در نهایت عملیات مقایسه رو انجام بدم. هر کاری میکنم حجم برنامه ام که به روش خودم نوشتم زیاد میشه. زبان بیسیک و میکرو avr است

mehrannohtani
26-09-2016, 21:38
mm

mrm
27-09-2016, 13:40
من ببیسیک رو درست بلید نیستم ولی فکر کنم یه همچین چیزی بشه.
بهتره برای برنامه نویسی اول روش های برنامه نویسی با زبان مورد نظرتون رو هم یاد بگیرید
این کد مقدار ماکزیمم Adc رو داخل max ها ذخیره میکنه . اگر شماره ارایه ایی که مقدار بیشتریم رو داره رو میخواید باید مقدار Counter رو دخیره کنید.




Config Portd = Output

Dim F As Word
Dim U(50) As Word
Dim T(50) As Word
Dim S(50) As Word
dim counter as word
dim maxT as word,maxT as word,maxS as word


Set Portd.2
for counter=0 to 50
U(counter) = Getadc(5)
T(counter) = Getadc(4)
S(counter) = Getadc(3)
Waitms 333
next

maxT=0
maxS=0
maxU=0
for counter=0 to 50
if U(counter) > maxU then
maxU=U(counter)
end if
if S(counter) > maxS then
maxS=S(counter)
end if
if T(counter) > maxT then
maxT=T(counter)
end if
next

mehrannohtani
27-09-2016, 16:05
سلام . ممنون برای برنامه ای که نوشتید. در بسکام خطاء میده ..... در خط 7 ام در تعاریف t رو دوبار تعریف کردی که باید u تعریف میشد... البته اون هم که درست کردم بازم 2 تا خطاء میده ... خودتون هم یه تستی کنید. خود من هم زیاد وارد نیستم تازه کار کردن با میکرو را شروع کردم. دوستانی که واردتر هستند راهنمایی کنند.

pirozy
30-09-2016, 14:50
سلام
فایل هگز که موردی نداره اگه از فلش میکرو بشتر بشه واسه پی بردن به اندازه واقعی فایل برنامه ات از hconvertor استفاده کن از قسمت hextobin فایل هگز رو به bin تبدیل کن و اونوقت ببین حجم فایل bin چند شده که معمولا یک سوم حجم فایل هگز هستش در حقیقت همون فایل bin روی فلش میکرو پروگرم میشه که نباید از فلش میکروت بیشتر باشه