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 Bài Trong Ngày 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 29-10-2009, 11:26 PM   #31
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 hungnk87 View Post
Tại sao trong MPLAB(c30) khi khai báo #include<tenthuvien.h> thì nó báo lỗi là:"No such file or directory" mặc dù 2 file .h và .c đã copy vào trong thư mục project đó rồi. Thư viện này là tự viết, không phải của MicroChip.Nhưng hễ include thư viện của Microchip thi được
Bạn thử lại với #include "tenthuvien.h" xem.

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 06-11-2009, 09:57 PM   #32
npbaoduy
Đệ tử 2 túi
 
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
:
C30 Student Edition có cần license không?

Sau khi em xài dược một thời gian (1-2 tháng gì đó ko nhớ rõ) thì hôm nay biên dịch chương trình trong C30 nó luôn báo lỗi sau:
Code:
Microchip MPLAB C30 License Manager Version v3_20 (Build Date Aug 24 2009).
Copyright (c) 2008 Microchip Technology Inc. All rights reserved.
The MPLAB C30 license has expired.
Options have been disabled due to expired license
Visit http://www.microchip.com/ to purchase a new key.
và không biên dịch được.
Em đã tải và cài phiên bản Student mà? Không biết phải làm sao? Có ai biết chỉ em giúp? Không lẽ phải tải về cài lại?
npbaoduy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-11-2009, 10:12 PM   #33
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 npbaoduy View Post
Sau khi em xài dược một thời gian (1-2 tháng gì đó ko nhớ rõ) thì hôm nay biên dịch chương trình trong C30 nó luôn báo lỗi sau:
Code:
Microchip MPLAB C30 License Manager Version v3_20 (Build Date Aug 24 2009).
Copyright (c) 2008 Microchip Technology Inc. All rights reserved.
The MPLAB C30 license has expired.
Options have been disabled due to expired license
Visit http://www.microchip.com/ to purchase a new key.
và không biên dịch được.
Em đã tải và cài phiên bản Student mà? Không biết phải làm sao? Có ai biết chỉ em giúp? Không lẽ phải tải về cài lại?
Không có chuyện đó đâu bạn. Tôi dùng phiên bản 3.12 từ khi vừa phát hành đến giờ vẫn biên dịch bình thường:
Trích:
Microchip MPLAB C30 License Manager Version v3.12 (Build Date Jan 30 2009).
Copyright (c) 2008 Microchip Technology Inc. All rights reserved.
The MPLAB C30 license has expired.
pic30-coff-cc1.exe: warning: Options have been disabled due to expired license
Visit http://www.microchip.com/ to purchase a new key.
Executing: "F:\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=30F4012 "Vidu4-5.o" -o"Vidu4C30.cof" -Wl,-L"F:\Microchip\MPLAB C30\lib",--script="p30f4012.gld",--defsym=__MPLAB_BUILD=1,--heap=0,-Map="Vidu4C30.map",--report-mem


Program Memory [Origin = 0x100, Length = 0x7f00]

section address length (PC units) length (bytes) (dec)
------- ------- ----------------- --------------------
.text 0x100 0x52a 0x7bf (1983)
.const 0x62a 0xc 0x12 (18)
.init 0x636 0x88 0xcc (204)
.dinit 0x6be 0x88 0xcc (204)
.isr 0x746 0x2 0x3 (3)

Total program memory used (bytes): 0x96c (2412) 4%


Data Memory [Origin = 0x800, Length = 0x800]

section address alignment gaps total length (dec)
------- ------- -------------- -------------------
.nbss 0x800 0 0x2 (2)
.ndata 0x802 0 0x2 (2)
.nbss 0x804 0 0x2 (2)
.data 0x806 0 0x8e (142)
.bss 0x894 0 0x2 (2)

Total data memory used (bytes): 0x96 (150) 7%


Dynamic Memory Usage

region address maximum length (dec)
------ ------- ---------------------
heap 0 0 (0)
stack 0x896 0x76a (1898)

Maximum dynamic memory (bytes): 0x76a (1898)

Executing: "F:\Microchip\MPLAB C30\bin\pic30-bin2hex.exe" "E:\PICProjects\Vidu4C30\Vidu4C30.cof"
Loaded E:\PICProjects\Vidu4C30\Vidu4C30.cof.
----------------------------------------------------------------------
Release build of project `E:\PICProjects\Vidu4C30\Vidu4C30.mcp' succeeded.
Fri Nov 06 22:07:38 2009
----------------------------------------------------------------------
BUILD SUCCEEDED
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 07-11-2009, 09:58 AM   #34
npbaoduy
Đệ tử 2 túi
 
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
:
Cám ơn anh, em hiểu rồi, mặc dù báo vậy nhưng vẫn biên dịch được, do em bị lỗi chỗ nào đó (em cũng ko rõ) nên mới bị như vậy, em thử làm một project khác thì đã biên dịch được.
npbaoduy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-11-2009, 11:51 PM   #35
tahi
Đệ tử 4 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 64
:
Thư viện MDD (microchip solution) thấy hỗ trợ dòng dsPIC33F, nhưng em tìm mãi mà chẳng thấy chỗ cấu hình giao tiếp phần cứng SPI cho dsPIC33F. Không biết có ai viết giao tiếp thẻ nhớ với dsPIC33F cho em hỏi với.?

Với phần SPI, khi đọc dữ liệu về qua SPI, thì thằng clock của SPI có tự động phát không, hay phải write dummy data vào. Có nghĩa là em muốn đợi response của thằng thẻ nhớ thì chỉ đợi hay phải write dữ liệu giả vào để có clk
tahi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-12-2009, 10:39 PM   #36
npbaoduy
Đệ tử 2 túi
 
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
:
lỗi "makes pointer from integer without a cast" là lỗi gì?

Em viết hàm như sau:
Code:
float Euclidean_distance(fractional x[13], fractional y[13])
{
	float d;
	unsigned int l;
	d=0;
	for (l=0;l<13;l++)
	{
		d+=(x[l]-y[l])*(x[l]-y[l]);
	}
	d=sqrt(d);
	return d;
}
khi gọi hàm để sử dụng, ví dụ
d= Euclidean_distance(a[13],b[13]) chẳng hạn thì báo 2 warning là: "passing argument 1 of 'Euclidean_distance' makes pointer from integer without a cast" và "passing argument 2 of 'Euclidean_distance' makes pointer from integer without a cast". Chương trình vẫn biên dịch được, nhưng khi đến đoạn gọi hàm đó thì bị reset.
Ai có kinh nghiệm xin chỉ giúp em được ko?
npbaoduy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-12-2009, 08:35 AM   #37
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
:
Trích:
Nguyên văn bởi npbaoduy View Post
Em viết hàm như sau:
Code:
float Euclidean_distance(fractional x[13], fractional y[13])
{
	float d;
	unsigned int l;
	d=0;
	for (l=0;l<13;l++)
	{
		d+=(x[l]-y[l])*(x[l]-y[l]);
	}
	d=sqrt(d);
	return d;
}
khi gọi hàm để sử dụng, ví dụ
d= Euclidean_distance(a[13],b[13]) chẳng hạn thì báo 2 warning là: "passing argument 1 of 'Euclidean_distance' makes pointer from integer without a cast" và "passing argument 2 of 'Euclidean_distance' makes pointer from integer without a cast". Chương trình vẫn biên dịch được, nhưng khi đến đoạn gọi hàm đó thì bị reset.
Ai có kinh nghiệm xin chỉ giúp em được ko?
Code:
float Euclidean_distance(fractional x[13], fractional y[13])
Mẫu hàm này có nghĩa là bạn phải truyền 2 đối số cho hàm là 2 con trỏ kiểu fractional, 2 con trỏ này trỏ tới mảng kiểu fractional kích thước 13 phần tử.
Code:
d= Euclidean_distance(a[13],b[13])
Khi gọi như trên là bạn đang truyền 2 đối số kiểu fractional.
Bạn phải gọi đúng như sau:
Code:
d= Euclidean_distance(a, b)
__________________
- 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 17-12-2009, 09:49 AM   #38
npbaoduy
Đệ tử 2 túi
 
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
:
Cám ơn anh, nhưng khi em sửa lại là
d = Euclidean_distance(a, b) thì nó warning như sau: "passing argument 2 of 'Euclidean_distance' discards qualifiers from pointer target type".
Em xin nói rõ hơn, mảng a[13] của em là một mảng giá trị thay đổi, lưu giá trị tính toán được trong chương trình, còn mảng b[13] là một mảng hằng số em khai báo trong ROM. Anh có ý kiến gì ko?
npbaoduy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-12-2009, 10:44 AM   #39
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
:
Trích:
Nguyên văn bởi npbaoduy View Post
Cám ơn anh, nhưng khi em sửa lại là
d = Euclidean_distance(a, b) thì nó warning như sau: "passing argument 2 of 'Euclidean_distance' discards qualifiers from pointer target type".
Em xin nói rõ hơn, mảng a[13] của em là một mảng giá trị thay đổi, lưu giá trị tính toán được trong chương trình, còn mảng b[13] là một mảng hằng số em khai báo trong ROM. Anh có ý kiến gì ko?
Có 2 cách

1 - Với chỉ 13 phần tử bạn hoàn toàn có thể chuyển b[13] về RAM thay vì ROM.

2 - sửa lại khai báo
Code:
float Euclidean_distance(fractional x[13], const fractional y[13])
__________________
- 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 23-12-2009, 12:46 AM   #40
npbaoduy
Đệ tử 2 túi
 
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
:
Cho em hỏi thêm cách tính độ dài của dữ liệu là hằng số ghi trong ROM của dspic
ví dụ em khai báo như sau:
Code:
const unsigned char __attribute__ ((space(psv), address (0x0200)))
	chuoi1[]="Bao Duy 40500441\0";
const fractional __attribute__ ((space(psv), address (0x0400)))
	toi1[13]={4890, 2102, 569, 947, 618, 733, 546, 634, 455, 552, 386, 471, 302};
Lúc biên dịch nó tính độ dài là của chuoi1 là 27byte, của mảng toi1 là 39byte? Sao nó lại tính được như vậy?
npbaoduy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-12-2009, 08:02 AM   #41
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 npbaoduy View Post
Cho em hỏi thêm cách tính độ dài của dữ liệu là hằng số ghi trong ROM của dspic
ví dụ em khai báo như sau:
Code:
const unsigned char __attribute__ ((space(psv), address (0x0200)))
	chuoi1[]="Bao Duy 40500441\0";
const fractional __attribute__ ((space(psv), address (0x0400)))
	toi1[13]={4890, 2102, 569, 947, 618, 733, 546, 634, 455, 552, 386, 471, 302};
Lúc biên dịch nó tính độ dài là của chuoi1 là 27byte, của mảng toi1 là 39byte? Sao nó lại tính được như vậy?
Mời bạn đọc mục 4.3 trong "dsPIC30F Family Reference Manual".

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 24-11-2010, 05:54 PM   #42
pic.starter
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 3
:
Các bác Pro làm ơn cho em hỏi, việc add các file *.h, *inc, *gld trong trình biên dịch có tác dụng gì không? có bắt buộc không?.

Vì em thấy không add thì vẫn biên dịch bình thường. Cụ thể là em dùng MPLAB 8.56 tích hợp C30 3.24, em chỉ lấy file ví dụ.c trong turial của bác NamNQ. Biên dịch bình thường. Mong các bác chỉ giúp. Em cảm ơn.
pic.starter vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-11-2010, 03:01 PM   #43
Delfy_Coltech
Đệ tử 4 túi
 
Delfy_Coltech's Avatar
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Hanoi, Vietnam
Bài gửi: 78
:
Hi all,
Trong MPLAB C30 để sử dụng khai báo BYTE thì có cần add thêm thư viện nào không nhỉ?
Sao mình khai báo BYTE i, j;
mà toàn báo lỗi.
__________________
Mechatronics Department
University of Engineering and Technology, VNUH.
Delfy_Coltech vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-11-2010, 04:20 PM   #44
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 Delfy_Coltech View Post
Hi all,
Trong MPLAB C30 để sử dụng khai báo BYTE thì có cần add thêm thư viện nào không nhỉ?
Sao mình khai báo BYTE i, j;
mà toàn báo lỗi.
Bạn hãy dùng kiểu unsigned char. Ví dụ: unsigned char i, j;

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 26-11-2010, 05:21 PM   #45
Delfy_Coltech
Đệ tử 4 túi
 
Delfy_Coltech's Avatar
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Hanoi, Vietnam
Bài gửi: 78
:
Cảm ơn A Nam.
Có thể dùng cách của A, hoặc dùng typedef unsigned char BYTE
__________________
Mechatronics Department
University of Engineering and Technology, VNUH.
Delfy_Coltech 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à 04:52 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