PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) > Lỗi lập trình ngôn ngữ cấp cao

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Lỗi lập trình ngôn ngữ cấp cao Những lỗi trường gặp trong lập trình. Khóa luồng khi bug được lỗi.

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 23-02-2008, 03:47 PM   #1
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Bật tắt LED không được?

Một số bạn viết chương trình với C và thử trên mạch thấy LED không sáng hoặc không tối được khi đặt PORTx.i ở mức cao.

Các bạn chú ý cần phải đặt chương trình trong vòng lặp

while(1){}

Hoặc đặt lệnh này ở cuối chương trình, hoặc thêm vào đoạn mã MPASM:

#asm
SLEEP
#endasm

Điều này xảy ra do chương trình sau khi chạy tới cuối cùng trên C sẽ không hiểu được đoạn END của chương trình. Khi đó chương trình tiếp tục chạy tiếp và nhận toàn các giá trị không hiểu được của phần chương trình không được viết ở phía dưới.

Khi viết bằng MPASM ta luôn nhớ và luôn khoá chương trình bằng GOTO $ hoặc SLEEP, nhưng khi viết bằng C thì lại thường hay quên gọi while(1){} nên xảy ra tình trạng này.

Điều này không chỉ xảy ra với việc bật tắt LED, nhưng mà thường khi viết chương tình dài thì ta không bị gặp lỗi này do đã có vòng lặp while. Nhưng nhất là những lúc làm chương trình test thì lỗi này hay xảy ra.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn  
 

Ðiều Chỉnh
Xếp Bà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


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