Trích:
Nguyên văn bởi motu
Mình đang test mạch đồng hồ chạy DS1307 theo tut trên PICVIETNAM nhưng không hiểu ý nghĩa đoạn mã sau:
Code:
#INT_EXT
void khoitao()
{
/*--------- khoi tao hien thi ban dau : SAT, 21-06-2008, 02:25:00 AM --------*/
second = 0; //giay: 00.
minute = 25; //phut: 25.
hour = 2; //gio: 02 (che do 24h).
day = 6; //thu 7: SAT (SATUDAY).
date = 21; //ngay: 21.
month = 6; //thang: 06.
year = 8; //nam: 08.
i2c_start();
i2c_write(0xD0); //den dia chi ds1307.
i2c_write(0x00); //den dia chi thanh ghi 00H.
i2c_write(write(second));
i2c_write(write(minute));
i2c_write(write(hour));
i2c_write(write(day));
i2c_write(write(date));
i2c_write(write(month));
i2c_write(write(year));
i2c_start();
i2c_write(0xD0);
i2c_write(0x07); //den thanh ghi dieu khien.
i2c_write(0x10); //tao xung vuong 1Hz.
i2c_stop();
}
để đoạn mã trên thì lúc dịch CCS báo:
>>>Warning 216 "code.c" Line210(0,1):Interrupts disabled during call to prevent re-entrancy: (@MUL88)
>>>Warning 216 "code.c" Line210(0,1):Interrupts disabled during call to prevent re-entrancy: (@DIV88)
>>>Warning 216 "code.c" Line210(0,1):Interrupts disabled during call to prevent re-entrancy: (@2C_WRITEU_1)
Mạch không chạy, bỏ đoạn mã đi thì CCS không báo gì, mạch chạy mới chết chứ, anh e nào từng viết code cho DS1307 giúp mình với.
Nhân tiện cho mình hỏi, mình đang làm cái đồng hồ hẹn giờ tắt mở đèn cho hồ cá, không biết các giá trị thời gian tắt, mở đèn có thể lưu ở đâu để cúp điện không mất dữ liệu, mình thấy trong con DS1307 từ địa chỉ 08h trở đi là RAM không biết sử dụng nó được không.
Chúc cả nhà cuối tuần vui vẻ!
|
Đó là ngắt từ phím bấm bên ngoài để setup time cho ds, nhưng mà khai báo sai rồi, ví dụ
second = 0x00; //giay: 00.
minute = 0x25; //phut: 25.
hour = 0x02; //gio: 02 (che do 24h).
day = 0x07; //thu 7: SAT (SATUDAY).
date = 0x21; //ngay: 21.
month = 0x06; //thang: 06.
year = 0x08; //nam: 08.
nếu muốn khai báo kiểu như bạn thì phải convert từ số DEC sang số BCD.
Còn khi dịch chương trình, bạn chỉ cần quan tâm đến errers thôi, còn các warning thì kệ nó