![]() |
|
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 |
|
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. |
|
|
|
|
|
#2 | |
|
Đệ 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 ? |
|
|
|
|
![]() |
| Ðiều Chỉnh | |
| Xếp Bài | |
|
|