PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 21-07-2008, 07:45 PM   #11
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Khởi tạo ds1307

Xin cám ơn meishun nhiều nhé !
Mình hiểu cái bẫy DS của bạn thế này: Đặt lệnh ghi vào d/c 0x08 ngay trong hàm khởi tạo DS.
Trong hàm Main() thì kiểm tra lại d/c 0x08 xem có còn duy trì giá trị đó không. Nếu không còn tức là các thông số thời giờ trong DS cũng đã sai, phải cho khởi tạo lại DS. Nếu còn thì bỏ qua bước khởi tạo. Đại khái code như thế này phải không meishun.

READ_DS(); //Đọc ds1307, có đọc X = giá trị lưu tại 0x08 (0x08 chứa 0xff)
if (X != 0xff) SET_DS(); //Nếu khác 0xff thì Khởi tạo DS1307, có ghi vào 0x08 giá trị 0xff
---------------------------------------------------------------------
22/7/2008
Mình đã cho chạy trên mạch, kết quả OK rồi. Riêng con DS chạy cũng ổn định mà. Có khi bạn thay con DS khác xem sao.
Và mình đề nghị thêm: thay giá trị 0xff bằng 1 giá trị khác, 0x55 chẳng hạn. Bởi vì số 0xff đôi khi mạch bị nhiễu cũng ngẫu nhiên sinh ra sô 0xff (hoặc 0x00) nên dùng làm mốc theo dỏi thì không chắc lắm, còn số khác như 0x55 chẳng hạn, thì xác xuất do mạch phát sinh ngãu nhiên sẽ ít xảy ra -> chống hiễu tốt hơn !

thay đổi nội dung bởi: minhsondaklak, 04-08-2008 lúc 10:44 AM. Lý do: Làm rõ ý
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 12:04 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam