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 24-08-2006, 01:26 AM   #1
lestylo
Nhập môn đệ tử
 
lestylo's Avatar
 
Tham gia ngày: Jun 2006
Bài gửi: 5
:
Question Nhiều ngắt trong ứng dụng PIC

Các bác thân mến ! em mới tìm hiểu về PIC học viết bằng HT PIC có nhiều cái muốn hỏi lắm tuy nhiên trong mục PIC16F877A thì lại viết bằng ASEM em ko hiểu
em muốn hỏi về ngắt trong PIC như sau :
Nếu như trong ứng dụng của mình muốn sủ dụng nhiều ngắt bằng timer
trong khi con PIC trên chỉ có 3 timer 0,1,2 làm thế nào để sử dụng cho đáp ứng đủ cho ứng dụng của mình?????????
Thuật toán bằng C nó thế nào mong các bác chỉ giúp!
lestylo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-08-2006, 01:33 AM   #2
lestylo
Nhập môn đệ tử
 
lestylo's Avatar
 
Tham gia ngày: Jun 2006
Bài gửi: 5
:
thêm một vài câu hỏi nữa :
1_ muốn tính chính xác số chu ki lệnh của PIC thực hiện thì làm như nào mấy bác nhỉ?? để xác định đúng khoảng thời gian này thì mình mới có ngắt hoặc delay chẳng hạn
2_và nữa là việc sử dụng Watchdog khi nào ,đặc biệt là trong ngắt ??? em chưa rõ lắm cái vấn đề này
lestylo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-08-2006, 11:12 AM   #3
txt
Đệ tử 2 túi
 
Tham gia ngày: Sep 2005
Bài gửi: 32
:
bạn đang muốn sử dụng multi tasking đây mà . Vào site : www.microchipc.com ( có thêm chữ c ) , tham khảo các viết multi tasking. Nghĩa là :chỉ dùng 1 timer , mỗi khi có ngắt , biến a tăng thêm 1 , nếu = max cho trước thì thực hiện tác vụ aa . Cũng tăng biến b .khi b=b+max thì thực hiện tác vụ bb . VD : mỗi 1 ms thực hiện aa, mỗi 10 ms thực hiện bb , cứ thế với các tác vụ cc , dd, . . .
txt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-08-2006, 09:35 PM   #4
leduy173
Đệ tử 2 túi
 
leduy173's Avatar
 
Tham gia ngày: Jun 2006
Bài gửi: 28
:
Cho em hoi nếu viết theo cách đó thì ngắt timer liên tục xảy ra tùy theo giá trị mình định , như vậy thì có ảnh hưởng mạnh đến chương trình chính của minh ko?có ảnh hương j đến thanh ghi pc hay stack nhiều ko và nếu goi quá nhiều chương trình con thì sẽ tràn stack vậy gọi khoảng bao nhiêu thì tốt nhất và có cách giải quyết nào khác ko!
Cám ơn!!!
leduy173 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-08-2006, 10:58 PM   #5
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Bạn có thể tự tính toán, hay nhờ vào phần mềm mô phỏng để xác định thời gian còn lại dành cho chương trình chính (sau khi đã xử lý ngắt) giữa những lần ngắt, có ảnh hưởng hay không thì tùy vào bạn viết chương trình có đủ tốt hay không.

Các dòng PIC khác nhau có các mức hỗ trợ ngăn xếp khác nhau, PIC10 không hỗ trợ ngắt, PIC16 hỗ trợ 8 mức ngăn xếp bằng phần cứng (trừ một số PIC16 có nhân 12-bit), PIC18 hỗ trợ 31 mức ngăn xếp bằng phần cứng, PIC24 và dsPIC hỗ trợ ngăn xếp bằng phần mềm (về nguyên tắc chỉ bị giới hạn bởi dung lượng RAM khả dụng của chip).

Hy vọng đã trả lời các câu hỏi của bạn.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-08-2006, 11:32 PM   #6
leduy173
Đệ tử 2 túi
 
leduy173's Avatar
 
Tham gia ngày: Jun 2006
Bài gửi: 28
:
Như anh nói dòng 16F thì phần cứng hỗ trợ khoảng 8 mức ngăn xếp có nghĩa là ta có thể goi chương trinh con lồng nhau cũng khoảng 8 cấp phải không anh???
leduy173 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-08-2006, 11:59 PM   #7
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi leduy173 View Post
Như anh nói dòng 16F thì phần cứng hỗ trợ khoảng 8 mức ngăn xếp có nghĩa là ta có thể goi chương trinh con lồng nhau cũng khoảng 8 cấp phải không anh???
Đúng nếu bạn hoàn toàn không dùng ngắt! Chú ý là 8 cấp khi chương trình đang chạy nhé (nghĩa là nếu bạn gọi các chương trình con lồng nhau đến 8 cấp thì khi có ngắt PIC sẽ bị reset vì tràn stack).

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-08-2006, 12:35 AM   #8
leduy173
Đệ tử 2 túi
 
leduy173's Avatar
 
Tham gia ngày: Jun 2006
Bài gửi: 28
:
Như vậy thì khi có ngắt thì các stack của mình cũng tăng lên giống như khi minh goi 1 chương trinh con vậy phải ko anh???Khi tràn stack thi pic sẽ bị reset sao???

thay đổi nội dung bởi: leduy173, 29-08-2006 lúc 12:40 AM.
leduy173 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-08-2006, 12:57 AM   #9
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi leduy173 View Post
Như vậy thì khi có ngắt thì các stack của mình cũng tăng lên giống như khi minh goi 1 chương trinh con vậy phải ko anh???Khi tràn stack thi pic sẽ bị reset sao???
Có hai điều kiện đối với stack mà các lõi xử lý thường được yêu cầu reset, đó là underflow (stack bị pop khi đã trống) và overflow (stack bị push vào khi đã đầy). Tuy nhiên, với các PIC16 thì khi overflow các ô nhớ cũ nhất của stack sẽ bị ghi đè chứ không gây ra reset. Do vậy việc gọi chương trình con hay chương trình xử lý ngắt nhiều hơn 8 lần chắc chắn sẽ làm chương trình chạy sai.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-08-2006, 02:31 AM   #10
leduy173
Đệ tử 2 túi
 
leduy173's Avatar
 
Tham gia ngày: Jun 2006
Bài gửi: 28
:
h thì em đã hiểu hơn rùi thanks anh namqn nhiều!!!
leduy173 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-08-2006, 11:38 AM   #11
txt
Đệ tử 2 túi
 
Tham gia ngày: Sep 2005
Bài gửi: 32
:
Nếu dùng trình biên dịch CCS thì nó sẽ nhảy đến các hàm chủ yếu bằng lệnh GOTO , và do đó không tốn stack , trừ phi dùng những hàm như delay , . . thì có tốn . Nói chung nó có đưa ra dự báo mức stack tối đa , nên không phải lo có tràn hay không.Thông thường các hàm built in mà có thể dùng nhiều lần như hàm delay , nhân 32 , float, thì sẽ có tốn stack .
txt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-11-2009, 08:18 PM   #12
henremix
Nhập môn đệ tử
 
Tham gia ngày: Sep 2009
Bài gửi: 2
:
trong hoc lap trinh ban k the hoi vay duoc ,phai chiu kho ma ngi.mot van de trong lap trinh thi k biet bao nhieu cach giai quyet,moi nguoi thi co y do khac nhau k ai giong ai. neu ban da nam chac cac lenh thi lam duoc hay k la do ban,ban bien doi ,sap xep cac cau lenh nhu the nao la do ban vi ban da hieu cac cau lenh roi ma.plc cung vay ban phai ngi roi xe ra thoi,dung nen hoi,chi khi nao k ro phan cung ngoai suc cua ban thi ban co the trao doi voi moi nguoi...ok.chuc ban thanh cong,ban nen viet assembler moi nang cao tu duy duoc,chi co he thong lon moi viet c thoi ok
henremix 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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
Nhiễu Vi điều khiển khi ứng dụng vào thực tế electronicltv Cơ bản về vi điều khiển và PIC 12 24-02-2012 09:50 PM
Cảm biến nhiệt hay cảm biến lực Quygia Cảm biến 6 29-10-2007 09:27 PM
LCD nhiều số trong Proteus? chipchipvn Chương trình dịch & các công cụ mô phỏng 16 07-12-2006 11:05 AM
Đo nhiệt độ với MCP9700 falleaf PIC - Thiết kế và Ứng dụng 2 22-09-2005 12:23 PM


Múi giờ GMT. Hiện tại là 11:59 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