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 18-05-2010, 08:53 PM   #1
lybao_huy
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 97
:
Trục trặc khi Return giá trị

Tôi dùng MPLAB IDE ver 8.46. tôi có 3 file h.c, g.h, main.c:
1-h.c chứa hàm unsigned long cal1():
unsigned long cal1(){
return 125100;
}
2-g.h chứa hàm unsigned long cal2().
unsigned long cal2(){
return 125100;
}
3-có 2 trường hợp:
3a- main.c chứa lệnh cal2() và in giá trị 125100 lên màn hình.
3b-main.c chứa lệnh cal1() và in giá trị không chính xác lên màn hình nếu giá trị này lớn hơn 32767.

xin các bạn giải thích dùm
lybao_huy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-05-2010, 11:50 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 lybao_huy View Post
Tôi dùng MPLAB IDE ver 8.46. tôi có 3 file h.c, g.h, main.c:
1-h.c chứa hàm unsigned long cal1():
unsigned long cal1(){
return 125100;
}
2-g.h chứa hàm unsigned long cal2().
unsigned long cal2(){
return 125100;
}
3-có 2 trường hợp:
3a- main.c chứa lệnh cal2() và in giá trị 125100 lên màn hình.
3b-main.c chứa lệnh cal1() và in giá trị không chính xác lên màn hình nếu giá trị này lớn hơn 32767.

xin các bạn giải thích dùm
Bạn dùng trình dịch C nào? MPLAB IDE chỉ là ... IDE. Ngoài ra, bạn đang viết code cho chip nào?

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-05-2010, 01:11 AM   #3
lybao_huy
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 97
:
dùng trình dịch MPLABC30ComboLite_v3_23 cho chip dsp33fj64gp804.
Mong nhận câu trả lời sớm.
lybao_huy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-05-2010, 01:19 AM   #4
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
:
bạn upload project bị lỗi của bạn lên thử.
__________________
- 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 19-05-2010, 02:06 AM   #5
lybao_huy
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 97
:
Đây là Project của tôi đã làm đơn giản để dễ kiểm tra.
http://www.mediafire.com/?zh3zdqy2gdn
lybao_huy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-05-2010, 09:33 AM   #6
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
:
Có vẻ như bạn mới làm với C.

Tất cả các hàm đều phải có khai báo mẫu hàm trước khi sử dụng, nếu ko khai báo mẫu hàm, Compiler sẽ ko biết hình dáng của hàm đó ra sao và sẽ coi hàm đó có kiểu trả về là int, ko có tham số.
__________________
- 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 19-05-2010, 09:55 AM   #7
lybao_huy
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 97
:
mình sửa lại rồi, bạn coi hộ mình, nó cũng bị lỗi.
http://www.mediafire.com/?cootc11hkem
lybao_huy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-05-2010, 12:07 PM   #8
ngocthanh07
Đệ tử 2 túi
 
Tham gia ngày: Mar 2007
Bài gửi: 44
:
#include <p33FJ64GP804.h>
#include <libpic30.h>
#include<uart.h>
#include <stdio.h>
#include <math.h>
#include "g.h"

Sao bạn không thử include luôn h.h vào đoạn trên thử xem, chỉ include có g.h thôi vậy
ngocthanh07 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-05-2010, 12:21 PM   #9
lybao_huy
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 97
:
không đựoc bạn à, vì trong file h.c đã include h.h giả sử nếu trong file h.h có định nghĩa các biến (vd: char i; hay là int j;...), nếu bây giờ ta lại include h.h vào trong file EX_0.c hay include nó vào bất cứ file.c nào cũng báo lỗi là multiple definition of ten_bien, có nghĩa là có đa định nghĩa biến,tức cùng một biến là có đa định nghĩa
lybao_huy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-05-2010, 02:30 PM   #10
ngocthanh07
Đệ tử 2 túi
 
Tham gia ngày: Mar 2007
Bài gửi: 44
:
Trích:
Nguyên văn bởi lybao_huy View Post
không đựoc bạn à, vì trong file h.c đã include h.h giả sử nếu trong file h.h có định nghĩa các biến (vd: char i; hay là int j;...), nếu bây giờ ta lại include h.h vào trong file EX_0.c hay include nó vào bất cứ file.c nào cũng báo lỗi là multiple definition of ten_bien, có nghĩa là có đa định nghĩa biến,tức cùng một biến là có đa định nghĩa
Bạn include file chấm h, trong phần source của project bạn bỏ file h.c ra, không import nó vào thì sẽ không bị cái vụ multiple definition nữa.
Anyway, xin vui lòng hiểu dùm mình là cái này mình chỉ nhớ là như vậy, ko đảm bảo 100%.
ngocthanh07 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-05-2010, 12:58 PM   #11
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
:
file .h vốn ko phải là file dùng để khai báo biến.
__________________
- 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 19-05-2010, 02:32 PM   #12
lybao_huy
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 97
:
Trích:
Nguyên văn bởi bien_van_khat View Post
file .h vốn ko phải là file dùng để khai báo biến.
Ủa sao vậy tôi có thấy các file mẫu .h của microchip cũng dùng file .h để khai báo các biến mà .
lybao_huy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-05-2010, 02:34 PM   #13
ngocthanh07
Đệ tử 2 túi
 
Tham gia ngày: Mar 2007
Bài gửi: 44
:
Àh, mà bạn thử ép cho nó ra long int luôn xem, ép bằng cáh

return (long int)125100
ngocthanh07 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à 02:07 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