PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 31-01-2009, 12:26 PM   #1
betabeta
Đệ tử 1 túi
 
Tham gia ngày: Nov 2008
Bài gửi: 15
:
Smile thac mac ve cac file 16f877a.h và def877a.h

em đang học về CCS, có làm theo luồng hướng dẫn sau
http://www.picvietnam.com/forum/showthread.php?t=689
khi làm theo project 2 thì có báo lỗi ko xác định trisD (vì file def877a.h là được đổi tên từ file 876 vốn ko có port D) chỉ cần xóa đi hàng này là có thể compile được và chạy đúng. (ko cần chèn thêm define của portD)


Điều đó nghĩa là, file lcd4bit.c đã tự động truy cập portD mà ko thông qua file def877a.h.

Xem kĩ lại file lcd4bit.c, thấy có dòng lệnh sau:

#separate void LCD_SetData ( unsigned int cX )
{
output_bit ( LCD_D4, cX & 0x01 );
output_bit ( LCD_D5, cX & 0x02 );
output_bit ( LCD_D6, cX & 0x04 );
output_bit ( LCD_D7, cX & 0x08 );

nhưng LCD_D4 là define PIN_D4 (đồng thời cũng được define là số 68 trong file 16f877a.h)

Vậy tóm lại, em muốn hỏi số 68 này làm sao lại là đại diện cho pinD4 được vì hình như pic ko có chế độ định địa chỉ từng bit.

và quan trọng hơn, em nhận thấy cả 2 file 16f877a.h và def877a.h đều có tác dụng định nghĩa con Pic trong C vậy tại sao phải tách ra làm 2 file? bản chất của việc đó là gì?

P/S: lẽ ra nên post ở luồng cũ nhưng vì hình như không còn ai xem luồng đó nữa nên mới post ra đây, mong các anh thông cảm
Thân chào!
betabeta vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-01-2009, 07:18 PM   #2
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 betabeta View Post
...
Vậy tóm lại, em muốn hỏi số 68 này làm sao lại là đại diện cho pinD4 được vì hình như pic ko có chế độ định địa chỉ từng bit.

và quan trọng hơn, em nhận thấy cả 2 file 16f877a.h và def877a.h đều có tác dụng định nghĩa con Pic trong C vậy tại sao phải tách ra làm 2 file? bản chất của việc đó là gì?
...
Trong tài liệu hướng dẫn của CCS C hiện thời, trang 68, có giải thích về cách tính địa chỉ bit trong CCS C. Theo đó, địa chỉ bit = địa chỉ của byte*8 + địa chỉ của bit trong byte đó. Như vậy, chân D4 sẽ có địa chỉ bit là địa chỉ port B*8 + 4, tức là 8*8 + 4 = 68.

Theo tôi, def877a.h là tập tin header do người viết code mà bạn đã tham khảo tạo ra thêm, nhằm định nghĩa thêm những giá trị chưa được định nghĩa hoặc định nghĩa lại những giá trị đã được định nghĩa trong tập tin 16f877a.h, được cung cấp kèm theo CCS C.

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 01-02-2009, 08:41 AM   #3
betabeta
Đệ tử 1 túi
 
Tham gia ngày: Nov 2008
Bài gửi: 15
:
Cám ơn anh Nam đã trả lời rất rõ ràng.
Em đã down nhiều tài liệu trên diễn đàn nhưng hình như bị sót tài liệu này, anh Nam có thể cho em link trực tiếp không?
Thân chào.
betabeta vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-02-2009, 07:11 PM   #4
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 betabeta View Post
Cám ơn anh Nam đã trả lời rất rõ ràng.
Em đã down nhiều tài liệu trên diễn đàn nhưng hình như bị sót tài liệu này, anh Nam có thể cho em link trực tiếp không?
Thân chào.
Dưới đây là link download tài liệu hướng dẫn của CCS C, nếu bạn chưa có nó:
http://www.ccsinfo.com/downloads/ccs_c_manual.pdf

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
Trả lờ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à 12:32 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