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 19-12-2007, 12:13 AM   #1
dtdat1909
Đệ tử 1 túi
 
Tham gia ngày: Jun 2007
Bài gửi: 11
:
Exclamation Cách tính trong CCS???

Bác nào giúp mình với. không biết trong CCS tính toán số thực như thế nào? mình có thể dùng cách ép kiểu như trong C được không?

VD:
float a=2.78;
int b;
b=(int)(a*100);

vậy b=278 có đúng không vậy các bác? kiểu int mặc định là 16 bit đúng vậy không các bác?

cám ơn các bác nhiều.
dtdat1909 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-12-2007, 08:22 AM   #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
Theo tài liệu hướng dẫn sử dụng của CCS C, số thực (float) được hỗ trợ đầy đủ, do đó bạn có thể thực hiện việc chuyển kiểu (casting) theo ý muốn (mặc dù trình biên dịch tự động chuyển kiểu).

Cũng theo tài liệu trên, int mặc định là int8 (số nguyên 8-bit). Bạn nên dùng int16 hay long nếu muốn chắc chắn dữ liệu có độ dài 16-bit.

Tôi có 2 đề nghị với bạn:

1. Download tài liệu hướng dẫn sử dụng của CCS C ở link http://www.ccsinfo.com/downloads/CReferenceManual.pdf

2. Viết thử đoạn chương trình của bạn, thêm vào các lệnh xuất dữ liệu (ra cổng RS232 để hiển thị trên một PC chẳng hạn), rồi biên dịch bằng CCS C, sau đó chạy thử chương trình xem kết quả ra sao. Một khi bạn đã đầu tư cho việc học CCS C, tôi tạm giả thiết là bạn đã có phần cứng để thử nghiệm.

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 20-12-2007, 09:03 AM   #3
hanhluckyly
Đệ tử 4 túi
 
hanhluckyly's Avatar
 
Tham gia ngày: Mar 2006
Bài gửi: 83
:
Chào bạn


Theo mình thấy cách ép kiểu như vậy là đúng đó bạn. Nhưng đoạn code có vấn đề vì 278 lớn hơn kiểu định dạng int chỉ có 255 thôi
hanhluckyly vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-12-2007, 08:20 AM   #4
dtdat1909
Đệ tử 1 túi
 
Tham gia ngày: Jun 2007
Bài gửi: 11
:
ah, mình phát hiện ra rồi. chỉ có kiểu int có độ dài 4 byte (bằng với kiểu float) mới đúng. Có nghĩa là để ép thành kiểu int từ kiểu float thì ta dùng kiểu ép là int32.

float a=2.78;
int32 b;
b=(int32)(a*100);
dtdat1909 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-12-2007, 08:21 AM   #5
dtdat1909
Đệ tử 1 túi
 
Tham gia ngày: Jun 2007
Bài gửi: 11
:
thanks các bác nhiều nha !
dtdat1909 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:19 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