PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Điều khiển (http://www.picvietnam.com/forum/forumdisplay.php?f=21)
-   -   thuật toán cho pic làm đa tác vụ một lúc (http://www.picvietnam.com/forum/showthread.php?t=6925)

dangtran_fv 05-09-2010 05:35 AM

thuật toán cho pic làm đa tác vụ một lúc
 
chào mọi người .
mình có làm một cái mạc điều khiển 8 cái đèn led bằng 8 cái nút nhấn thườn mở bằng pic 16f887. nguyên tắc hoạt động là 8 nút nhấn được nối vào 8 chân a0,a1,a2,a3,a4,a5,e0,e1,e2 và nối xuống mát. 8 đèn led được nối vào 8 chân c0-c7 . mình muốn khi có một nút nhấn được nhấn vd: nút nhấn a0 được nhấn thì led ở c0 sẽ sáng nhấp nháy 10 phút điều này thi mình biết chì cấn quang nó vo cái vòng lặp nhưng mình gặp một vấn đề là khi quang nó vô cái vòng lặp mà đang còn ở trong vòng lặp thì các nút nhấn khác có tác động pic cung không thèm ngó ngàng gì tới dẫn đến trong lúc đèn này sáng mà nút nhấn khác có tác động thì đèn khác cũng không sáng thế là kế hoạch mình đổ vở tan tành . mình rất mong được các bạn chỉ giáo mở ra cho mình một lối thoát . rất chân thành cảm ơn

0903579509 05-09-2010 07:54 AM

Bạn nên nghiên cứu các ngắt timer sẽ thực hiện được điều này, tôi nghĩ không khó.
Bạn dùng một ngắt timer nào đó để qui đình tần số nháy led, một timer khác qui định khoảng thời gian 10', mỗi phím bạn có một bít cờ (flag) để đánh dấu là phím được nhấn. khi có phím nào được nhấn thì set bit cờ. timer sẽ xét xem bit cờ nào được set thì cho nhấy nháy. Chương trình chính chỉ có một nhiệm vụ quét qua bàn phím để xem phím nào được nhấn mà thôi.
Chúc bạn thành công.

tdm 05-09-2010 12:37 PM

Trích:

Nguyên văn bởi dangtran_fv (Post 38384)
chào mọi người .
mình có làm một cái mạc điều khiển 8 cái đèn led bằng 8 cái nút nhấn thườn mở bằng pic 16f887. nguyên tắc hoạt động là 8 nút nhấn được nối vào 8 chân a0,a1,a2,a3,a4,a5,e0,e1,e2 và nối xuống mát. 8 đèn led được nối vào 8 chân c0-c7 . mình muốn khi có một nút nhấn được nhấn vd: nút nhấn a0 được nhấn thì led ở c0 sẽ sáng nhấp nháy 10 phút điều này thi mình biết chì cấn quang nó vo cái vòng lặp nhưng mình gặp một vấn đề là khi quang nó vô cái vòng lặp mà đang còn ở trong vòng lặp thì các nút nhấn khác có tác động pic cung không thèm ngó ngàng gì tới dẫn đến trong lúc đèn này sáng mà nút nhấn khác có tác động thì đèn khác cũng không sáng thế là kế hoạch mình đổ vở tan tành . mình rất mong được các bạn chỉ giáo mở ra cho mình một lối thoát . rất chân thành cảm ơn

bạn gửi code lên mọi người dựa vào đó sẽ góp ý cho bạn.

thaithienanh 05-09-2010 06:44 PM

Thực ra cái này cũng không hẳn là đa tác vụ đâu, bạn chỉ cần khai báo một timer định thời gian thực, sau đó mỗi lần ấn phím sẽ định thời gian cho led sáng căn cứ vào số liệu đọc ra từ timer, có thể dễ dàng phát triển thành 1 nút ấn 3 phút, nút ấn 20 phút .... (không bị cứng nhắc 10p), lồng thêm cái timer1 nữa để cho nó nhấp nháy, "nếu không có thể xẻ timer0 ra để làm nó nhấp nháy (cái này là ý tưởng chưa thử :D)"

Đa tác vụ là thứ mình cũng rất thích nhưng suy nghĩ thấy khó quá nên từ bỏ ý định đó lâu rùi :D

Chúc vui nhé ...

bien_van_khat 06-09-2010 09:30 PM

Trích:

Nguyên văn bởi thaithienanh (Post 38392)
Thực ra cái này cũng không hẳn là đa tác vụ đâu,

CPU có thể xử lý nhiều tác vụ đồng thời chính là đa tác vụ, :p


Múi giờ GMT. Hiện tại là 10:06 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam