Kasutan Arduino Unot aja- ja pingeteabe edastamiseks jadapordi kaudu Pythonile kruntimiseks. Siiski näib järjestikuste ajatemplite ajavahemik aja jooksul suurenevat, mõjutades minu kavandamist. See kehtib eriti siis, kui baudi kiiruseks on seatud 9600, kus minu esialgsed ajaerinevused võivad olla 1320 ja suurenevad suhteliselt lühikese aja möödudes 16400-ni. Kui see kiirus on maksimaalselt 115200 bps, on muutus aeglasem ja vähem märgatav, umbes 1340-lt 1500-le isegi pärast suhteliselt pikka saatmist. Kõik ajad on antud mikrosekundites.
Tahaksin teada, kas saan seda efekti vähendada või selle kõrvaldada ja kui ei saa aru, miks see eksisteerib. Olen lugenud asju katkestuste ja viivituste kohta, mis seda põhjustavad, kuid ma ei mõista täielikult olemasoleva elektroonika keerukust ja tahaksin teada:
- Kas ma saan täpsust ajastada?
- Mis põhjustab aja muutuse?
Siin on see, mis mul praegu on:
#include <eHealth.h>extern lenduv allkirjastamata pikk taimer0_overflow_count; float fanalog0; int analoog0; allkirjastamata kaua; bait serialByte; void setup () {Serial.begin (9600);} void loop () {while (Serial.available () >0) {serialByte = Serial.read (); if (serialByte == 'S') {while (1) {fanalog0 = eHealth.getECG (); // Kasutage taimerit0 = > 1 linnuke iga 4 aja järel = (timer0_overflow_count << 8) + TCNT0; // Mikrosekundite teisendamine. aeg = (aeg * 4); // Simuleerimiseks faili printimine //Serial.print(time); //Serial.print (""); Seeriaprint (fanalog0,5); Serial.print ("\ n"); if (Serial.available () >0) {serialByte = Serial.read (); kui (serialByte == 'F') puruneb; }}}}}