ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
5 мая
801245 Топик полностью
0men (11.12.2017 15:47, просмотров: 151) ответил йцукен на Если можно, поясните на конкретном примере. Вот функция, работу которой я хотел бы ускорить (FIR-фильтр). Это в ассемблерном стиле? И в каком другом стиле это можно написать?
мой фир  int32_t ADS1248_fir ( uint32_t ulAdcData, uint8_t AdcCh ) { int32_t * p1; int32_t * p2; int32_t const * pc; int64_t acc; uint32_t uiFilterLength; int32_t lAdcData; int32_t lFilterData; lAdcData = (int32_t)ulAdcData; // FIR uiFilterLength = LENGTH_FIR; pc = &fir_coeff3[LENGTH_FIR]; p1 = &dfir[AdcCh][uiFilterLength-1]; p2 = &dfir[AdcCh][uiFilterLength]; acc = 0; for(uint32_t j=0; j<uiFilterLength; j++) { acc += (int64_t)(*p1) * (*pc); pc--; *p2-- = *p1--; } acc += (int64_t)lAdcData * (*pc); *p2 = lAdcData; lFilterData = (int32_t)((acc + (int64_t)((1L)<<(ROUND_BIT-1)))>>ROUND_BIT); return( lFilterData ); }