![]() |
|
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 ? |
|
![]() |
![]() |
![]() |
|
|