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
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi viettinhNó không phải cái loa rời. Chả nhẽ đèo thêm 2 con loa tép ngoài thì kỳ lắm....
-
Channel: Điện thanh
hôm nay, 09:45 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi mèomướpDạ chú mua thêm loa tép nối tiếp qua con tụ rồi mắc vào cùng loa trung là được ạ...
-
Channel: Điện thanh
Hôm qua, 19:53 -
-
Trả lời cho Tìm datasheet linh kiện điện tử.bởi mèomướpDạ cháu hỏi bạn cháu thì bạn ấy trả lời như thế này ạ. Cháu cũng hông bít có đúng hông nữa ạ
Linh kiện điện tử với mã "943BA" và "W58BAL" là một loại cầu chì tự động (circuit breaker) do TE Connectivity sản...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 19:50 -
-
bởi viettinhChuyện là mình mới đập hộp con loa kéo Sony SRS-XV900. Do khu vực mình k có sẵn hàng để trải nghiệm thực tế nên chỉ tham khảo các kênh revew online.
Mua về sử dụng thì thấy hơi buồn về chất âm, Mở max k to bằng cái loa kéo china, bass...-
Channel: Điện thanh
Hôm qua, 17:18 -
-
Trả lời cho Tìm datasheet linh kiện điện tử.bởi yeurap7em tra google cũng ko có...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 16:37 -
-
Trả lời cho Trình điều khiển bước rời rạcbởi mèomướpDạ nếu chú đã viết được chương trình cho vđk thì thêm 1 chương trình con chạy động cơ bước chỉ đơn giản là copy phát. Về phần cứng thì vài con cách ly quang, vài con mosfet thôi ạ. thực sự là dễ dàng như bài tập bình thường của sinh viên thôi ạ...
-
Channel: Máy công cụ
06-01-2025, 12:55 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi Minhdai95vâng mình cảm ơn mn đã góp ý
-
Channel: Điện tử công suất
06-01-2025, 11:30 -
-
bởi tom22Xin chào
Tôi có một dự án trong đó một động cơ bước tích hợp được điều khiển bởi một bộ vi điều khiển.
Nhưng tôi thực sự không thích trả tiền cho trình điều khiển bước, khi tôi có một bộ vi điều khiển có khả năng thực...-
Channel: Máy công cụ
06-01-2025, 10:54 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ chú chủ thớt có thời gian và đam mê thì cứ từ từ ngâm cứu đi ạ đừng nghe chú Chú bq... dọa mà sợ ạ. Cái nguồn nhìn cũng lởm có khi hông bằng cái máy hàn tàu của chị hàng xóm hôm nọ tháo ra sửa với chú thợ thông ống nước suốt đêm mới xong. Chú ý an toàn xíu là được ạ...
-
Channel: Điện tử công suất
05-01-2025, 15:40 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi bqvietBộ nguồn xung ở tầm công suất 2700W này, gần 3 ký, không bao giờ đơn giản để mà sửa ngay cả đối với người có kinh nghiệm chứ đừng nói người không chuyên. Đám linh kiện công suất không tự nhiên cháy mà phải xuất phát từ nguyên nhân...
-
Channel: Điện tử công suất
04-01-2025, 22:09 -
Comment