Thảo luận Tất cả vấn đề về ic đồng hồ DS1307

anton

Học sinh phổ thông
#94
Nếu đọc theo cách của mình thì khi có xung từ chân số 7 sẽ ngắt tức thời, nếu đang hiện thị ở led giờ thì phải ngưng để đọc time, đọc xong lại hiện thị từ đầu, (LED giờ tiếp) nên nó bị giật.
Còn theo cách của bạn thì khi có xung từ chân số 7, phần hiện thị vẫn tiếp tục hiện thị xong tất cả các LED mới đọc time từ RTC, như thế ko bị giật. :). Cảm ơn bạn thêm một lần nữa. Chúc bạn và gia đình đón tết vui vẻ nhé.
chắc b nhầm. Khi xảy ra ngắt thì tất cả chương trình chuyển sang phục vụ ngắt. Chỉ là chương trình phục vụ ngắt kia có 1 câu lệnh gán giá trị chiếm thời gian rất nhỏ cỡ micro giây xong quay lại ct chính nên cảm giác ko bị nháy led thôi. I think so :))
 

vdungdt

Học sinh phổ thông
#96
Bây giờ bàn tới việc ds chạy có chính xác không mới là điều quan trọng.Mình dùng ds rất nhiều mua loại 40k,dùng thạch anh xịn luôn nhưng ds không bao giờ chạy chính xác,một ngày chậm ít nhất là 1s,nhiệt độ càng cao sai càng nhiều, cứ một thời gian lại phải chỉnh lại dho.
Theo mình nên để lúc 3 giờ sáng hãy bù (Cái này thật lòng luôn). Vì ở 0 giờ vẫn còn rất nhiều người thức, và ko may...
Cái này mình cũng đã " hội thảo" với mấy vị cao niên, họ cũng cho rằng nên để lúc 3 giờ, vì những lý do sau :
1. Lúc 3 giờ, rất ít người còn để ý đến đồng hồ, vì đây là lúc giấc ngủ sâu nhất
2. Chẳng lẽ một ngày mới bắt đầu (0 giờ) ta đã cho ngay một sự điều chỉnh.... thì ko vui lắm..
code tự chỉnh cố định 1ngày 1s như sau:
Mã:
 //*******************************
void tinhchinh_ds1307()
{ if((hour==0)&&(minute==0)&&(second==0))//chọn luc 00:00:00 de bu s
      { second=1;//so giay can dieu chinh trong ngày
      DS1307_Write(0x00,second);//xong ghi vào ds
      }
}
//hàm này các bạn đặt dưới hàm đoc DS
Bạn nào có cách hay hơn chia sẽ nhé..!!
Ý kiến này hay, mình cũng bị chậm giờ, cứ vài tuần lại phải chỉnh giờ lại
 
#97
Chào các bạn.
Theo kinh nghiệm của mình ds1307,1302 chạy sai là do nhiều, do phần cứng, tiếp đó phần mềm phải chuẩn thì nó làm việc mới ngon. Để khắc phục các vấn đề trên, điều đầu tiên là phải đọc kỹ datasheet của nó rồi mới làm việc với nó:
-- Với ds1307: thạch anh hàn càng gần ds1307 càng tốt, bao quanh chân hàn thạch anh phải là 1 vòng đồng nối mát. 2 chân SDA và SCL phải có tụ điện 10pF. Điện áp cấp phải từ 4.5v đến 5.5v. Pin backup phải lắp ,nếu không thì chân pin backup phải nối mát. tụ 104 lọc nguồn
---- Với ds1302: thạch anh hàn càng gần ds1307 càng tốt, bao quanh chân hàn thạch anh phải là 1 vòng đồng nối mát, mỗi chân thạch anh có 1 tụ 6pF nối mát nếu không sẽ sai giờ ( mỗi ngày vài giây). chân SDA có tụ 10pF nối mát.Pin backup phải lắp ,nếu không thì chân pin backup phải nối mát.tụ 104 lọc nguồn
---- Cuối cùng là phần mềm: khi vđk được bật nguồn, phải kiểm tra xem ds1307,1302 có chạy không? không chạy thì cho nó chạy bằng cách ghi 0 vào bít 7 của thanh ghi giây. tiếp đó quá trình giao tiếp với ds1307 không được có lỗi, quá trình đọc ghi ds không nên diễn ra quá nhiều trong 1s, tốt nhất chỉ cần 3 đến 5 lân thay vì vài trăm lần.

Nói tóm lại việc ds1307 hay 1302 chạy sai chủ yếu do phần cứng, nếu khắc phục được lỗi phần cứng thì con ds xịn chỉ khác con rởm ở tuổi thọ và công suất tiêu thụ, về độ chính xác thì gần như nhau mà thôi
Chân SDA của DS1302 là chân số mấy hả bạn huunho . Xem datasheet ko thấy chân này. Thanks
 

Quảng cáo Google