AU08 (10.07.2013 15:27 - 15:31, просмотров: 190) ответил Apтём на Не скажите...
Ну тогда исходник... /*
* As61_test02.c
*
* Created: 10.07.2013 16:12:35
* Author: Admin
*/
#include <avr/io.h>
//#define int16_t signed int
//#define uint8_t unsigned char
//#define int32_t signed long
int16_t A0 = 8891;
int16_t A2 = -17783;
int16_t A4 = 8891;
uint8_t B0exp = 13; // exponent of 8192 by module 2
int16_t B1 = -22997;
int16_t B2 = 32344;
int16_t B3 = -22749;
int16_t B4 = 8016;
int16_t Add_Sample_Ufa(int16_t sample)
{
static int16_t X0, X1, X2, X3;
static int32_t Y0, Y1, Y2, Y3;
int32_t summa;
asm("nop");
// 4
summa = X3 * A4;
summa -= Y3 * B4;
// 3
X3 = X2;
Y3 = Y2;
summa -= Y3 * B3;
// 2
X2 = X1;
summa += X2 * A2;
Y2 = Y1;
summa -= Y2 * B2;
// 1
X1 = X0;
Y1 = Y0;
summa -= Y1 * B1;
// 0
X0 = sample;
summa += X0 * A0;
//
Y0 = summa >> (B0exp) ;
int16_t res = Y0 >> 9;
asm("nop");
return res;
}
int main(void)
{
while(1)
{
int16_t f1;
f1 = Add_Sample_Ufa(1449);
f1 += Add_Sample_Ufa(2050+f1);
f1 += Add_Sample_Ufa(1451+f1);
f1 += Add_Sample_Ufa(1+f1);
f1 += Add_Sample_Ufa(-1451+f1);
f1 += Add_Sample_Ufa(-2052+f1);
f1 += Add_Sample_Ufa(-1453+f1);
f1 += Add_Sample_Ufa(-2+f1);
f1 += Add_Sample_Ufa(1454+f1);
f1 += Add_Sample_Ufa(2055+f1);
f1 += Add_Sample_Ufa(1456+f1);
f1 += Add_Sample_Ufa(3+f1);
f1 += Add_Sample_Ufa(-1457+f1);
f1 += Add_Sample_Ufa(-2058+f1);
f1 += Add_Sample_Ufa(-1459+f1);
f1 += Add_Sample_Ufa(-4+f1);
asm("nop");
f1 += Add_Sample_Ufa(1401+f1);
f1 += Add_Sample_Ufa(2042+f1);
f1 += Add_Sample_Ufa(1403+f1);
f1 += Add_Sample_Ufa(5+f1);
f1 += Add_Sample_Ufa(-1404+f1);
f1 += Add_Sample_Ufa(-2045+f1);
f1 += Add_Sample_Ufa(-1406+f1);
f1 += Add_Sample_Ufa(-6+f1);
f1 += Add_Sample_Ufa(1407+f1);
f1 += Add_Sample_Ufa(2048+f1);
asm("nop");
//TODO:: Please write your application code
break;
}
}
Что такое асимметричный ответ?
Это когда о тебе негативно отзываются в комментарии, а ты об авторе этого комментария пишешь хорошо и по-доброму: в некрологе!