PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

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

dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 10-01-2007, 07:37 PM   #1
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,638
Thanks: 192
Thanked 5,911 Times in 915 Posts
Send a message via Yahoo to falleaf Send a message via Skype™ to falleaf
Các vấn đề với C30

Khi làm việc với dsPIC, một điều gần như chắc chắn là chúng ta sẽ sử dụng C30. Vì vậy, F mở ra luồng này để các bạn tập trung thảo luận về các vấn đề liên quan đến C30.

Hiện nay, C30 được phát triển ở dạng free, và gần như không còn có một trình dịch nào có thể so sánh được với C30, ở bình diện chung. HTdsPIC chỉ có thể được phát triển bởi một nhóm kỹ thuật viên của HiTech, nhưng C30 sẽ được sự phát triển của cả một cộng đồng và các chuyên gia. Đồng thời, HTdsPIC là một phần mềm có giá khá cao, trong khi đó C30 thì miễn phí (một phần).

Chính vì vậy, picvietnam sẽ hỗ trợ phát triển C30.

Luồng này được mở ra để các bạn thảo luận tất cả các vấn đề liên quan đến C30. Dưới đây là một file mẫu chuẩn picvietnam đang định đề nghị khi làm việc với C30. F sẽ làm việc cụ thể hơn với anh Nam về form chuẩn này và rất mong các bạn thảo luận về việc xây dựng form mẫu chuẩn cho C30 của picvietnam.

Chúc vui


Tài liệu tham khảo:
[1] C30 Compiler User's Guide
[2] Brian W. Kernighan and Dennis M. Ritchie, "The C Programming Language 2nd edition", Prentice Hall
File Kèm Theo
File Type: zip FormC_dsPIC.zip (1.0 KB, 2409 lần tải)

thay đổi nội dung bởi: falleaf, 08-11-2007 lúc 05:13 PM.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following 15 Users Say Thank You to falleaf For This Useful Post:
Delfy_Coltech (26-11-2010), dsinguyen (29-05-2013), hoandhdt (29-10-2013), hung1212 (14-03-2012), itbachkhoa (15-04-2011), khangcodt (14-02-2007), linhtdh1k49 (27-03-2009), NBC (01-03-2008), nquoccdt (22-10-2012), sidesignvn (26-09-2010), son_dd06kstn (22-11-2009), tranhuyky (08-07-2009), tuandtd2008 (30-03-2008), W.Rooney (27-03-2009), zero07a (09-11-2009)
Old 21-01-2008, 08:52 PM   #2
NThang
Nhập môn đệ tử
 
Tham gia ngày: Jun 2007
Bài gửi: 6
Thanks: 0
Thanked 1 Time in 1 Post
Xin cảm ơn bác Falleaf. Em mới học về Pic và mong tìm hiểu một trình dịch C hoàn chỉnh cho Pic. Qua thông tin mà bác cho biết ở trên thì C30 quả thật là rất bổ ích. Tuy nhiên, em vẫn chưa hiểu là hiện có cả C18 và C30, Sự khác biệt của nó là gì. Em thường làm với chíp AVR tuy nhiên với các dự án đòi hỏi phải có chíp mạnh với yêu cầu về xử lý 16 bít hay 32 bít cũng như việc đảm bảo chất lượng thì dùng Pic vẫn đảm bảo hơn. Vì thế mong bác chỉ bảo thêm.

Em rất cảm ơn.
NThang vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-01-2008, 09:04 PM   #3
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,017
Thanks: 37
Thanked 3,501 Times in 1,345 Posts
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi NThang View Post
Xin cảm ơn bác Falleaf. Em mới học về Pic và mong tìm hiểu một trình dịch C hoàn chỉnh cho Pic. Qua thông tin mà bác cho biết ở trên thì C30 quả thật là rất bổ ích. Tuy nhiên, em vẫn chưa hiểu là hiện có cả C18 và C30, Sự khác biệt của nó là gì. Em thường làm với chíp AVR tuy nhiên với các dự án đòi hỏi phải có chíp mạnh với yêu cầu về xử lý 16 bít hay 32 bít cũng như việc đảm bảo chất lượng thì dùng Pic vẫn đảm bảo hơn. Vì thế mong bác chỉ bảo thêm.

Em rất cảm ơn.
C30 dành cho các vi điều khiển/xử lý số 16-bit của Microchip (PIC24, dsPIC30, dsPIC33), còn C18 dành cho các vi điều khiển 8-bit cấp cao của Microchip (PIC18).

Cũng thông tin thêm cho bạn là Microchip hiện đã có dòng vi điều khiển/xử lý số 32-bit là PIC32, với trình dịch C32 (cũng được họ cung cấp miễn phí phiên bản Student Edition).

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
Old 21-01-2008, 10:27 PM   #4
NThang
Nhập môn đệ tử
 
Tham gia ngày: Jun 2007
Bài gửi: 6
Thanks: 0
Thanked 1 Time in 1 Post
Chân thành cảm ơn bac Namqn. Em vừa vào trang microchip.com và có tìm hiểu được một số vấn đề về PIC với các trình dịch. Về bản Studen mới nhất của C18 là v3.15 hay V3.10 và C30 là bản 3.02. Tuy nhiên em tìm crack trên google chỉ kiếm được đến C18 V3.0 mà thôi. Trong khi em thì lại không có bản C18 3.0. Bác có bản crack hay bản full của C18 và c30 với version gần đây không? Làm ơn gửi cho em được chứ ah. Version khoảng từ 2.0 trở lại đây chẳng hạn.

Em xin cảm ơn bác!
NThang vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-01-2008, 11:23 PM   #5
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,017
Thanks: 37
Thanked 3,501 Times in 1,345 Posts
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi NThang View Post
Chân thành cảm ơn bac Namqn. Em vừa vào trang microchip.com và có tìm hiểu được một số vấn đề về PIC với các trình dịch. Về bản Studen mới nhất của C18 là v3.15 hay V3.10 và C30 là bản 3.02. Tuy nhiên em tìm crack trên google chỉ kiếm được đến C18 V3.0 mà thôi. Trong khi em thì lại không có bản C18 3.0. Bác có bản crack hay bản full của C18 và c30 với version gần đây không? Làm ơn gửi cho em được chứ ah. Version khoảng từ 2.0 trở lại đây chẳng hạn.

Em xin cảm ơn bác!
Tôi khuyến khích người dùng nghiệp dư sử dụng các bản Student Edition (tôi toàn dùng các bản Student Edition). Nếu sử dụng một cách chuyên nghiệp (kinh doanh kiếm tiền) thì có lẽ số tiền bản quyền của phần mềm chẳng đáng kể gì so với vốn đầu tư cho những thứ khác.

Trang web của Microchip trước đây có phần lưu trữ đầy đủ các phiên bản trước của các trình biên dịch, hiện nay thì nó chỉ còn lưu trữ một vài phiên bản được Microchip đánh giá là đáng được lưu trữ. Bạn xem link dưới đây:

http://www.microchip.com/stellent/id...cName=en023073

Tôi có lưu trữ khá nhiều phiên bản của các trình dịch C18 và C30, tuy nhiên không có sẵn ở trong máy. Tôi sẽ tìm thử và upload lên một host free nào đó, và thông báo cho bạn sau.

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
Old 19-02-2008, 09:40 AM   #6
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 155
Thanks: 4
Thanked 64 Times in 39 Posts
em muốn lập trình thử về Dispic nhưng chưa load được c30. bác nào có link thì cho em xin với. em đang cần gấp
tungtot_vl vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-02-2008, 07:46 PM   #7
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,017
Thanks: 37
Thanked 3,501 Times in 1,345 Posts
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi tungtot_vl View Post
em muốn lập trình thử về Dispic nhưng chưa load được c30. bác nào có link thì cho em xin với. em đang cần gấp
Link dưới đây cho phép bạn download C30 phiên bản Student Edition, bạn chỉ cần đăng ký (miễn phí) với Microchip là được:

http://www.microchip.com/stellent/id...cName=en010065

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
Các thành viên sau đây cảm thấy bài viết này có ích
tuandtd2008 (30-03-2008)
Old 28-03-2008, 10:35 PM   #8
footballer
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 16
Thanks: 18
Thanked 5 Times in 1 Post
Em muốn sử dụng thư viện xlcd của C30 để giao tiếp với LCD. Đối với các thư viện khác, chẳng hạn thư viện như thư viện Timer, em thấy rằng chỉ cần include vào project của mình 2 file là file (timer.h) và file (libp30f4011-coff.a)( em dùng 30f4011) là có thể gọi được các hàm khởi tạo và điều khiển Timer rồi. Nhưng khi em làm tương tự với thư viện xlcd thì sau khi đã include file xlcd.h( #include <xlcd.h>) và add vào project thư viện (libp30f4011-coff.s) thì vẫn không thể sử dụng được các hàm trong thư viện xlcd( ví dụ: BusyXLCD()). Mong được mọi người giải thích cho cách sử dụng thư viện xlcd. Em cảm ơn.
footballer vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-03-2008, 11:28 PM   #9
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,017
Thanks: 37
Thanked 3,501 Times in 1,345 Posts
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi footballer View Post
Em muốn sử dụng thư viện xlcd của C30 để giao tiếp với LCD. Đối với các thư viện khác, chẳng hạn thư viện như thư viện Timer, em thấy rằng chỉ cần include vào project của mình 2 file là file (timer.h) và file (libp30f4011-coff.a)( em dùng 30f4011) là có thể gọi được các hàm khởi tạo và điều khiển Timer rồi. Nhưng khi em làm tương tự với thư viện xlcd thì sau khi đã include file xlcd.h( #include <xlcd.h>) và add vào project thư viện (libp30f4011-coff.s) thì vẫn không thể sử dụng được các hàm trong thư viện xlcd( ví dụ: BusyXLCD()). Mong được mọi người giải thích cho cách sử dụng thư viện xlcd. Em cảm ơn.
Bạn nói như vậy vẫn chưa rõ. Bạn không biên dịch được chương trình hay biên dịch tốt mà dsPIC không chạy đúng?

Bạn dùng dsPIC30F4011, còn thư viện XLCD thì mặc định sử dụng đến 11 bit của port D, vậy bạn đã chỉnh sửa lại xlcd.h cho phù hợp với phần cứng của bạn chưa?

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
The Following 2 Users Say Thank You to namqn For This Useful Post:
const_nos (26-03-2010), footballer (29-03-2008)
Old 29-03-2008, 10:55 AM   #10
footballer
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 16
Thanks: 18
Thanked 5 Times in 1 Post
Em không biên dịch được.
Em đã cop file xlcd.h vào thư mục chứa project của mình và chỉnh sửa nội dụng file này như sau:
-Bỏ cặp chỉ lệnh: #if defined(_RD10) ..#endif. Vì 30f4011 không có chân RD10
-Bỏ cặp chỉ lệnh: #if defined(_RD8) && defined(_RD9) && defined(_RD10)... #endif
-Thiết lập lại các chân RS,RW,EN, DB0,..DB7 cho phù hợp với mạch của em.
Sau đó trong chương trình em đã include file xlcd.h đã chỉnh sửa:
Code:
     #include "xlcd.h"
Em đã add file thư viện libp30f4011-coff.a vào trong project.
Nhưng dù em gọi bất kỳ một hàm nào trong thư viện xlcd.h thì đều bị lỗi là undefined reference to `BusyXLCD' (Đây là em lấy ví dụ với việc gọi hàm BusyXLCD()).
Mong được mọi người giúp đỡ. Em xin cảm ơn.
footballer vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-03-2008, 08:24 PM   #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,017
Thanks: 37
Thanked 3,501 Times in 1,345 Posts
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi footballer View Post
Em không biên dịch được.
Em đã cop file xlcd.h vào thư mục chứa project của mình và chỉnh sửa nội dụng file này như sau:
-Bỏ cặp chỉ lệnh: #if defined(_RD10) ..#endif. Vì 30f4011 không có chân RD10
-Bỏ cặp chỉ lệnh: #if defined(_RD8) && defined(_RD9) && defined(_RD10)... #endif
-Thiết lập lại các chân RS,RW,EN, DB0,..DB7 cho phù hợp với mạch của em.
Sau đó trong chương trình em đã include file xlcd.h đã chỉnh sửa:
Code:
     #include "xlcd.h"
Em đã add file thư viện libp30f4011-coff.a vào trong project.
Nhưng dù em gọi bất kỳ một hàm nào trong thư viện xlcd.h thì đều bị lỗi là undefined reference to `BusyXLCD' (Đây là em lấy ví dụ với việc gọi hàm BusyXLCD()).
Mong được mọi người giúp đỡ. Em xin cảm ơn.
Bạn tham khảo luồng này ở forum của Microchip cho C30, chú ý post #6 và #7:
http://forum.microchip.com/tm.aspx?m...ibrary&#320424

Tôi đã thử dùng thư viện này, nhưng gặp rắc rối ở phần linking (tôi đã giải quyết được lỗi undefined reference to ...). Tuy nhiên, sau khi đọc hai post trên của Calum, tôi cho rằng không cần phải tìm hiểu thêm.

Bạn tham khảo tutorial 3 về dsPIC của tôi, tôi đã viết phần lớn các hàm để điều khiển LCD ký tự (đã có code cho C30).

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
Old 28-08-2012, 11:06 PM   #12
vodanh_bk
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 9
Thanks: 0
Thanked 0 Times in 0 Posts
Trích:
Nguyên văn bởi namqn View Post
Bạn tham khảo luồng này ở forum của Microchip cho C30, chú ý post #6 và #7:
http://forum.microchip.com/tm.aspx?m...ey=library񎎨

Tôi đã thử dùng thư viện này, nhưng gặp rắc rối ở phần linking (tôi đã giải quyết được lỗi undefined reference to ...). Tuy nhiên, sau khi đọc hai post trên của Calum, tôi cho rằng không cần phải tìm hiểu thêm.

Bạn tham khảo tutorial 3 về dsPIC của tôi, tôi đã viết phần lớn các hàm để điều khiển LCD ký tự (đã có code cho C30).

Thân,
hi bác namqn,
hiện tại em có làm một ứng dụng sử dụng hàm _Q15cosPI(_Q15) trong thư viện libq.h. Tuy nhiên khi gọi hàm này, trình biên dịch cũng báo lỗi undefined reference to _Q15cosPI(_Q15). Không bít lỗi này là do nguyên nhân gì và khi gặp lỗi này thì cách sửa như thế nào bác nhỉ? Mong bác và các cao thủ chỉ giáo!
vodanh_bk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-03-2008, 11:06 AM   #13
footballer
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 16
Thanks: 18
Thanked 5 Times in 1 Post
Ngoài ra em thấy rằng phần đầu của file xlcd.h có chú thích về loại lcd được hỗ trợ là P-tec:
Code:
/********************************************************************/
/*            Header for XLCD module library functions for          */
/*            P-tec PCOG1602B LCD controller                        */
/********************************************************************/
Em lại đang dùng lcd loại SD-DM1602A. Em xin hỏi là em có thể sử dụng thư viện xlcd.h để giao tiếp với cái lcd của em không? Em xin cảm ơn.
footballer vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-03-2008, 11:22 PM   #14
footballer
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 16
Thanks: 18
Thanked 5 Times in 1 Post
Em đã sử dụng được thư viện xlcd để giao tiếp với lcd SD-DM1602A. Thư viện xlcd được viết ra chỉ hỗ trợ cho một số loại chip sau đây( theo tài liệu dsPIC language tools library):
Code:
dsPIC30F5011
• dsPIC30F5013
• dsPIC30F6010
• dsPIC30F6011
• dsPIC30F6012
• dsPIC30F6013
• dsPIC30F6014
Tuy thế em thấy có thể thay đổi một chút trong code của các hàm của thư viện xlcd để các hàm này có thể dùng được với chip 30f4011.
- Copy file xlcd.h( trong thư mục "Microchip\MPLAB C30\src\peripheral_30F_24H_33F\include") vào thư mục của project. Chỉnh sửa lại file xlcd.h như sau:
+Bỏ cặp chỉ lệnh: #if defined(_RD10) ..#endif. (Vì 30f4011 không có chân RD10)
+Bỏ cặp chỉ lệnh: #if defined(_RD8) && defined(_RD9) && defined(_RD10)... #endif
+Sửa lại phần mã định nghĩa các chân RS,RW,EN, DB0,..DB7 cho phù hợp với mạch của ta. Trong thử nghiệm của em, em chọn RS-RD0, RW-RD1, EN-RD2, DB0..DB7-RB0..RB7.
- Include file xlcd.h vào trong file nguồn:
Code:
#include "xlcd.h"
- Copy tất cả các file .c trong thư mục "MPLAB C30\src\peripheral_30F_24H_33F\src\pmc\xlcd" vào thư mục của project. Add tất cả các file này vào trong project.
- Mở các file .c đã nói ở trên và bỏ đi các chỉ lệnh biên dịch có điều kiện như sau:
Code:
#ifdef _RD10                                -> bỏ
...
...
...
#else                                                  ->bỏ
#warning "Does not build on this target"    ->bỏ
#endif                                                 ->bỏ
Từ bây giờ ta có thể sử dụng các hàm của thư viện xlcd để giao tiếp với lcd. Em đã thử với đoạn code sau đây, kết quả hiển thị trên lcd SD-DM1602A đúng như mong muốn.
Code:
#include <p30f4011.h>
#include "xlcd.h"

_FOSC(CSW_FSCM_OFF & FRC_PLL4);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_ON & BORV_27 & PWRT_16 & MCLR_DIS);
_FGS(CODE_PROT_OFF);

int main()
{
    OpenXLCD(EIGHT_BIT & TWO_LINE & SEG1_50_SEG51_100
             & COM1_COM16);    //Khoi tao lcd
    PutsXLCD("Hello world");   //Hien thi mot xau tren dong thu nhat
	
    SetDDRamAddr(0x40);        //Dua con tro ve dau dong thu hai
    PutsXLCD("30f4011-LCD");	//Hien thi mot xau tren dong thu hai
    
    while(1);
    return 0; 
}
Em cảm ơn anh Nam đã gợi ý cho cách giải quyết.

thay đổi nội dung bởi: footballer, 29-03-2008 lúc 11:45 PM.
footballer vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following 5 Users Say Thank You to footballer For This Useful Post:
falleaf (18-06-2008), namqn (30-03-2008), nghean (02-04-2008), Sangcao (31-03-2008), tuannguyenduc (20-09-2008)
Old 13-11-2008, 10:10 AM   #15
tungtuantu
Đệ tử 3 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 54
Thanks: 3
Thanked 3 Times in 3 Posts
Cho mình hỏi
Code:
/* defines for segment data transfer direction */
#define SEG1_50_SEG51_100     0x39  /* SEG1->SEG50 ,SEG51->SEG100 */
#define SEG1_50_SEG100_51     0x3d  /* SEG1->SEG50 ,SEG100->SEG51 */
#define SEG100_51_SEG50_1     0x3b  /* SEG100->SEG51,SEG50->SEG1 */
#define SEG100_51_SEG1_50     0x3f  /* SEG100->SEG51,SEG1->SEG50 */

/* defines for COM data transfer direction */

#define COM1_COM16            0x3e  /* Data transfer direction is COM1 to COM16 */

#define COM16_COM1            0x3f  /* Data transfer direction is COM16 to COM1 */
2 cái difine này có tác dụng j thế hả bạn

Mình sửa file xlcd.h để giao tiếp 4 bit với LCD như này
Code:
/********************************************************************/
/*            Header for XLCD module library functions for          */
/*            P-tec PCOG1602B LCD controller                        */
/********************************************************************/

#if defined(__dsPIC30F__)
#include <p30fxxxx.h>
#elif defined(__dsPIC33F__)
#include <p33Fxxxx.h>
#elif defined(__PIC24H__)
#include <p24Hxxxx.h>
#endif



#ifndef _XLCD_H
#define _XLCD_H

/* Comment out the following line if 4-bit interface is being used */
#define EIGHT_BIT_INTERFACE

/* #defines of the data pins and the corresponding tris pins */
/* The READ_PIN_X #defines must match the corresponding DATA_PIN_X defines */
#define DATA_PIN_7           LATDbits.LATD3
#define DATA_PIN_6            LATDbits.LATD1
#define DATA_PIN_5           LATEbits.LATE8
#define DATA_PIN_4           LATCbits.LATC14

#define READ_PIN_7		PORTDbits.RD3
#define READ_PIN_6		PORTDbits.RD1
#define READ_PIN_5		PORTEbits.RE8
#define READ_PIN_4		PORTCbits.RC14




#define TRIS_DATA_PIN_7       TRISDbits.TRISD3
#define TRIS_DATA_PIN_6       TRISDbits.TRISD1
#define TRIS_DATA_PIN_5       TRISEbits.TRISE8
#define TRIS_DATA_PIN_4       TRISCbits.TRISC14



/* #defines of the control pins and the corresponding tris pins for 30F */
#define E_PIN                 LATCbits.LATC13       /* PORT for E */
#define RW_PIN                LATBbits.LATB8       /* PORT for RW */
#define RS_PIN                LATBbits.LATB7      /* PORT for RS */

#define TRIS_E                TRISCbits.TRISC13    /* TRIS for E */
#define TRIS_RW               TRISBbits.TRISB8    /* TRIS for RW */
#define TRIS_RS               TRISBbits.TRISB7   /* TRIS for RS */

	#ifdef EIGHT_BIT_INTERFACE
#define DATA_PIN_3           LATDbits.LATD3
#define DATA_PIN_2           LATDbits.LATD2
#define DATA_PIN_1           LATDbits.LATD1
#define DATA_PIN_0           LATDbits.LATD0

#define READ_PIN_3		PORTDbits.RD3
#define READ_PIN_2		PORTDbits.RD2
#define READ_PIN_1		PORTDbits.RD1
#define READ_PIN_0		PORTDbits.RD0

#endif
	
#ifdef EIGHT_BIT_INTERFACE
#define TRIS_DATA_PIN_3       TRISDbits.TRISD3
#define TRIS_DATA_PIN_2       TRISDbits.TRISD2
#define TRIS_DATA_PIN_1       TRISDbits.TRISD1
#define TRIS_DATA_PIN_0       TRISDbits.TRISD0
#endif

/* Display ON/OFF Control defines */
các phần sau thì giống file gốc
chương trình chính mình viết giống như bạn chỉ thay 8 bit thành 4 bit
Code:
#include <p30f4011.h>
#include "xlcd.h"

_FOSC(CSW_FSCM_OFF & FRC_PLL4);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_ON & BORV_27 & PWRT_16 & MCLR_DIS);
_FGS(CODE_PROT_OFF);

void main()
{
    OpenXLCD(FOUR_BIT & TWO_LINE & SEG1_50_SEG51_100
             & COM1_COM16);    //Khoi tao lcd
    PutsXLCD("Hello world");   //Hien thi mot xau tren dong thu nhat
	
    SetDDRamAddr(0x40);        //Dua con tro ve dau dong thu hai
    PutsXLCD("30f4011-LCD");	//Hien thi mot xau tren dong thu hai
    
    while(1);
    return 0; 
}
Khi dịch ra thì báo là
Code:
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\lcd.o" is out of date.
Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=30F4011 -x c -c   "lcd.c" -o"lcd.o" -g -Wall
pic30-coff-cc1.exe: warning: Resource version (3.01) does not match compiler!
lcd.c:10: warning: return type of `main' is not `int'
lcd.c: In function `main':
lcd.c:12: warning: implicit declaration of function `PutsXLCD'
lcd.c:18: warning: `return' with a value, in function returning void
lcd.c:19:2: warning: no newline at end of file
Resource version (3.01) does not match!
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\delay.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\OpenXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\PutsXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\ReadAddrXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\ReadDataXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\setCGRamAddr.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\setDDRamAddr.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\WriteCmdXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\WriteDataXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\BusyXLCD.o" is up to date.
Make: The target "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\LCD 4 bit.cof" is out of date.
Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=30F4011 "lcd.o" "delay.o" "OpenXLCD.o" "PutsXLCD.o" "ReadAddrXLCD.o" "ReadDataXLCD.o" "setCGRamAddr.o" "setDDRamAddr.o" "WriteCmdXLCD.o" "WriteDataXLCD.o" "BusyXLCD.o" -o"LCD 4 bit.cof" -Wl,-L"C:\Program Files\Microchip\MPLAB C30\lib",--script="C:\Program Files\Microchip\MPLAB C30\support\gld\p30f4011.gld",-Map="LCD 4 bit.map",--report-mem




Resource version (3.01) does not match!
Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-bin2hex.exe" "C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\LCD 4 bit.cof"
Resource version (3.01) does not match!
Loaded C:\Documents and Settings\NGUYEN THE TUNG\Desktop\C30\LCD\LCD 4 bit.cof.
BUILD SUCCEEDED: Thu Nov 13 11:50:45 2008
Mình vẫn ko hiển thị dc lên LCD, phần in đậm là lỗi j thế

thay đổi nội dung bởi: tungtuantu, 13-11-2008 lúc 12:04 PM.
tungtuantu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ð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à 10:42 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