motu
03-01-2010, 06:58 PM
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:
#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ẻ!
#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ẻ!