uydanh
28-10-2008, 04:32 PM
Chào các bạn.
Mình dùng dspic30f6014A, và đang làm phần biến đổi ADC tín hiệu âm thanh. ADC của dspic30f6014a là ADC 12 bits và dạng dữ liệu đưa ra bus thuộc 4 dạng : integer, signed integer, fractional và signed fractional. Mình đã đọc kỹ trong datasheet của nó và đã hình dung được cách lưu 12 bits đó trong thanh ghi 16 bits của dspic ra sao nhưng vẫn không hiểu kiểu fractional là như thế nào. Cách sử dụng nó ra sao. Và tại sao người ta phải lưu nó dưới dạng này thì mới sử dụng như là các toán hạng trong xử lý số (ma trận,v.v....).
Mình đã search trên diễn đàn, nhưng đa phần nhiều bạn hiểu về vấn đề này rồi thì lại không nói ra. Mong mọi người giúp đỡ.
Nhân đây cho mình hỏi luôn : Các câu lệnh
extern fractional inputSignal[NUMSAMP];
extern int doFilterFlag;
extern fractional* iPtr;
volatile unsigned int * adcPtr;
nếu bỏ đi từ khóa extern và volatile thì sẽ ra sao. Nói chung là mình chưa hiểu nó có ý nghĩa gì.
Cảm ơn mọi người.
Mình dùng dspic30f6014A, và đang làm phần biến đổi ADC tín hiệu âm thanh. ADC của dspic30f6014a là ADC 12 bits và dạng dữ liệu đưa ra bus thuộc 4 dạng : integer, signed integer, fractional và signed fractional. Mình đã đọc kỹ trong datasheet của nó và đã hình dung được cách lưu 12 bits đó trong thanh ghi 16 bits của dspic ra sao nhưng vẫn không hiểu kiểu fractional là như thế nào. Cách sử dụng nó ra sao. Và tại sao người ta phải lưu nó dưới dạng này thì mới sử dụng như là các toán hạng trong xử lý số (ma trận,v.v....).
Mình đã search trên diễn đàn, nhưng đa phần nhiều bạn hiểu về vấn đề này rồi thì lại không nói ra. Mong mọi người giúp đỡ.
Nhân đây cho mình hỏi luôn : Các câu lệnh
extern fractional inputSignal[NUMSAMP];
extern int doFilterFlag;
extern fractional* iPtr;
volatile unsigned int * adcPtr;
nếu bỏ đi từ khóa extern và volatile thì sẽ ra sao. Nói chung là mình chưa hiểu nó có ý nghĩa gì.
Cảm ơn mọi người.