אני משתמש ב- Arduino Uno כדי לשלוח מידע על זמן ומתח על היציאה הטורית לפייתון כדי להתוות. עם זאת נראה שתזמוני המרווחים בין חותמות זמן עוקבות הולכים וגוברים עם הזמן, ומשפיעים על העלילה שלי. זה נכון במיוחד כאשר קצב השידור מוגדר ל 9600, שם הפרשי הזמן הראשוניים שלי אולי 1320 ועולים ל 16400 לאחר פרק זמן קצר יחסית. כאשר קצב זה מוגדר למקסימום של 115200 bps השינוי הוא איטי יותר ופחות מורגש, מסביבות 1340 ל- 1500 גם לאחר זמן שליחה יחסית ארוך. כל הזמנים ניתנים במיקרו-שניות.
ברצוני לדעת אם אוכל להפחית או לבטל את האפקט הזה, ואם לא להבין מדוע הוא קיים. קראתי דברים על הפרעות ועיכובים הגורמים לכך, אך אני לא מעריך את המורכבות של האלקטרוניקה בהישג יד ורוצה לדעת:
- האם אוכל לקבל דיוק רב יותר בתזמון?
- מה גורם לשינוי בתזמון הזה?
הנה מה שיש לי כרגע:
# כלול <eHealth.h>extern נדיף זמן לא ארוך חתום 0_זרימת_ספירה; fanalog0 צף; int אנלוגי 0; זמן לא חתום בייט serialByte; הגדרת חלל () {Serial.begin (9600);} loop loop () {while (Serial.available () >0) {serialByte = Serial.read (); if (serialByte == 'S') {while (1) {fanalog0 = eHealth.getECG (); // השתמש בטיימר 0 = > 1 סמן כל 4 us time = (timer0_overflow_count << 8) + TCNT0; // המרת מיקרו-שניות. זמן = (זמן * 4); // הדפס בקובץ להדמיה //Serial.print(time); //Serial.print (""); Serial.print (fanalog0,5); Serial.print ("\ n"); אם (Serial.available () >0) {serialByte = Serial.read (); אם (serialByte == 'F') הפסקה; }}}}}