- PWM 1kHz là mặc định của timer với hệ số chia là 64 (theo lý thuyết là 976.56Hz). Nếu hệ số chia là 1 thì nâng tối đa được 62,500Hz.
- Việc chi kỳ tính PID minimum là 20ms thì dùng hàm thời gian trong vòng lặp để bỏ không tính nếu thời gian đo được từ lần trước <20ms. Nếu > 20ms thì tính PID một lần. Ở đây minimum là 20ms là mình chọn đại, và gọi là minimum vì nếu encoder đọc với tần số quá cao thì vxl không còn thời gian để mà tính PID nữa. Chíp rùa mà đọc bằng ngắt thì dính cái khoảng này.
Theo ý của bác NS thì khi đó.. với chu kỳ quét đủ lớn thì ta có thể giải quyết mọi chuyện mà không phải bị gián đoạn bởi ngắt. Nhưng với chip chậm.. thì giải pháp này cần đươc cân đo kỹ hơn. Nhất là thời gian tối đa mà một chu kỳ tính PID cần (với cao thủ Assembly thì chắc nhìn code PID là đã tính được khi thực hiện bài toán mất bao nhiêu chu kỳ máy rồi). Từ đó tính được tần số lấy mẫu, tính được giới hạn số xung encoder cũng như tốc độ tối đa mà motor chạy không bị lỗi.
Nâng chu kỳ tính toán PID lên 1-2kHz thì chưa biết là con atmega328 với trình code cùi bắp của mình thì có lên đến mức đó được không? Để có time sẽ test thử xem một chu kỳ tính PID mất bao nhiêu thời gian thực. Chỉ tính PID, xuất xung mẫu ra ngoài rồi đo bằng frequency metter chắc là tạm tin được đúng thời gian thực
Với trình còi thì mới biết và làm được nhiêu đó. Mấy cái cao siêu hơn để có thể tối ưu hóa tới mức chu kỳ xung nhịp của vxl thì hiện botay.com. Chắc sẽ tìm hiểu nhiều hơn cái timer trong vxl ở các bài tập khác. Nhược điểm chậm và giới hạn số xung cũng như tần số đọc encoder tạm chấp nhận trong thí nghiệm này. Dù đó là bước đi lùi công nghệ

. Gần tết nên time có cũng cạn, khi có time thì tranh thủ nghiên cứu lý thuyết & code sơ sơ. Sau này nếu còn hứng thì chuyển lên ARM, đọc encoder bằng chip riêng v.v.... cho bằng với cụ Gamo.