Nguyên văn bởi autumnsonata
Xem bài viết
Khi vào chương trình ngắt ngoài thuật toán của bạn còn thể thêm một lệnh trễ nhỏ trước khi thực hiện các lệnh khác để chống rung được hiệu ủa hơn. Còn vấn đề đồng hồ của bạn chạy nhanh hay chạy chậm nguyên nhân là do thạch anh không chuẩn ( có sai số ). Ngoài ra khi bạn cắm bo, dây nối thạch anh với DS dài cũng gây nhiễu làm chạy nhanh hoặc chạy chậm. Tuy nhiên với mình làm thì thấy mỗi ngày chậm khoảng một vài giây. Để giải quyết vấn đề này bạn có thể dùng sảo thuật. Tuy theo mức độ chạy nhanh hay chạy chậm của DS mà bạn có thể thêm hoặc bớt một giây theo mỗi chu kì chạy nhanh của máy.
Mình lấy VD: Đồng hồ của mình mỗi ngày chạy nhanh 3 giây. Như vậy cứ sau một ngày mình lại trừ đi 3 giây sua đó ghi lại thông số thời gian cho DS. Như vậy có thể nói đồng hồ mình tương đối chính xác trong nhiều năm. ( mình so sánh với đồng hồ của máy tính ).
Chúc bạn thành công.
chờ ngày mai có mạch in rồi hàn chắc chắn xem sao. còn cái ngắt kia thì bởi vì e dùng ngắt timer khoảng 327ms để đọc ghi giây từ ds1307 nên ko dùng kiểm tra IO thông thường đc mà buộc phải dùng ngắt ngoài. e đã chống rung bằng cách có tín hiệu ngắt ngoài thì chuyển DDR chân ngắt thành output luôn, sau đó lại chuyển lại input. với lại chuyển cái nút chọn sang chân khác chứ ko dùng chung bằng nút ngắt nữa. thế mà thỉnh thoảng nó vẫn thực hiện ngắt 2 lần là sao anh?

Comment