به این لینک یه سری بزنید
https://learn.adafruit.com/multi-tas...lis-for-timing
به این لینک یه سری بزنید
https://learn.adafruit.com/multi-tas...lis-for-timing
سعی من این بود که بپرسم این تابع چجوری کار میکنه ، بیشتر پیرو همون پستی که مربوط به "قابلیت آردوینو در انجام همزمان چند کار"
1-و اینکه به عنوان مثال میکرو در حال انجام یه حلقه تکرار برای پیدا کردن مقدار بهینه یه مساله غیرخطی عدد صحیح باشه (زمان انجام حلقه نسبتا زیاد باشه) بعد که از حلقه اومد بیرون اون زمانی که میکرو داشته مساله رو حل میکرده تابع millis زمان رو شمرده یا نه؟ (اگه شمرده چجوری شمرده ، با وقفه؟)
2-آیا اینکه millis زمانی بیشتر از زمان واقعی رو برمیگردونه دلیلش اینه که فرکانش کریستال بیشتر از 16 مگا هرتزه؟
؟
ملت توضیحی ندارن؟
بله ، اما اون مثالی که زده و گفته 5 ثانیه رو براش 6 ثانیه میشمره ، من اون مشکل رو نداشتم برای من شمردن درست انجام میشد و کم کم از مقدار واقعی فاصله میگرفت یعنی برای مثال تا n=900 زمان درست بود بعد از اون یکی از مقدار واقعی بیشتر شد و در زمان 1800 باز یکی بیشتر شد و نهایتا بعد از 1 ساعت (n=3600) ، چهار تا بیشتر از مقدار واقعی بود
با این همه سوال بیشتر در مورد نحوه شمارش هست نه دقتش
این TCNT جدا از پروسسور اصلی کار میکنه؟ یعنی فقط کارش شمردنه؟
اگه جدا باشه پس کلا خطای شمارش میتونه مستقل از سنگینی یا سبکی برنامه باشه (شرایط محیطی رو جوری تنظیم کنیم که فرکانس نوسان ساز داخلی تغییرات زیادی نداشته باشه)
اینجا یه سری توضحات داده:
Questions about millis()