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!! |
Trích:
Thân, |
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 } |
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. |
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 { 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 ? |
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 . |
Trích:
Thân, |
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? |
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. |
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ó. |
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. |
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. |
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) |
Edit thư viện Xlcd
Code:
OpenXLCD(EIGHT_BIT & TWO_LINE & SEG1_50_SEG51_100 Code:
LCD162.c: In function 'main': |
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
|
Múi giờ GMT. Hiện tại là 07:08 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam