PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 09-11-2009, 11:37 PM   #1
nhat925
Đệ tử 1 túi
 
Tham gia ngày: Aug 2007
Bài gửi: 15
:
giúp em về cái đọc encoder

e làm cái điều khiển động cơ.đọc tốc độ động cơ về bằng encoder.nhưng k hiểu tại sao khi mình thay đổi cái thời gian ngắt của timer1(trong cái hàm set_timer1()).tức là mình thay đổi 10ms,100ms thì mình thấy cái lượng xung hiện trên lcd vẫn k đổi.cái code của mình là mình đọc xung.chớ chưa tính ra vận tốc.mình mô phỏng bằng protues
nhat925 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-11-2009, 11:45 PM   #2
nhat925
Đệ tử 1 túi
 
Tham gia ngày: Aug 2007
Bài gửi: 15
:
http://www.mediafire.com/download.php?l2dnkymzhjd
http://www.mediafire.com/download.php?ommmmy5mtnm
nhat925 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2009, 01:53 AM   #3
dung h
Đệ tử 4 túi
 
Tham gia ngày: May 2009
Bài gửi: 74
:
đọc ecoder

mình thấy chưong trình của bạn có 1 số vấn đề sau:
- đọc xung ecoder bạn không nên dùng ngắt ngoài mà nên dùng timer ở chế độ counter (đếm xung ngoài) vì khi dùng ngắt ngoài thì với ecoder khoảng 300xung/vong thì chương trình luôn bị ngắt gọi và luôn thực hiên ngắt mà o làm dc gì cả
- lỗi căn bản về cấu trúc chưong trình
khi bạn khai báo sử dụng ngắt thì khi thỏa mẵn điều kiện có ngắt thì chương trình chính tạm dừng công việc và nhảy đến chương trình ngắt thực hiện ct ngắt ,thực hiện xong thì lại về ct chinh main
chứ bạn o dc gọi nó như thế này????
#INT_TIMER1
void read_realspeed()
{......}
while(1)
{read_realspeed();
xuat_lcd(real_speed);
pid();
}
-lỗi của bạn khi sử dụng timer đó lag timer1 là timer 16bit giá trị nạp vào từ 0->65535
cứ o phải
set_timer1(65555);
quá giá trị 16bit ->tràn ->(dạng hex 10013)thực chất bạn chỉ nạp vào timer1 là 13hexa
-> đấy là 1 số vấn đè bạn gắp phải ,bạn sủa lại chương trình và đưa lênc ho mọi người xem
-> mình làm cái này rồi .cách do tấn số xung ecoder là mình tạo ra 1 ngắt timer 1s và 1 timer hoạt động ở chế độ counter(đếm xung ecoder)-> cứ 1s xẩy ra ngắt thì đọc giá trị counter và thiết lập lai thông số cho các timer khi đó ta đựoc số xung/1s ->tần số

bạn có thể tham khảo code của mình
File Kèm Theo
File Type: zip do an 6-11.zip (63.3 KB, 492 lần tải)
dung h vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-05-2011, 10:04 PM   #4
hangocminh1989
Đệ tử 6 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 132
:
link đã chết...hic..cảm ơn bạn
hangocminh1989 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-05-2011, 07:06 AM   #5
hangocminh1989
Đệ tử 6 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 132
:
sau một tháng em quay lại không thấy các bác bàn bạc gì thêm, hay các bác đã làm ok lắm rùi mà không thấy nói gì hết. hic.
hangocminh1989 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à 01:03 PM.


Đượ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