|
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 |
29-05-2008, 12:52 PM | #7 |
Đệ tử 2 túi
Tham gia ngày: Jun 2005
Bài gửi: 27
: |
Em dùng prototype có sẵn nên vẫn chưa hiểu 1 số chỗ :
_Trong phần adc ,phần ngắt : Code:
// phần khai báo biến bên trên unsigned int adc_buf[16]; volatile unsigned int* ADC16Ptr = &ADCBUF0; //Pointer to ADC register buffer, unsigned int adc_filter_buffer[4][6] = { {0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0} }; unsigned int current_buf = 1; void __attribute__((__interrupt__)) _ADCInterrupt(void) { unsigned int i; for (i=0; i < 6; i++) adc_filter_buffer[current_buf][i] = ADC16Ptr[i]; for (i=0; i < 6; i++) adc_buf[i] = (adc_filter_buffer[current_buf][i]/6 + adc_filter_buffer[(current_buf+1)%4][i]/6 + adc_filter_buffer[(current_buf+2)%4][i]/3 + adc_filter_buffer[(current_buf+3)%4][i]/3); current_buf = (current_buf+1) % 4; IFS0bits.ADIF = 0; } Code:
// auto-align on 16bit size (655.. = 5 positions) for (radix=10000, i=0; i < 5; radix/=10, i++) { if (converted > radix-1) { tmpChar[0] = '0' + (converted/radix); printer(tmpChar); converted = converted % radix; emptyChar = '0'; } else if (emptyChar == '0') { printer("0"); } } PS : em là dân cơ khí nhưng vì 1 lí do bắt buộc em phải làm phần điều khiển nên thật sự em chỉ là ăn sổi nhưng em chắc chắn 1 điều là những cái em hỏi em đã đầu tư suy nghĩ ,chứ ko fải cứ bị trục trặc là xách lên hỏi ,nên mong các bác thông cảm nếu có những câu hỏi hơi ngớ ngẩn . thay đổi nội dung bởi: chukhivuitinh, 29-05-2008 lúc 01:03 PM. |
|
|