Chào cả nhà!
Tôi mở đề tài này để mời anh em, những ai đã từng sử dụng pin (battery) trong thiết kế mạch của mình cùng vào trao đổi.
Việc sử dụng pin trong thiết kế có mục đích là dự phòng trường hợp mất điện, mạch sẽ chuyển sang sử dụng pin để nuôi IC thời gian thực. Công việc của người thiết kế là sẽ phải tính toán xem pin đã dùng được bao lâu rồi, còn bao lâu nữa thì hết để còn thay pin mới.
Giải thuật của tôi như sau :
- Trong chương trình chính (main prog), cứ sau 1 giây lại lưu thời gian thực 1 lần vào 1 vị trí nhất định trong EEPROM hoặc NVRAM, tạm gọi vùng này là T1 . T1 bao gồm Year1-Month1-Day1-Hour1-Min1-Sec1.
-Giả sử tại thời điểm mất điện, T1 đã lưu được thời điểm mất điện gần nhất.
- Khi có điện trở lại, thời điểm có điện được lưu là T2.
- Muốn xác định được khoảng thời gian mất điện ta lấy T2 trừ cho T1
- Vấn đề của tôi là phải giải quyết phép trừ này sao cho chính xác. Vậy ai có cao kiến gì xin chỉ giáo ạ!!!
Tôi mở đề tài này để mời anh em, những ai đã từng sử dụng pin (battery) trong thiết kế mạch của mình cùng vào trao đổi.
Việc sử dụng pin trong thiết kế có mục đích là dự phòng trường hợp mất điện, mạch sẽ chuyển sang sử dụng pin để nuôi IC thời gian thực. Công việc của người thiết kế là sẽ phải tính toán xem pin đã dùng được bao lâu rồi, còn bao lâu nữa thì hết để còn thay pin mới.
Giải thuật của tôi như sau :
- Trong chương trình chính (main prog), cứ sau 1 giây lại lưu thời gian thực 1 lần vào 1 vị trí nhất định trong EEPROM hoặc NVRAM, tạm gọi vùng này là T1 . T1 bao gồm Year1-Month1-Day1-Hour1-Min1-Sec1.
-Giả sử tại thời điểm mất điện, T1 đã lưu được thời điểm mất điện gần nhất.
- Khi có điện trở lại, thời điểm có điện được lưu là T2.
- Muốn xác định được khoảng thời gian mất điện ta lấy T2 trừ cho T1
- Vấn đề của tôi là phải giải quyết phép trừ này sao cho chính xác. Vậy ai có cao kiến gì xin chỉ giáo ạ!!!
Comment