![]() |
|
Tài trợ cho PIC Vietnam |
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 |
|
![]() |
#1 |
Đệ tử 2 túi
Tham gia ngày: Jul 2009
Bài gửi: 40
: |
mấy bác cho em hỏi là nếu mình tạo chương trình con là như thế này
void comwrt(void) { RS=1; RW=0; E=1; E=0; delay_ms(1); } thì khi gọi chương trình con thì phải ghi là lcd_data=0x06; comwrt(); nhưng khi em chuyển lại là void comwrt(lcd_data) { RS=1; RW=0; E=1; E=0; delay_ms(1); } và gọi là comwrt(0x0c); thì chương trình lại không chạy, mấy anh chĩ giùm em làm sao để viết gọp lại như hàng dưới được không comwrt(0x0c); cho em hỏi thêm là hàm này dùng làm gì ạ #separate
__________________
Cao Văn Hưởng SĐT: 01672754113 Email: caovanhuong@webdien.com Nhận thiết kế mạch điện tử, PCB (Orcad) |
![]() |
![]() |
![]() |
#2 |
Nhập môn đệ tử
Tham gia ngày: Nov 2010
Bài gửi: 4
: |
Hàm comwrt () mà bạn ghi không sử dụng bất cứ tham số nào truyền từ chương trình chính nên bạn ghi comwrt (0x06) là vô nghĩa . Bạn thử viết lại thế này xem :
void comwrt (int8 data ) { lcd_data = data ; RS=1; RW=0; E=1; E=0; delay_ms(1); } Khi đó trong chương trình chính bạn có thể gọi comwrt (0x06) Còn #separate theo mình biết áp dụng khi function của bạn có quá nhiều hàm , dẫn tới số lượng chỉ lệnh vượt quá mức chịu được của 1 page code PIC ( hình như là 512 instructions) . Khi đó khai báo chỉ thị này sẽ tách các hàm riêng biệt ở các page code riêng biệt , làm tiết kiệm ROM hơn . thay đổi nội dung bởi: knd07, 12-11-2010 lúc 04:46 PM. |
![]() |
![]() |
![]() |
#3 | |
Đệ tử 2 túi
Tham gia ngày: Jul 2009
Bài gửi: 40
: |
Trích:
__________________
Cao Văn Hưởng SĐT: 01672754113 Email: caovanhuong@webdien.com Nhận thiết kế mạch điện tử, PCB (Orcad) |
|
![]() |
![]() |
![]() |
|
|