Tình hình là em đa sử dụng WINAVR để nạp cho AVR. Và em cũng đa nghiên cứu con DS1307. Search google thì thấy có thư viện DS1307.h có sẵn các hàm thao tác với Chip này. Nhưng mà tìm hoài trong thư mục chứa thư viện của WINAVR ko thấy có. Hình như là phải dùng trình nạp Codevision AVR mới có thư viện này đúng ko ạ. Cho em hỏi là em nếu em chép thư viện này qua WINAVR có chạy dc ko ạ. Nếu được thì bác nào cho em xin thư viện này nhá
Thông báo
Collapse
No announcement yet.
Thư viện DS1307.h
Collapse
X
-
có thể viết một thư viện co nó rồi add vào mục cài đặt đo, sau này code thì add vào và thao tác thôi, có thể tham khảo thư viện ds1307 của codevision rồi viết theo đúng cú pháp của winavr
đây là lib của nó trong cv
bạn dùng cv thì bản 2.5 trở lên phải ***** mới có hỗ trợ ds1307
chúc thành công
Code:/* CodeVisionAVR C Compiler (C) 1998-2010 Pavel Haiduc, HP InfoTech S.R.L. Dallas Semiconductors DS1307 I2C Bus Real Time Clock functions */ #include <bcd.h> #ifdef _ATXMEGA_DEVICE_ #include <twix.h> static TWI_MASTER_INFO_t *ptwi_master; void ds1307_twi_init(TWI_MASTER_INFO_t *ptwim) { ptwi_master=ptwim; } unsigned char rtc_read(unsigned char address) { unsigned char r; twi_master_trans(ptwi_master,0xd0>>1,&address,1,&r,1); return r; } void rtc_write(unsigned char address,unsigned char data) { unsigned char w[2]; w[0]=address; w[1]=data; twi_master_trans(ptwi_master,0xd0>>1,w,2,NULL,0); } void rtc_init(unsigned char rs,unsigned char sqwe,unsigned char out) { unsigned char w[2]; rs&=3; if (sqwe) rs|=0x10; if (out) rs|=0x80; w[0]=7; w[1]=rs; twi_master_trans(ptwi_master,0xd0>>1,w,2,NULL,0); } void rtc_get_time(unsigned char *hour,unsigned char *min,unsigned char *sec) { unsigned char w=0,r[3]; twi_master_trans(ptwi_master,0xd0>>1,&w,1,r,3); *sec=bcd2bin(r[0]); *min=bcd2bin(r[1]); *hour=bcd2bin(r[2]); } void rtc_set_time(unsigned char hour,unsigned char min,unsigned char sec) { unsigned char w[4]; w[0]=0; w[1]=bin2bcd(sec); w[2]=bin2bcd(min); w[3]=bin2bcd(hour); twi_master_trans(ptwi_master,0xd0>>1,w,4,NULL,0); } void rtc_get_date(unsigned char *date,unsigned char *month,unsigned char *year) { unsigned char w=4,r[3]; twi_master_trans(ptwi_master,0xd0>>1,&w,1,r,3); *date=bcd2bin(r[0]); *month=bcd2bin(r[1]); *year=bcd2bin(r[2]); } void rtc_set_date(unsigned char date,unsigned char month,unsigned char year) { unsigned char w[4]; w[0]=4; w[1]=bin2bcd(date); w[2]=bin2bcd(month); w[3]=bin2bcd(year); twi_master_trans(ptwi_master,0xd0>>1,w,4,NULL,0); } #else #include <i2c.h> unsigned char rtc_read(unsigned char address) { unsigned char data; i2c_start(); i2c_write(0xd0); i2c_write(address); i2c_start(); i2c_write(0xd1); data=i2c_read(0); i2c_stop(); return data; } void rtc_write(unsigned char address,unsigned char data) { i2c_start(); i2c_write(0xd0); i2c_write(address); i2c_write(data); i2c_stop(); } void rtc_init(unsigned char rs,unsigned char sqwe,unsigned char out) { rs&=3; if (sqwe) rs|=0x10; if (out) rs|=0x80; i2c_start(); i2c_write(0xd0); i2c_write(7); i2c_write(rs); i2c_stop(); } void rtc_get_time(unsigned char *hour,unsigned char *min,unsigned char *sec) { i2c_start(); i2c_write(0xd0); i2c_write(0); i2c_start(); i2c_write(0xd1); *sec=bcd2bin(i2c_read(1)); *min=bcd2bin(i2c_read(1)); *hour=bcd2bin(i2c_read(0)); i2c_stop(); } void rtc_set_time(unsigned char hour,unsigned char min,unsigned char sec) { i2c_start(); i2c_write(0xd0); i2c_write(0); i2c_write(bin2bcd(sec)); i2c_write(bin2bcd(min)); i2c_write(bin2bcd(hour)); i2c_stop(); } void rtc_get_date(unsigned char *date,unsigned char *month,unsigned char *year) { i2c_start(); i2c_write(0xd0); i2c_write(4); i2c_start(); i2c_write(0xd1); *date=bcd2bin(i2c_read(1)); *month=bcd2bin(i2c_read(1)); *year=bcd2bin(i2c_read(0)); i2c_stop(); } void rtc_set_date(unsigned char date,unsigned char month,unsigned char year) { i2c_start(); i2c_write(0xd0); i2c_write(4); i2c_write(bin2bcd(date)); i2c_write(bin2bcd(month)); i2c_write(bin2bcd(year)); i2c_stop(); } #endif
Comment
Bài viết mới nhất
Collapse
-
bởi DorothyMasonSpotify premium apk es un servicio de streaming de audio que ofrece acceso instantáneo a una enorme biblioteca de música, pódcasts y contenido exclusivo para oyentes de todo el mundo. La plataforma se adapta a los gustos de cada usuario mediante recomendaciones inteligentes y listas de reproducción...
-
Channel: Tin học ứng dụng
hôm nay, 01:51 -
-
bởi bqvietThực tế bạn nào không tải được tệp nén thiết kế thì căn cứ theo ảnh sơ đồ mạch có thể vẽ lại sơ đồ bằng chương trình EDA nào đó rồi làm mạch được mà. Càng thêm quen thuộc với sơ đồ. Sau đó tùy ý chuyển sang TinySwitch-III hoặc TinySwitch-4.
-
Channel: Điện tử công suất
Hôm qua, 21:13 -
-
bởi Nexus 6PCó ai có bản in của mạch in không, cho em xin file để đi in với ạ
-
Channel: Điện tử công suất
Hôm qua, 14:37 -
-
bởi Nexus 6PLink hư rồi ạ, xin lại link của bản thiết kế cũ ạ...
-
Channel: Điện tử công suất
Hôm qua, 10:48 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
29-01-2026, 11:58 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietĐơn giản thì có trải nghiệm này
http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81
Chỉ phần cứng,...-
Channel: Điện tử công suất
27-01-2026, 21:32 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pphức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
-
Channel: Điện tử công suất
26-01-2026, 08:52 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pcảm ơn bác nhiều nha, để e nghiên cứu
-
Channel: Điện tử công suất
26-01-2026, 07:38 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamkỹ sư nhạc sĩ dinhthuong dạo này lên tay nghề khá quá.
-
Channel: Tâm tình dân kỹ thuật
25-01-2026, 21:29 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Hát Mừng Sinh Nhật, sáng tác: HĐT, hòa âm-thể hiện: AI
-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 22:13 -

Comment