خانه / ARM / روشی جالب برای مشتق گرفتن از ورودی

روشی جالب برای مشتق گرفتن از ورودی

حتما نوسانات مقدار ADC رو توی نمایش مقدار خونده شده دیدید

در بیشتر موارد برای فاکتور گرفتن یه تعداد رو با هم جمع میکنیم و تقسیم بر تعداد میکنیم

اینجا قراره یه روش ساده تر و سریعتر و بهینه تر معرفی کنیم که نیازی به حلقه و … نداره

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


#define MAX_DERIVATIVE_INDEX 10
uint16_t Derivative_Process(uint16_t input, uint8_t it, uint8_t index){
static uint32_t acu[MAX_DERIVATIVE_INDEX];
acu[index] += input;
uint16_t output = acu[index] / it;
if(acu[index] > output)
acu[index] -= output;
else
acu[index] = 0;
return output;
}

ماکروی MAX_DERIVATIVE_INDEX برای مشخص کردن تعداد مشتق گیرمون هست
جهت استفاده از این تابع برای چنتا ورودی باید این ماکرو رو برابر تعداد ورودی کنیم
برای مثال اگر شما ۵ تا ورودی ADC دارید باید این مقدار رو برابر ۵ درنظر بگیرید

ورودی های تابع از این قرار هست
input ورودی مقدار خونده شده
it زمان مشتق گیری یا تعداد نمونه برداری هست هرچقدر این عدد بزرگتر باشه خروجی صاف تر و البته تابع کند تر خواد شد
index شماره ورودی این مقدار برای هر ورودی باید یه عدد مشخص باشه
و اما توی ورودی متغیر acu جمع مقدار ورودی ها در اون قرار میگیره
توجه داشته باشید که باید مقدار ورودی it با توجه به نوع متغیر acu و مقدار ماکزیمم ورودی درنضر گرفته بشه تا سرریز نشه

خروجی تابع هم مقدار محاسبه شده خواهد بود

درباره ی Alma

همچنین ببینید

اسیلوسکوپ

اسیلوسکوپ اسیلوسکوپ دستگاهی برای نمایش تصویری شکل موج ها و سیگنال های متغیر در زمان …

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Time limit is exhausted. Please reload the CAPTCHA.