![]() |
|
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 |
![]() |
#16 |
Đệ tử 5 túi
Tham gia ngày: May 2007
Bài gửi: 102
: |
hihi. em cũng muốn tham gia diễn đàn này.
em vừa mới bắt đầu tìm hiểu dsPic, mong anh Namqn chỉ dạy. em làm với dsPIC30f4011, em lập trình như ví dụ 2-1 của anh mà sao khi mô phỏng bằng MPLAB SIM thì chạy không đúng anh Namqn ạ. em đã tính toán là chu kỳ timer1 là 0.5s, thế mà nó ra đến và giây thì TMR1 mới lên 1 đơn vị. hôm nay em tính ra HOANG HOA THAM mua con pic về mô phỏng mạch thật mà hết hàng, chán thật. a Namqn nói giùm em cái mplab sim cái, em cấu hình mục setting là thạch anh 8 MHZ, a cũng nói luôn cho em cách cấu hình cho dspic dùng bộ dao động nội và bộ dao động ngoài với thạch anh 8 Mhz nhé. thanhk a!! |
![]() |
![]() |
![]() |
#17 | |
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 |
|
![]() |
![]() |
![]() |
#18 |
Đệ tử 5 túi
Tham gia ngày: May 2007
Bài gửi: 102
: |
dạ, em đã thiết lập rùi mà nó không có được anh nam ạ.
đây là chuơng trình của em nè: #include "p30f4011.h" //khai bao 4 bo thong so cho dsPic _FOSC(CSW_FSCM_OFF & FRC_PLL4); //tat FSCM va dung tan so noi FRC voi PLL4, CSW CLock Switch:co kha nang tu dong chuyen doi giau cac nguon xung clock //FSCM: giam sat su lam viec cua clock ngoai, neu bi loi se tu dong chuyen vao dung clock internal, o day OFF ca 2 _FWDT(WDT_OFF); //tat Cho giu nha _FBORPOR(PBOR_OFF & MCLR_EN & PWMxL_ACT_HI & PWMxH_ACT_HI);//cho pep reset MCLR, nobrownout _FGS(CODE_PROT_OFF); //ko bao ve code #define LED _LATD0 void kt_port(void); void kt_timer1(void); //ct chinh void main(void) { kt_port(); kt_timer1(); while(1){};///cho ngat } //ct con khoi tao cac cong vao ra noi voi led void kt_port() { LATD=0; //_TRISD0=0;//D0 la ngo ra TRISD=0xFFFE; } void kt_timer1() { TMR1=0;//xoa thanh ghi dem timre1 ve 0 PR1=0xF424; _T1IF=0;//xoa co ngat T1CON=0x8020;//1:64(10), T1ON=1 _T1IE=1;//cho phep ngat } //ct xu ly ngat void _ISR_T1Interrupt(void) { _T1IF=0;//xoa ngat _LATD0^=1;//xor bit } |
![]() |
![]() |
![]() |
#19 |
Nhập môn đệ tử
Tham gia ngày: Jun 2009
Bài gửi: 5
: |
chào các bác.cho em hỏi một chút về c30.các bác có thể diễn giải giúp em dòng code sau được không : " extern volatile T2CONBITS T2CONbits __attribute__((__sfr__));"
em không hiểu __attribute__((__sfr__)) là gì. rồi một loạt các khai báo tương tự thế trong các thư viện của c30. __attribute__((__sfr__,__deprecated__,__unsafe__)) vvv em đã đọc qua help của c30 mà không hiểu mấy, mong các bác chỉ giúp.em mới tìm hiểu c30. |
![]() |
![]() |
![]() |
#20 | |
Đệ tử 4 túi
Tham gia ngày: Mar 2009
Bài gửi: 64
: |
Trích:
Mấy cái _sfr_ , _unsafe_ được khai báo địa chỉ trong support/dspic33f/gld (nếu dùng dspic33) Mấy cái này em cũng chưa hiểu rõ lắm. Ví dụ chỗ này nhé: Code:
__extension__ typedef struct tagCLKDIVBITS { union { struct { unsigned PLLPRE:5; unsigned :1; unsigned PLLPOST:2; unsigned FRCDIV:3; unsigned DOZEN:1; unsigned DOZE:3; unsigned ROI:1; }; struct { unsigned PLLPRE0:1; unsigned PLLPRE1:1; unsigned PLLPRE2:1; unsigned PLLPRE3:1; unsigned PLLPRE4:1; unsigned :1; unsigned PLLPOST0:1; unsigned PLLPOST1:1; unsigned FRCDIV0:1; unsigned FRCDIV1:1; unsigned FRCDIV2:1; unsigned :1; unsigned DOZE0:1; unsigned DOZE1:1; unsigned DOZE2:1; }; }; } CLKDIVBITS; unsigned PLLPRE:5; // PLLPRE chia 5 hay PLLPRE gồm 5 bít ?, lôi nó ra như thế nào Muốn dùng từng bít của thanh ghi CLKDIV thì làm thế nào ? Hoặc muốn cấu hình PLLDIV, PLLPOST hoặc PLLPRE thì làm thế nào ? Giả sử em muốn cấu hình dùng thạch anh ngoài sao cho FCY= 40MIPS, em tính ra các hệ số M=32, N1=N2=2, thì thiết lập các thông số này ở đâu ? Mấy cái configuration bit nữa , nếu cấu hình trong đó thì ko phải code nữa có phải ko ạ ? Ngoài các biến của C chuẩn, C30 còn có các loại biến nào khác không ? |
|
![]() |
![]() |
![]() |
#21 |
Nhập môn đệ tử
Tham gia ngày: Jul 2009
Bài gửi: 2
: |
Em muốn lập trình dsPIC bằng C30 Cho dsPIC thay vì sử dụng CCS ,nhưng mà trong MPLAP IDEv8.33 em không biết phải sử dụng như thế nào ,nên khi biên dịch một bài đơn giản nhất cũng báo lỗi .
các Anh có thể chỉ cho em các sử dụng C30 trong MPLAB được không ?và nếu có thể cho em một bài mẫu . |
![]() |
![]() |
![]() |
#22 | |
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 |
|
![]() |
![]() |
![]() |
#23 |
Nhập môn đệ tử
Tham gia ngày: Jul 2009
Bài gửi: 2
: |
cảm ơn anh Namqn đã gúp đỡ em
Em mới cài MPLABCdsPICStdEvalv3_20_B.exe thêm vào MPLAB
Anh có thể hướng đẫn giúp em làm một bài mâu đơn giản nhất cho nó chạy được không? |
![]() |
![]() |
![]() |
#24 |
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
: |
Em có một vấn đề không hiểu khi thực hiện biến đổi FFT trong C30, đó là các hệ số twiddle trong lý thuyết là các số phức, vậy khi sử dụng hàm
FFTComplexIP ( int log2N, fractcomplex* srcCV, fractcomplex* twidFactors, int factPage ); thì các hệ số này khai báo làm sao để được số phức? Em xem một số ví dụ thì thấy người ta chỉ khai báo như là các số nguyên 16bit thông thường (các hệ số này thường là số thực chứ ko nguyên?)? Em xin cám ơn. thay đổi nội dung bởi: npbaoduy, 16-10-2009 lúc 11:56 PM. |
![]() |
![]() |
![]() |
#25 |
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
: |
Cuối cùng mình cũng đã hiểu, xin trình bày luôn để giúp những ai có thắc mắc giống mình.
Thật ra đó là những số phức, word thứ nhất là phần thực, word kế tiếp là phần ảo của nó. |
![]() |
![]() |
![]() |
#26 |
Đệ 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 một câu, trong C30 có hàm đổi từ chuỗi ra số nguyên và ngược lại hay không?
Cám ơn rất nhiều. |
![]() |
![]() |
![]() |
#27 | |
Đệ tử 4 túi
Tham gia ngày: Mar 2009
Bài gửi: 64
: |
Trích:
char *str1 = "Testing UARTx..."; Khi dùng thì viết putsUART1((unsigned int *)str1); Các bác cho em hỏi với, em dùng icd2 để nạp và debug nhé. Nhưng em ko biết cách cấu hình ID memory trong phần configure, với 1 con bất kỳ thì xem ID memory ở đâu (em tìm cả buổi trên google mà vẫn chưa thông...Hơi kém chút). Nên nó báo lỗi loạn nên. Khi chọn debug thì thấy debug rất chậm. Không biết nạp xong có phải reset hay ko mà có mỗi nháy led mà lúc được lúc không. Khoảng thời gian từ khi nạp xong đển khi bộ PLL được lock là bao nhiêu. Còn phần cấu hình secure segment thì chọn như thế nào Em dùng dsPIC33FJ128MC804. |
|
![]() |
![]() |
![]() |
#28 |
Đệ tử 4 túi
Tham gia ngày: Mar 2009
Bài gửi: 64
: |
Tự trả lời bài viết của mình vậy. Khi dùng debug bằng IDC2 (mà bằng cái gì cũng thế thôi)thì trong phần project/build configuration phải để là mode debug (khônng phải là release).
Nếu nạp bằng phân programmer, nhớ import file .hex vào, khi nạp xong thì vào programmer chọn phần release from reset để chạy. Còn khi nạp lại chỉ vào phần hold in reset. Còn vấn đề nữa là. Dùng các thư viện ngoại vi sẵn có của C30 bằng cách include thêm file.h. Nhưng khi debug thì không thể nhảy vào hàm được. Nếu include cả file .c thì nhảy vào hàm được nhưng trong thư viện của C30, nó tách mỗi hàm thành 1 file .c như vậy mỗi khi dịch lại link 1 đống các file. Vậy có cách nào dồn đống hàm đó vào 1 file không? + Cách 1: Chịu khó gom thủ công thành 1 file .c (cái này em làm rồi, ok ngon) + Cách 2: Tạo ra 1 file .lib (không biết làm thế nào ) Vấn đề là em muốn tạo ra 1 cái file thư viện để khi debug có thể nhảy vào hàm (có thể dịch sang object-file .o rồi include vào project cũng được) |
![]() |
![]() |
![]() |
#29 |
Đệ tử 2 túi
|
![]() Code:
OpenXLCD(EIGHT_BIT & TWO_LINE & SEG1_50_SEG51_100 & COM1_COM16); //Khoi tao lcd Code:
LCD162.c: In function 'main': LCD162.c:9: warning: implicit declaration of function 'OpenXLCD' LCD162.c:9: error: 'EIGHT_BIT' undeclared (first use in this function) LCD162.c:9: error: (Each undeclared identifier is reported only once LCD162.c:9: error: for each function it appears in.) LCD162.c:9: error: 'TWO_LINE' undeclared (first use in this function) LCD162.c:10: error: 'SEG1_50_SEG51_100' undeclared (first use in this function) LCD162.c:10: error: 'COM1_COM16' undeclared (first use in this function) LCD162.c:11: warning: implicit declaration of function 'PutsXLCD' LCD162.c:13: warning: implicit declaration of function 'SetDDRamAddr' LCD162.c:15: warning: implicit declaration of function 'DelayMs' LCD162.c:23:2: warning: no newline at end of file
__________________
Best Regard. |
![]() |
![]() |
![]() |
#30 |
Nhập môn đệ tử
Tham gia ngày: Jun 2008
Bài gửi: 6
: |
loi trong c30
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
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|