پاسخ : نمونه کدهایی برای XMEGA
اندازه گیری Duty cycle بصورت متوالی از این روش دارای حداکثر دقت ممکن نیست ( به دلیل خطای ناشی از Restart کرد تایمر بصورت نرم افزاری) هر چند که در مورد SMT160 که دارای خطایی در حد دهم درجه است، می تواند جوابگو باشد. اما در مورد کد شما در همان بدو امر دو مورد به نظر می رسد. یکی مقدار CSTACK است که با مراجعه به جزئیات فایل map. مشاهده می شود دارای مقدار کافی نیست (در پروژه دارای مقدار 0x20 است که با مراجعه به فایل map. مقادیری بسیار بزرگتری از این حافظه مصرف می شود). مورد بعدی مقدار Duty cycle است که ظاهرا در کد شما در 100 ضرب شده و بر حسب درصد محاسبه شده است. در حالیکه برای محاسبه دما در SMT160 باید این مقدار بصورت اعشاری در فرمول قرار داده شود. روشی هم که در متوسط گیری در روتین وقفه و حلقه اصلی بکار برده اید محل مناقشه است و فعلا این دو مورد را بررسی کنید تا در پست های بعدی به این مسئله هم پرداخته شود.
اندازه گیری Duty cycle بصورت متوالی از این روش دارای حداکثر دقت ممکن نیست ( به دلیل خطای ناشی از Restart کرد تایمر بصورت نرم افزاری) هر چند که در مورد SMT160 که دارای خطایی در حد دهم درجه است، می تواند جوابگو باشد. اما در مورد کد شما در همان بدو امر دو مورد به نظر می رسد. یکی مقدار CSTACK است که با مراجعه به جزئیات فایل map. مشاهده می شود دارای مقدار کافی نیست (در پروژه دارای مقدار 0x20 است که با مراجعه به فایل map. مقادیری بسیار بزرگتری از این حافظه مصرف می شود). مورد بعدی مقدار Duty cycle است که ظاهرا در کد شما در 100 ضرب شده و بر حسب درصد محاسبه شده است. در حالیکه برای محاسبه دما در SMT160 باید این مقدار بصورت اعشاری در فرمول قرار داده شود. روشی هم که در متوسط گیری در روتین وقفه و حلقه اصلی بکار برده اید محل مناقشه است و فعلا این دو مورد را بررسی کنید تا در پست های بعدی به این مسئله هم پرداخته شود.
دیدگاه