Tôi đang cố gắng đập dữ liệu DMX và yêu cầu 4us xung. Không gặp nhiều may mắn với kết quả mà tôi đang kiểm tra để xem Arduino chậm trễ đến mức nào ... Có vẻ như nó khá khủng khiếp với nó.
Đây là một thử nghiệm nhỏ tôi đã làm:
unsigned long ptime;
void setup() {
Serial.begin(9600);
}
void loop() {
ptime = micros();
delayMicroseconds(4);
Serial.println(micros() - ptime);
delay(1000); //just to keep the serial monitor from going nuts
}
Và kết quả:
8 4 8 4 4 4 4 4 8 8 8 8 4 8 8 4 4 8 4 4 4 8 8 8 4 8 4 4
Tôi đã bị sốc khi biết độ chính xác của nó tệ đến mức nào. Đó là gấp đôi thời gian tôi muốn trì hoãn, nhưng nó thậm chí không nhất quán với nơi tôi chỉ có thể chia cho 2!
Có bất cứ điều gì tôi có thể làm để có được kết quả chính xác, phù hợp?