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

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 02-08-2008, 01:39 AM   #11
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
Đó, chính bản thân lệnh goto $ theo namqn đã là thừa, vậy nên phải sửa chg trình mẫu là đúng rồi
Tuy nhiên, theo tôi lệnh goto $ chỉ thừa trong trường hợp này thôi (trong vi dụ mẫu) còn trong một số trg hợp khác bản thân nó là một "vòng lặp vô hạn không làm gì cả " (kiểu như: while(TRUE) {}; ) thì lại không thừa. Chẳng hạn một chương trình không làm gì cả mà chỉ khởi tạo các giá trị ban đầu rồi chờ các sự kiện ngắt để phục vụ thì không thể coi đó là một chương trình tồi và lẽ đương nhiên là cần phải có một lệnh goto $ để tạo ra vòng lặp vô hạn (tất nhiên mọi người có thể nói là không cần lệnh goto $ mà dùng lệnh loop goto loop )
Tất nhiên chương trình con thì đặt đâu mà chả được, nhưng đây là nói tới cái chương trình mẫu mà F tạo ra dành cho người mới học (như tôi chẳng hạn), cứ copy nguyên về, thay cái phần nội dung trong main và chương trình con cho phù hợp với bài toán của mình rồi biên dịch rồi chạy rồi thấy nó chạy loạn lên vì các lý do mà tôi đã đề cập ở bài trước. vì thế mới góp ý để F sửa đổi một chút chương trình mẫu để cho những người mới học khác có muốn copy về, xào xáo lại như tôi sẽ không bị nhầm lẫn nữa
Không đồng ý với bạn, vì bạn nêu lên một chi tiết không hợp lý ở post trước đó, bây giờ lại bắt sang một chi tiết (được cho là) không hợp lý khác, mà không thể hiện được cái bất hợp lý mà bạn đã nêu ở post trước.

Trong cấu trúc của chương trình mẫu, vòng lặp chính là vòng lặp giữa nhãn loop và lệnh goto loop. Nếu muốn biến nó thành while (true) {} thì không cần viết lệnh gì vào vòng lặp đó là xong. Do vậy, lệnh goto $ phía trước dẫn hướng end vẫn là thừa. Hơn nữa, viết theo kiểu loop goto loop hay goto $ đều dịch ra cùng kết quả.

Cấu trúc của chương trình mẫu là ổn, đảm bảo không có chuyện "copy nguyên về, thay cái phần nội dung trong main và chương trình con cho phù hợp với bài toán của mình rồi biên dịch rồi chạy rồi thấy nó chạy loạn lên". Đề nghị bạn post những chương trình kiểu đó lên để minh họa cho lý luận của bạn.

Về việc lệnh goto $ nằm trước dẫn hướng end: nó thừa nhưng chẳng ảnh hưởng gì đến chương trình ứng dụng (được viết đúng quy tắc) nên việc loại bỏ nó hay không vốn không phải là vấ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
 


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à 10:49 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