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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 23-09-2013, 11:29 AM   #1
puppy
Nhập môn đệ tử
 
Tham gia ngày: Jan 2007
Bài gửi: 9
:
Hỏi về cách đọc data

Chào các bạn
Mình đang làm cái đồ án máy thu fm có RDS và bí ở phần đọc dữ liệu từ con decoder RDS LC72723. Con này có 2 đường ra là RDCL và RDDA ( như hình dưới). Mình xin hỏi làm thế nào để đọc được dữ liệu này? Mình dùng con PIC6f887.
Hình Kèm Theo
File Type: jpg lc72723.JPG (21.3 KB, 1 lần tải)
puppy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-09-2013, 12:57 PM   #2
binhbk247
Đệ tử 2 túi
 
Tham gia ngày: Jun 2011
Bài gửi: 37
:
Dùng chân ngắt ngoài hoặc ngắt RB nối với chân RDCL và 1 chân input bất kì nối với RDDA để đọc dữ liệu
binhbk247 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-09-2013, 06:15 AM   #3
puppy
Nhập môn đệ tử
 
Tham gia ngày: Jan 2007
Bài gửi: 9
:
Trích:
Nguyên văn bởi binhbk247 View Post
Dùng chân ngắt ngoài hoặc ngắt RB nối với chân RDCL và 1 chân input bất kì nối với RDDA để đọc dữ liệu
Con LC72723 này nó out data ra liên tục như vậy làm sao để biết đâu là bit đầu nhỉ?
puppy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-09-2013, 04:03 PM   #4
binhbk247
Đệ tử 2 túi
 
Tham gia ngày: Jun 2011
Bài gửi: 37
:
nó đưa ra dữ liệu 8 bit theo từng xung RDCL hay sao bạn?
Ví dụ nó đưa ra dữ liệu 8 bit thì sẽ ứng với 8 xung clock, khi đó ngắt sẽ xảy ra 8 lần. Bạn dùng 1 biến đếm trong ngắt, sau mỗi lần ngắt tăng lên 1 đơn vị, sau 8 lần thì set lại bằng 0 để nhận giá trị data tiếp theo. Có thể code như sau

int i=0,temp=0,data;
#int_ext
void nhan_data() {
if(RDDA==1) bit_set(temp,i);
else bit_clear(temp,i)
i++;
if(i==8) { data=temp; i=0; }
}

Ở đây là nhận từ bit 0 - bit 7. Nhưng nếu con này truyền dữ liệu từ bit 7 - bit 0 thì ngược lại nhé.

PS: đây chỉ là code tham khảo vì mình ko rõ con này hoạt động ntn, bạn code lại cho đúng nhé
binhbk247 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-09-2013, 06:28 PM   #5
puppy
Nhập môn đệ tử
 
Tham gia ngày: Jan 2007
Bài gửi: 9
:
Trích:
Nguyên văn bởi binhbk247 View Post
nó đưa ra dữ liệu 8 bit theo từng xung RDCL hay sao bạn?
Ví dụ nó đưa ra dữ liệu 8 bit thì sẽ ứng với 8 xung clock, khi đó ngắt sẽ xảy ra 8 lần. Bạn dùng 1 biến đếm trong ngắt, sau mỗi lần ngắt tăng lên 1 đơn vị, sau 8 lần thì set lại bằng 0 để nhận giá trị data tiếp theo. Có thể code như sau

int i=0,temp=0,data;
#int_ext
void nhan_data() {
if(RDDA==1) bit_set(temp,i);
else bit_clear(temp,i)
i++;
if(i==8) { data=temp; i=0; }
}

Ở đây là nhận từ bit 0 - bit 7. Nhưng nếu con này truyền dữ liệu từ bit 7 - bit 0 thì ngược lại nhé.

PS: đây chỉ là code tham khảo vì mình ko rõ con này hoạt động ntn, bạn code lại cho đúng nhé
Cảm ơn bạn
Con này nó đưa ra 128 bit vấn để là nó đưa ra liên tục nên mình không thể biết bit đầu và bit cuối nó ở đâu để bắt đầu đọc.
puppy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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à 07:47 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