![]() |
|
Tài trợ cho PIC Vietnam |
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 |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ 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 |
![]() |
![]() |
![]() |
#2 |
Đệ 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; } 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? |
![]() |
![]() |
![]() |
#3 | |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Trích:
Code:
float Euclidean_distance(fractional x[13], fractional y[13]) Code:
d= Euclidean_distance(a[13],b[13]) Bạn phải gọi đúng như sau: Code:
d= Euclidean_distance(a, b) |
|
![]() |
![]() |
![]() |
#4 |
Đệ 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? |
![]() |
![]() |
![]() |
#5 | |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Trí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]) |
|
![]() |
![]() |
![]() |
#6 |
Đệ 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}; |
![]() |
![]() |
![]() |
#7 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
![]() |
![]() |
![]() |
|
|