i
* Имя : FIR Filter
* Назначение: Тестовая прикладная задача фильтра
* с КИХ. Входным значением для фильтра является массив
* из 51 16-битного значения.
* Фильтр имеет 17-ый порядок
^^^^^^^^^^-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-k-kj
tifdef MSP430
#include <msp430xl3x.h>
#endif
#include <math.h>
* define FIRJLENGTH 17
const float COEFF[FIR_LENGTH] = {
-0.000091552734,
0.000305175781,
0.004608154297,
0.003356933594,
-0.025939941406,
-0.044006347656,
0.063079833984,
0.290313720703,
0.416748046875,
0.290313720703,
0.063079833984,
-0.044006347656,
-0.025939941406,
0.003356933594,
0.004608154297,
0.000305175781,
-0.000091552734 }; /* Текущий массив симулирует входные значения от АЦП*/
38 Библиотека Компэла
Глава 2. Сравнение микроконтроллеров семейства MSP430 с другими...
const unsigned int INPUT [] = {
0x0400, 0x0800, OxOCOO, 0x1000, 0x1400, 0x1800,
OxlCOO, 0x2000,
0x2400, 0x2000, OxlCOO, 0x1800, 0x1400, 0x1000,
OxOCOO, 0x0800,
0x0400, 0x0400, 0x0800, OxOCOO, 0x1000, 0x1400,
0x1800, OxlCOO,
0x2000, 0x2400, 0x2000, OxlCOO, 0x1800, 0x1400,
0x1000, OxOCOO,
0x0800, 0x0400, 0x0400, 0x0800, OxOCOO, 0x1000,
0x1400, 0x1800,
OxlCOO, 0x2000, 0x2400, 0x2000, OxlCOO, 0x1800,
0x1400, 0x1000, OxOCOO, 0x0800, 0x0400 };
void main(void) {
int i, у; /* Счетчик циклов*/
volatile float OUTPUT [36]; tifdef MSP430
WDTCTL=WDTPW+WDTHOLD; /^Остановка
сторожевого таймера*/ #endif
for(y=0; y<36;
for(i=0; i<FIR_LENGTH/2;
{
OUTPUT[у]=COEFF[i]*(INPUT[y+16-i]+
INPUT[y+i]);
};
OUTPUT[y]=OUTPUT[y]+(INPUT[y+16-i]
COEFF[i]); } return;
}
Matrix Multiplications
i
* Имя: Matrix Multiplication
* Назначение: Тестовая прикладная программа
* перемножения матриц 3x4 и 4x5.
* матрицы содержат 16-битные значения.
Библиотека Компэла
f& Texas