Çizmek için Python seri port üzerinden zaman ve gerilim bilgileri göndermek için bir Arduino Uno kullanıyorum. Ancak, ardışık zaman damgaları arasındaki aralık zamanlamaları zaman içinde artmakta ve çizimimi etkilemektedir. Bu özellikle baud hızı 9600 olarak ayarlandığında doğrudur, burada başlangıçtaki zaman farklarım 1320 olabilir ve nispeten kısa bir süre sonra 16400'e yükselir. Bu oran maksimum 115200 bps'ye getirildiğinde, nispeten daha uzun bir gönderme işleminden sonra bile 1340 ila 1500 arasında değişiklik daha yavaş ve daha az fark edilir. Tüm süreler mikrosaniye olarak verilir.
Bu etkiyi azaltıp azaltamayacağımı veya ortadan kaldırabileceğimi ve neden var olduğunu anlamadıysam bilmek istiyorum. Buna neden olan kesintiler ve gecikmeler hakkında bir şeyler okudum, ancak eldeki elektroniklerin karmaşıklığını tam olarak takdir etmiyorum ve bilmek istiyorum:
- Zamanlamada daha fazla hassasiyet alabilir miyim?
- Zamanlamadaki bu değişikliğe ne sebep olur?
Şu anda sahip olduğum şey:
#include <eHealth.h>
extern volatile unsigned long timer0_overflow_count;
float fanalog0;
int analog0;
unsigned long time;
byte serialByte;
void setup() {
Serial.begin(9600);
}
void loop() {
while (Serial.available()>0){
serialByte=Serial.read();
if (serialByte=='S'){
while(1){
fanalog0=eHealth.getECG();
// Use the timer0 => 1 tick every 4 us
time=(timer0_overflow_count << 8) + TCNT0;
// Microseconds conversion.
time=(time*4);
//Print in a file for simulation
//Serial.print(time);
//Serial.print(" ");
Serial.print(fanalog0,5);
Serial.print("\n");
if (Serial.available()>0){
serialByte=Serial.read();
if (serialByte=='F') break;
}
}
}
}
}
eHealth.getECG()
? Bu çağrı her zaman aynı miktarda mı sürüyor?