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 20-11-2009, 05:31 PM   #1
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Nên lựa chọn trình dịch C nào?

Lập trình cho VĐK có thể coi gồm 2 công việc là lập trình cấu hình/sử dụng các module ngoại vi và lập trình thể hiện ý tưởng giải thuật để thực hiện công việc nào đó.

Vấn đề về ý tưởng giải thuật, ví dụ kiểm tra nút bấm, bật LED, chờ 100ms tắt LED.. thực hiện trên ngôn ngữ C dĩ nhiên đơn giản hơn nhiều so với ASM.

Và sự đơn giản này là cần thiết vì bản chất của công việc lập trình là thể hiện ý tưởng, nếu bạn phải tốn thì giờ để viết các đoạn mã chỉ để thực hiện các cấu trúc "if else", biểu thức so sánh, cộng trừ nhân chia nhiều byte... thì quả thực phí phạm. Đó là chưa kể khó khăn khi debug và chia sẻ code. Nhìn chung về sử dụng, C có nhiều điểm ưu việt hơn ASM. Chúng ta nên chọn C là ngôn ngữ chính để làm việc. Vấn đề là chọn lựa ngôn ngữ nào?

Các thư viện ngoại vi, mỗi ngôn ngữ C có 1 hướng hỗ trợ khác nhau.
* HT-PICC, MCC18, MPLAB C30, MPLAB C32 nói chung đều cung cấp 1 dạng thư viện có thể gọi là thư viện gợi nhớ. Các trình dịch này đặt tên gợi nhớ cho các bit cấu hình của các module ngoại vi, công việc của bạn là phải biết các bit này có tác dụng gì, phải sử dụng ra sao, kết hợp như thế nào. Do đó sử dụng cần kiến thức về phần cứng. Ưu điểm đầu tiên là cập nhật cực nhanh, vì mỗi khi có chip hoặc tính năng mới chỉ thêm một số định nghĩa thanh ghi, bit, ngắt...Ngoài ra đây là các trình dịch bám sát chuẩn ANSI nên bạn dễ dàng port code từ các họ chip khác sang cho PIC và giữa các họ PIC với nhau.

* CCS C hỗ trợ 1 bộ thư viện cứng, che hoàn toàn kiến trúc VĐK. Có thể gọi CCS C là BASIC C vì sử dụng nó quá đơn giản. Khi lập trình bạn chỉ cần file help của CCS C là có thể làm thoải mái, và làm rất nhanh. Nhưng cũng vì vậy mà mỗi khi có chip mới, tính năng mới, chúng ta lại phải chờ CCS cập nhật, quá trình cập nhật này cũng khá lâu vì họ phải tích hợp code cho tính năng mới. Chưa kể thư viện ngoại vi của CCS ko tương thích với bất kỳ trình dịch nào khác, do đó khá khó khăn khi port code.

Nếu bỏ qua ưu điểm là sự đơn giản, thì CCS C có rất những điểm bất lợi khó bỏ qua:
* Vì không tương thích, một mình một cõi nên CCS C ko thể dịch các thư viện USB, TCP/IP, Zigbee, MiWi, Graphic... của Microchip cũng như rất nhiều thư viện opensource trên Net. Đây là vấn đề rất quan trọng nếu bạn sử dụng PIC18 trở lên vì các thư viện của Microchip được cập nhật liên tục để hỗ trợ chip mới và tính năng mới, các thư viện của CCS ko thể so sánh được.
* Khi bắt buộc phải chuyển đổi thì công sức bạn bỏ ra để chuyển đổi code là khá lớn.
* Ngoài ra khi đã quen sử dụng, nếu gặp rắc rối cần debug bạn sẽ khá khó khăn vì ko quan tâm đến cấu trúc phần cứng.

Chính vì vậy, R&P chọn HT-PICC thay vì CCS C để sử dụng trong các lớp học PIC16F để giúp học viên quen với 1 cách làm việc "hợp chuẩn hơn" ngay khi mới bắt đầu làm quen với PIC.
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-11-2009, 07:25 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
Thành nên dùng từ cho chuẩn hơn, chỉ có một ngôn ngữ C. Trình dịch C thì mới có nhiều: CCS C, Hi-Tech C, MPLAB C18, ...

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-11-2009, 12:54 AM   #3
jackiele
Đệ tử 3 túi
 
Tham gia ngày: Jun 2008
Bài gửi: 51
:
Tôi ủng hộ ý kiến của thành. Người bắt đầu học nên xài ngôn ngữ C gần với kiến trúc VĐK như: CC5X; HT-PICC ; MCC18;MPLAB C30; MPLAB C32.

Tôi dùng CC5X hoặc HT-PICC dùng cho 16F887.
jackiele vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-11-2009, 02:23 PM   #4
huudk51
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 1
:
bạn có thể cho mình chút tài liệu về C cho vi điều khiển mình đang cần nó
Cảm ơn bạn rất nhiềua
huudk51 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-03-2010, 10:26 AM   #5
eunix
Đệ tử 2 túi
 
Tham gia ngày: Nov 2009
Bài gửi: 36
:
Còn SDCC thì sao? xin mọi người cho ý kiến luôn. Tại e đang tìm hiểu SDCC nhưng dễ đau đầu quá.
__________________
DT:0932668464
Mail: eunix@live.com
Nắng không ưa, mưa không chịu, ghét gió, kỵ mùi sương.
eunix vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-04-2010, 09:22 AM   #6
quanhdt
Nhập môn đệ tử
 
Tham gia ngày: Jan 2006
Bài gửi: 3
:
Trích:
Nguyên văn bởi eunix View Post
Còn SDCC thì sao? xin mọi người cho ý kiến luôn. Tại e đang tìm hiểu SDCC nhưng dễ đau đầu quá.
SDCC : free đấy dùng cũng tốt. nên chọn những anh chàng nào free đi. Đỡ tiền mua bản quyền ( vấn đề đang đau đầu tại VN )

AVR có AVR-GCC là một compiler C rất tốt lại free. hổ trợ nhiều dòng vi điều khiển chỉ mỗi anh PIC thì không hổ trợ không biết là vì lý do gì
quanhdt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-05-2010, 12:38 AM   #7
kiemkhach10
Đệ tử 5 túi
 
Tham gia ngày: Jan 2010
Bài gửi: 114
:
Trích:
Nguyên văn bởi bien_van_khat View Post
Lập trình cho VĐK có thể coi gồm 2 công việc là lập trình cấu hình/sử dụng các module ngoại vi và lập trình thể hiện ý tưởng giải thuật để thực hiện công việc nào đó.

Vấn đề về ý tưởng giải thuật, ví dụ kiểm tra nút bấm, bật LED, chờ 100ms tắt LED.. thực hiện trên ngôn ngữ C dĩ nhiên đơn giản hơn nhiều so với ASM.

Và sự đơn giản này là cần thiết vì bản chất của công việc lập trình là thể hiện ý tưởng, nếu bạn phải tốn thì giờ để viết các đoạn mã chỉ để thực hiện các cấu trúc "if else", biểu thức so sánh, cộng trừ nhân chia nhiều byte... thì quả thực phí phạm. Đó là chưa kể khó khăn khi debug và chia sẻ code. Nhìn chung về sử dụng, C có nhiều điểm ưu việt hơn ASM. Chúng ta nên chọn C là ngôn ngữ chính để làm việc. Vấn đề là chọn lựa ngôn ngữ nào?

Các thư viện ngoại vi, mỗi ngôn ngữ C có 1 hướng hỗ trợ khác nhau.
* HT-PICC, MCC18, MPLAB C30, MPLAB C32 nói chung đều cung cấp 1 dạng thư viện có thể gọi là thư viện gợi nhớ. Các trình dịch này đặt tên gợi nhớ cho các bit cấu hình của các module ngoại vi, công việc của bạn là phải biết các bit này có tác dụng gì, phải sử dụng ra sao, kết hợp như thế nào. Do đó sử dụng cần kiến thức về phần cứng. Ưu điểm đầu tiên là cập nhật cực nhanh, vì mỗi khi có chip hoặc tính năng mới chỉ thêm một số định nghĩa thanh ghi, bit, ngắt...Ngoài ra đây là các trình dịch bám sát chuẩn ANSI nên bạn dễ dàng port code từ các họ chip khác sang cho PIC và giữa các họ PIC với nhau.

* CCS C hỗ trợ 1 bộ thư viện cứng, che hoàn toàn kiến trúc VĐK. Có thể gọi CCS C là BASIC C vì sử dụng nó quá đơn giản. Khi lập trình bạn chỉ cần file help của CCS C là có thể làm thoải mái, và làm rất nhanh. Nhưng cũng vì vậy mà mỗi khi có chip mới, tính năng mới, chúng ta lại phải chờ CCS cập nhật, quá trình cập nhật này cũng khá lâu vì họ phải tích hợp code cho tính năng mới. Chưa kể thư viện ngoại vi của CCS ko tương thích với bất kỳ trình dịch nào khác, do đó khá khó khăn khi port code.

Nếu bỏ qua ưu điểm là sự đơn giản, thì CCS C có rất những điểm bất lợi khó bỏ qua:
* Vì không tương thích, một mình một cõi nên CCS C ko thể dịch các thư viện USB, TCP/IP, Zigbee, MiWi, Graphic... của Microchip cũng như rất nhiều thư viện opensource trên Net. Đây là vấn đề rất quan trọng nếu bạn sử dụng PIC18 trở lên vì các thư viện của Microchip được cập nhật liên tục để hỗ trợ chip mới và tính năng mới, các thư viện của CCS ko thể so sánh được.
* Khi bắt buộc phải chuyển đổi thì công sức bạn bỏ ra để chuyển đổi code là khá lớn.
* Ngoài ra khi đã quen sử dụng, nếu gặp rắc rối cần debug bạn sẽ khá khó khăn vì ko quan tâm đến cấu trúc phần cứng.

Chính vì vậy, R&P chọn HT-PICC thay vì CCS C để sử dụng trong các lớp học PIC16F để giúp học viên quen với 1 cách làm việc "hợp chuẩn hơn" ngay khi mới bắt đầu làm quen với PIC.
chào các tiền bối trong làng PIC.mình mới tìm hiểu về PIC nên mình chọn PIC16F để tìm hiểu và mình cũng chọn HI-TECH PIC làm trình dịch vì nó gần gần với keil C trong 8051
Nhưng một sự thật phũ phàng là code mẫu và các ví dụ mẫu về HI-TECH PIC thì hiếm như mò kim dưới đáy biển. và ở trên diễn đàn thì hình như cũng ít bạn quan tâm đến HI-TECH PIC, về tài liệu thì càng mò mẫm hơn!chỉ có mỗi tut của bác NGÔ HẢI BẮC để tham khảo.
còn về trình dịch CSS thì ko phải nghĩ. mua ổ 1000G chứa cũng ko hết...
"vấn đề đặt ra là khi đã quen với HI-TECH PIC rùi thì có nên chuyển qua CCS ko?
vì nếu chuyển qua sẽ được hỗ trợ rất nhiều thông tin cần thiết và liên tục."
vd:mình có hỏi về phần tạo trễ us và Ms trong HI-TECH PIC mà cũng ko thấy tài liệu và các bạn cũng ko để ý, nên mò mẫm mãi vẫn ko ra
còn xem bên CCS thì khỏi phải bàn, code mẫu và hướng dẫn cập nhật liên tục
trên đây chỉ là ý kiến riêng của mình cho người mới tìm hiểu PIC vì mới nên rất cần sự chia sẻ về thông tin và tài liệu.
còn PRO thì cái gì cũng PRO nên ko cần thiết:!
cám ơn!
kiemkhach10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-05-2010, 09:46 AM   #8
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 kiemkhach10 View Post
chào các tiền bối trong làng PIC.mình mới tìm hiểu về PIC nên mình chọn PIC16F để tìm hiểu và mình cũng chọn HI-TECH PIC làm trình dịch vì nó gần gần với keil C trong 8051
Nhưng một sự thật phũ phàng là code mẫu và các ví dụ mẫu về HI-TECH PIC thì hiếm như mò kim dưới đáy biển. và ở trên diễn đàn thì hình như cũng ít bạn quan tâm đến HI-TECH PIC, về tài liệu thì càng mò mẫm hơn!chỉ có mỗi tut của bác NGÔ HẢI BẮC để tham khảo.
còn về trình dịch CSS thì ko phải nghĩ. mua ổ 1000G chứa cũng ko hết...
"vấn đề đặt ra là khi đã quen với HI-TECH PIC rùi thì có nên chuyển qua CCS ko?
vì nếu chuyển qua sẽ được hỗ trợ rất nhiều thông tin cần thiết và liên tục."
vd:mình có hỏi về phần tạo trễ us và Ms trong HI-TECH PIC mà cũng ko thấy tài liệu và các bạn cũng ko để ý, nên mò mẫm mãi vẫn ko ra
còn xem bên CCS thì khỏi phải bàn, code mẫu và hướng dẫn cập nhật liên tục
trên đây chỉ là ý kiến riêng của mình cho người mới tìm hiểu PIC vì mới nên rất cần sự chia sẻ về thông tin và tài liệu.
còn PRO thì cái gì cũng PRO nên ko cần thiết:!
cám ơn!
Hi-Tech có một forum dành cho người dùng ở đây:
http://forum.htsoft.com/all/ubbthreads.php

Trong thư mục con "samples" của thư mục cài đặt các trình dịch của Hi-Tech có các ví dụ mẫu cho hầu hết các module ngoại vi. Nếu bạn vào thư mục con "delay" của nó, bạn sẽ thấy tập tin "main.c" thể hiện cách dùng các hàm __delay_us() và __delay_ms() để tạo thời gian trễ. Ngoài ra còn có hàm _delay(n) dùng để tạo trễ n chu kỳ máy. Các hàm này đều được đề cập đầy đủ trong tài liệu hướng dẫn đi kèm trình dịch (có thể tìm thấy trong thư mục con "docs" của thư mục cài đặt trình dịch.

Thông tin mà bạn cần thực ra nằm trong tầm tay của bạn, chỉ vì bạn không để ý thôi. Thói quen của tôi khi dùng một trình dịch mới là mở tài liệu hướng dẫn của nó để làm quen và tìm những điểm tương đồng và khác biệt với những trình dịch mà tôi đã dùng.

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 05-05-2010, 07:38 AM   #9
kiemkhach10
Đệ tử 5 túi
 
Tham gia ngày: Jan 2010
Bài gửi: 114
:
Trích:
Nguyên văn bởi namqn View Post
Hi-Tech có một forum dành cho người dùng ở đây:
http://forum.htsoft.com/all/ubbthreads.php

Thân,
toàn TA thuibacacsaf
chắc phải học thêm một khóa 5 năm TA thì mới dám vào diễn đàn đó.mà trong diễn đàn đó mình thấy chỉ nhiều người vào đọc chứ it thấy người port bài lém
cám ơn huynh!
kiemkhach10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-08-2010, 06:10 PM   #10
thetime
Nhập môn đệ tử
 
Tham gia ngày: Aug 2010
Bài gửi: 3
:
mình mới tập làm quen với PIC16f877a, mình không biết xài trình biên dịch nào, nhờ anh em tư vấn dùm, mà cái trình biên dịch nào được sư dụng rộng rãi nhất vậy. cảm ơn.
thetime vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-09-2010, 04:37 PM   #11
antho_pavel
Nhập môn đệ tử
 
Tham gia ngày: Aug 2010
Bài gửi: 4
:
Cool Hướng dần giùm

Có ai có tài liệu vệ HiTech C không cho mình xin với.
antho_pavel vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-09-2010, 06:25 PM   #12
semipower
Đệ tử 5 túi
 
semipower's Avatar
 
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: Hà Nội, VIE
Bài gửi: 114
:
Trích:
Nguyên văn bởi antho_pavel View Post
Có ai có tài liệu vệ HiTech C không cho mình xin với.
Chỉ có tài liệu tiếng anh thôi bạn à. Tài liệu này có sẵn sau khi bạn cài trình dịch. Nếu muốn đọc tài liệu tiếng việt, bạn có thể sử dụng các tài liệu về ngôn ngữ C, vì HiTech C là ngôn ngữ C chuẩn. Sau đó tham khảo tài liệu tiếng anh để biết thêm một số khác biệt và sự mở rộng so với C chuẩn.
__________________
Vì sao nên đọc tài liệu tiếng Anh?
http://www.picvietnam.com/forum/showthread.php?t=6819
Nguồn xung các loại: www.semitech.vn
semipower vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-09-2010, 06:21 PM   #13
semipower
Đệ tử 5 túi
 
semipower's Avatar
 
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: Hà Nội, VIE
Bài gửi: 114
:
Trích:
Nguyên văn bởi thetime View Post
mình mới tập làm quen với PIC16f877a, mình không biết xài trình biên dịch nào, nhờ anh em tư vấn dùm, mà cái trình biên dịch nào được sư dụng rộng rãi nhất vậy. cảm ơn.
Bạn nên dùng Hi-Tech C, công ty này đã được Microchip mua lại. Đây là trình dịch C chuẩn.
__________________
Vì sao nên đọc tài liệu tiếng Anh?
http://www.picvietnam.com/forum/showthread.php?t=6819
Nguồn xung các loại: www.semitech.vn
semipower vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-08-2011, 10:41 AM   #14
AKA_QUAN
Nhập môn đệ tử
 
Tham gia ngày: Jul 2011
Bài gửi: 3
:
Có bác nào có tài liệu về HT C không ??
AKA_QUAN vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-09-2011, 05:11 PM   #15
ddt06
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 2
:
Tài liệu đa phần là không có, chỉ có thể tham khảo code từ các pro đi trước + công sức tự mày mò lập trình + đọc manual của HI-TECH thôi chứ chờ tài liệu biết bao giờ. Đang lập trình USART với con 16F1939 mà mãi nó chưa chịu chạy đây!
ddt06 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à 07:41 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