[Help] Lỗi vẽ đáp ứng vận tốc qua UART và C# ZedGraph

hmtuong

Trứng gà
Mình đang làm điều khiển tốc độ động cơ DC. Mình dùng chương trình vẽ đồ thì đáp ứng vận tốc theo thời gian bằng Visual C# sử dụng Zedgraph như tutorial của PIF, dùng UART để truyền dữ liệu, baudrate là 115200, cứ 10ms mình truyền dữ liệu một lần. Nhưng mình nhận thấy là với thời gian gửi là 10ms thì chương trình C# không nhận dữ liệu "kịp"(mình cho là vậy) dẫn đến vẽ đồ thị sai lệch về thời gian. Ví dụ mình cho động cơ chạy 10s thì đồ thị vẽ trục thời gian dài đến >20s. Mọi người có biết nguyên nhân vì sao và có cách nào khả thi hơn không, giúp mình với!
 

cowboyhere

Cố Vấn CLB
Staff member
khi giao tiếp với máy tính qua Uart có khả năng bị tràn buffer, bạn nên có các hàm release bộ nhớ, tiếp theo bạn xem lại cái timer dùng vẽ đồ thị, có thể vấn đề ở đây, còn nếu vẫn ko được bạn gởi 1 kis tự từ máy tính xuống 10ms/ lần chẳng hạn, yêu cầu vi xử lí gởi tốc độ lên, cách này thì do máy tính quản lý việc nhận, sẽ chủ động hơn trong vẽ đồ thị chứ ko nên để vi xử lí gởi thả cửa vì windows ko có cơ chế ngắt hardware,
 

hmtuong

Trứng gà
Mình dùng ngắt để vẽ đồ thị. Khi có sự kiện nhận data, sẽ xảy ra ngắt vã vẽ data lên đồ thị.
 
Top