N13 thủ tục lăm nhiệm vụ về Home việc thực hiện về Home được

Một phần của tài liệu Thiết kế bộ điều khiển CNC chạy dao 2D cho robot Cartesian 3 bậc tự do (Trang 43 - 45)

trình băy kỹ hơn phđn. phía dưới, thủ túc năy chỉ lăm việc khi có yíu cầu từ mây tính gửi tín hiệu cần về Home.

- N14 thủ tục năy lăm công việc kiểm tra trạng thâi câc cảm biến Home

của 3 trục x, y, z. thủ tục năy hoạt động lien tục khi có yíu cầu về Home. Vă

BNRNEENHEEEENNER nan. ớằớằớằĂŠ<--ằ-—

SVTH: Dương Văn Toăn - Dương Phú Tđn 34

Khoa Cơ khi Tự Động & Robot ——— —— Đồ Ân Tốt Nghiệ —--o-.Ầ-_ỀẺ.Ẻ...'.

kết thúc không lăm khi đê về Home.

- NIŠ thủ tục lăm công việc kiểm tra trạng thâi cảm biến cữ hănh trình, thủ tục luôn được gọi trong suốt quâ trình nội suy.

- N16, N17 lă câc thủ tục lăm công việc cho phĩp câc phím trín bảng điều khiển hoạt động hay không hoạt động.

Trín đđy lă hết phần khai bâo câc biến, thủ tục cũng như câc file trong thư viện phần mềm. Sau đđy nhóm tiếp tục trình băy phần chương trình chính của chương trình. void mán() ( trise=0x00; trisd=0x00; trisb=0x;

Set timer I(TI INTERNAL|TI DIV BY 4),/N18 setup trmer 2(12 DIV BY 4,159,16);

enable interrupts(INT TIMER2), /N20 enable_interrupts(int_rda); /N2I enable_interrupts(imt_EXT), N22 ext_int edge(L_ to_H); /N23 enable_imnterrupts(GLOBAL); /N24

POrte=7; N25

đelay_ms(1000); ¡N26

porte=0; N27

portd=255, /N28

set_ timer I(54286); N29

⁄ dem 65535(so) mat thoi gian 52.4 ms

⁄ vay 10ms đem đuoc 11250(o)

Trong chương trình chính đầu tiín lă việc khai bâo câc Port văo ra dữ liệu TrisE=0x00 lă công ra dữ liệu. tương tự cho PortD. PortB lă cổng văo dữ liệu.

- NI§ Căi đặt ngắt timerl với chu kỳ ngắt được xâc lập từ dòng N29. với hu kỳ ngắt lă 10ms. Timerl năy cứ 10ms gọi thực hiện một lần công việc thực hiện lă do ta viết trong chương trình ngắt timer1. Ở phần trín ta không thấy không có dòng lệnh năo cho phĩp ngắt timer Ï hoạt động, mă chỉ khai bâo vă xâc lập thời gian ngắt cho timerl. Như vậy ta cần theo dõi tiếp xem ngắt

timer1 hoạt động khi năo, vă khi đê hoạt động thì lăm những công việc gì.

- N19 lă một lệnh giống như căi đặt ngắt cho timer]. nhưng với chu kỳ ngắt lms, nếu như dung thạch anh 20Mhz. Khâc với timerl, timer2 được phĩp hoạt động ngay khi văo chương trình chính. Dòng lệnh cho phĩp timer2 hoạt động lă dòng N20. Công việc ngắt của timer2 lăm những công việc gì

——iiiiiiiii=-=-in=====ỷ-nnauirEnEnEỶc=Ằ===

SVTH: Dương Văn Toăn - Dương Phú Tđn 35

Khoa Cơ khi Tự Động & Robot Đồ Ân Tết Nghiệp

nhóm sẽ trình băy ngay sau khi giới thiệu hết câc dòng lệnh khai bâo trong chương trình chính.

- N21 Thông bâo cho chương trình biết ngất truyền giao tiếp hoạt động. N22 cho phĩp ngắt ngoăi hoạt động, ngắt năy thực thi khi có yíu cđu về Home, ngắt ngoăi nhận tâc động cạnh xuông vă được khai bâo ở dòng N23. N24 chỉ ra câc ngắt được khai bâo ở trín có giâ trị trong toăn chương trình. Câc dòng tiếp theo không có gì liín quan đến quâ trình điíu khiển mă chỉ BIÚp ta dễ theo dõi mỗi khi bắt đầu thực hiện chương trình led PortE sang lín trong thời gian l giđy.

Khi chương trình đi đến đđy nó sẽ chuyển xuống vòng lặp phía dưới vă sẽ lăm những yíu cầu ở trong vòng hỏi cung năy níu thoa yíu cđu.

while (1)

(—

Dibabhle interrups(INT TIMERI), N30

swifch(mode) /#M3i

{

case l: cw x(); breaR; ưM32 case 2: ccw x(); break;

case 3: cw_y(; break;

case 4: ccw v(; break,

case 5: cw_z(); break; case 6: ccw_z(); break; case 7' home xyzQ0; break,

case 8: on keyboard0; break;

case 9: of keyboard(); break;

Trong vòng lặp năy nếu như không thỏa câc yíu cầu bín trong vòng lặp nó không lăm gì cả, mă chỉ chạy vòng đi vòng lại trong đó với mục đích tìm - ra một điều kiện năo đó thoả để lăm.

- N30 dòng khai bâo không cho phĩp ngắt timerl hoạt động, như ta thấy ở trín timerl chỉ được khai bâo xâc lập câc thong số chu kỳ ngắt mă, chưa cho phĩp hoạt động. Tuy nhiín ở trong vòng hỏi cung năy timerl năy luôn bị vô hiệu hoâ ngắt timerl Xảy ra.

Một phần của tài liệu Thiết kế bộ điều khiển CNC chạy dao 2D cho robot Cartesian 3 bậc tự do (Trang 43 - 45)

Tải bản đầy đủ (PDF)

(128 trang)