View Single Post
Old 01-08-2008, 07:21 PM   #94
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 bachelor View Post
trong ví dụ mẫu trên theo tôi có một chỗ không hợp lý, đó là việc để các hàm con (ở ví dụ là hàm delay) nằm trên dòng lệnh goto $. ở ví dụ này sẽ không có lỗi vì bản thân vòng lặp loop là vòng lặp vô hạn nên không có vấn đề gì. nếu không phải là vòng lặp vô hạn thì chương trình sẽ được thực hiện tiếp tục và các lệnh trong hàm con sẽ được thực hiện sau đó mới đến dòng lệnh goto $ vì vậy chương trình sẽ chạy sai.
theo tôi nên đặt các hàm con nằm giữa dòng lệnh goto $ và end
mạn phép bang chủ có mấy lời góp ý xin mọi người cho ý kiến !
PIC là một bộ xử lý nhúng, và thông thường chỉ chạy chương trình ứng dụng duy nhất (ở đây không tính đến các RTOS nhé). Do đó, luôn luôn có một vòng lặp vô tận (vòng lặp chính) trong chương trình.

Do đó, mệnh đề "nếu không phải là vòng lặp vô hạn" của bạn chỉ có giá trị true khi chương trình cho PIC được viết tồi. Và cấu trúc của chương trình mẫu không có gì bất hợp lý.

Lệnh goto $ ngay phía trước directive end của chương trình mẫu vốn là một lệnh thừa. Việc đặt các chương trình con ở đâu trong chương trình hợp ngữ vốn không quan trọng, trừ một số trường hợp liên quan đến kỹ thuật bảng.

Lập trình cho PIC có một số điểm khác biệt so với lập trình cho PC, vì sự hạn chế tài nguyên cùng cấu trúc đặc biệt của PIC so với một máy vi tính (đa dụng).

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