Ðăng Nhập

View Full Version : Bị lỗi file header .h Các bác cứu em với


chongkamat
25-09-2012, 03:59 PM
Tình hình là em đã viết code và chạy thử thì nó báo một lỗi rất lạ là :
Error [312] C:\Users\Tuan Anh\Desktop\test\lcd.h; 8.1 ";" expected
Em không biết sửa thế nào cả, em mới học pic thôi mong các bác chỉ thêm cho :-s

Bài của em là hiển thị ADC dùng biến trở và LCD, các bác cho ý kiến nhé, k biết e nên xài mplab hay ccs nữa

handsometran
27-09-2012, 05:44 PM
Tình hình là em đã viết code và chạy thử thì nó báo một lỗi rất lạ là :
Error [312] C:\Users\Tuan Anh\Desktop\test\lcd.h; 8.1 ";" expected
Em không biết sửa thế nào cả, em mới học pic thôi mong các bác chỉ thêm cho :-s

Bài của em là hiển thị ADC dùng biến trở và LCD, các bác cho ý kiến nhé, k biết e nên xài mplab hay ccs nữa
Project lcd_speed thấy quen quen, tôi lưu ý là chip dùng cho project này là 16F887 chứ không phải 877.
Theo như tôi thử thì báo 3 dòng sau:
***Error [312] D:\\test\test\lcd.h; 8.1 ";" expected
--> Bạn đã thay đổi file thư viện lcd.h do hãng soạn sẵng, bạn nên search lại file đó trong thư mục cài đặt. Bạn mới học mà sửa file header thì..... không nên. Khi đủ kinh nghiệm lập trình bạn sẽ hiểu đươc cấu tạo file header ra sau.

***Error [192] D:\\test\test\main.c; 119.1 undefined identifier "GO"
--> Bạn chưa định nghĩa biến GO là int, char.....

***Warning [361] D:\\test\test\main.c; 121.1 function declared implicit int
--> hàm delay sai cú pháp đúng là __delay_ms(10)=10ms; __delay_us(10)=10us; __delay(10)=10chu ky dao động của máy;
Tôi chỉ mới tìm hiểu về C và PIC có hơn 1 tháng nên chỉ biết như thế, bạn muốn tìm hiểu thêm hàm của MPLAB IDE _ HiTECH PIC thì đọc file manual, search trong thư mục cài đặt.
Chúc bạn thành công!!!

chongkamat
27-09-2012, 10:03 PM
cảm ơn bạn, nhưng mà thật sự là mình không thay đổi gì ở file .h cả, file lcd.c và lcd.h mình copy trong thư viện của hitech c mà không hiểu sao lại bị lỗi.
bạn có file lcd.c và lcd.h nào tin tưởng không share cho mình với.
còn một lỗi nữa là khi mình xài biến GODONE trong ADC thì nó báo lỗi nên mình phải xóa đi còn lại là GO thì nó không báo lỗi nữa

handsometran
28-09-2012, 12:04 AM
cảm ơn bạn, nhưng mà thật sự là mình không thay đổi gì ở file .h cả, file lcd.c và lcd.h mình copy trong thư viện của hitech c mà không hiểu sao lại bị lỗi.
bạn có file lcd.c và lcd.h nào tin tưởng không share cho mình với.
còn một lỗi nữa là khi mình xài biến GODONE trong ADC thì nó báo lỗi nên mình phải xóa đi còn lại là GO thì nó không báo lỗi nữa
Tại vì bạn dùng sai file lcd.h nên bị thế, tôi có đính kèm file, bạn đổi đuôi txt thành .c và .h rồi bỏ file củ đi sẽ ok thôi. Chú ý là dùng chip 16F887 nhé.
Ngoài ra bạn còn thiếu #include <stdio.h>, đây là thư viện hàm chuẩn trong C.
Có 1 chương trình chính của tôi đã hoàn thiện xong, dùng biến trở 50K để thay đổi điện áp vào ADC, rồi in dữ liệu ra ADC ra LCD. Bạn vào http://www.picvietnam.com/forum/showthread.php?t=30520 tìm hiểu thêm.

chongkamat
30-09-2012, 05:21 PM
cám ơn bạn nhiều lắm, mình mới học pic mà sao thấy chông gai quá, mình xài mplab, mà copy mấy code mẫu trên mạng, không biết chương trình mình xài có bị làm sao không nữa, thấy cái nào cũng không chạy hết, toàn error không à, kể cả mấy file bạn đưa xài adc , lcd và pwm. sao trong đoạn code đó không có #include <16f887.h> và lcd.c ?
mình xài mplab version 8.7, hi tech 9.83, HITECH ANSI C Complier :-s
Phần ADC nữa, mình có tham khảo nhiều diễn đàn, kể cả code của bạn, mình thấy cái biến tên GODONE, mà khi dịch là lỗi ở đó, có nhiều người kiu mình đổi GODONE thành GO, mình cũng không biết tại sao, bạn giải thích hộ mình được không ?

handsometran
01-10-2012, 02:11 PM
cám ơn bạn nhiều lắm, mình mới học pic mà sao thấy chông gai quá, mình xài mplab, mà copy mấy code mẫu trên mạng, không biết chương trình mình xài có bị làm sao không nữa, thấy cái nào cũng không chạy hết, toàn error không à, kể cả mấy file bạn đưa xài adc , lcd và pwm. sao trong đoạn code đó không có #include <16f887.h> và lcd.c ?
mình xài mplab version 8.7, hi tech 9.83, HITECH ANSI C Complier :-s
Phần ADC nữa, mình có tham khảo nhiều diễn đàn, kể cả code của bạn, mình thấy cái biến tên GODONE, mà khi dịch là lỗi ở đó, có nhiều người kiu mình đổi GODONE thành GO, mình cũng không biết tại sao, bạn giải thích hộ mình được không ?
Lỗi chính không phai do chương trình mà là do bạn chưa configure chip bạn đang sử dụng. Bạn vào trình đơn configure/select device, sau đó chọn chip 16f887 là biên dịch ok liền.

chongkamat
01-10-2012, 09:57 PM
mình cũng nghi như bạn nhưng mà mình đã vô mục configure và chọn pic16f887, ở mục language and design tools thì chỉ có assembler là màu xanh còn compiler và VDI màu đỏ, như vậy có đc không bạn nhỉ. Phần mềm mplab và hi tech c mình đã cài đầy đủ rồi mà

handsometran
03-10-2012, 04:58 PM
mình cũng nghi như bạn nhưng mà mình đã vô mục configure và chọn pic16f887, ở mục language and design tools thì chỉ có assembler là màu xanh còn compiler và VDI màu đỏ, như vậy có đc không bạn nhỉ. Phần mềm mplab và hi tech c mình đã cài đầy đủ rồi mà
Bạn xài bản mới hơn, tôi dùng V8.86, không biết có gì thay đổi không. Chứ chương trình tôi viết đang chạy ổn mà đem qua MPLAB IDE X thì trình dịch báo quá trời lỗi. Bạn xem lại như thế nào. Ngoài ra khi tạo project mới, thì phải chọn ngôn ngữ lập trình là C hay Assembler, tool dịch là HiTech Pic hay là gì. Đến bước add file vào thì bạn thấy chữ A hay C đứng trước file sau khi add, để thay đổi bạn cứ click vào chữ đó thì nó sẽ đổi sang C hoặc A. Bạn lên youtube tra video chỉ cách dùng MPLAB IDE đó, nhiều lắm.
Bước đầu là thế, xài từ từ sẽ quen thôi.

chhe
18-10-2012, 02:39 PM
cảm ơn bạn, nhưng mà thật sự là mình không thay đổi gì ở file .h cả, file lcd.c và lcd.h mình copy trong thư viện của hitech c mà không hiểu sao lại bị lỗi.
bạn có file lcd.c và lcd.h nào tin tưởng không share cho mình với.
còn một lỗi nữa là khi mình xài biến GODONE trong ADC thì nó báo lỗi nên mình phải xóa đi còn lại là GO thì nó không báo lỗi nữa
trong hitech C doi voi phan ADC ban sua lenh GODONE thanh GO_DONE la chay ok thoi tham khao them trong file.h