Курсовая работа: Разработка специализированного процессора для исполнения элементарных функций
#define SS 4 //бит упарвляющий передачей данных
#define SPIE 7 //разрешение прерываний по SPI
#define SPE 6 // включение SPI
#define MSTR 4 //МК в режиме мастер
#define SPR0 0 // делительна 16
#define CLRBIT(ADDR,BIT) (ADDR&=~(1<<BIT))
#define SETBIT(ADDR,BIT) (ADDR|=(1<<BIT))
unsigned char com;//переменная для хранения полученной команды
unsigned char DATA[4];//массив данных, в котором хранится полученное значение Z
unsigned char DATA_SEND[4];//массив данных, в котором хранится результат вычислений
unsigned char DDR_SPI; //переменная для настройки работы порта В
unsigned char SPIF = 0;//флаг завершения передачи/приема данных по SPI
unsigned char FlagInt1 = 0//флаг получения прерывания INT1 – вывод МК из спящего режима
unsigned char FlagInt0 = 0;//флаг получения прерывания INT0 – перевод МК в спящий режим
unsigned char FlagCalcReady = 0; //флаг завершения вычислений
//== Const =============================================
// Table of 2^(-i) ---------------------------------------------
float dva[15]={0.5,0.25,0.125,0.0625,0.03125,0.015625,
0.0078125,0.00390625,0.001953125,0.0009765625,
0.00048828125,0.000244140625, 0.0001220703125, 0.00006103515625,
0.00003051758125};
// Table of Arth -------------------------------------------------
loat ath[13]={ 0.5493061,0.2554128,0.1256572,0.0625816,0.0312602,0.0156263,
0.0078127,0.0039063, 0.0019531,0.0009766,0.0004883,0.0002441,
0.0001221 };
float log1[13]={0.5849625, 0.3219281,0.169925, 0.0874628, 0.0443941, 0.0223678,
0.0112273, 0.0056245, 0.0028150, 0.0014082, 0.0007043, 0.0003522,
0.0001761};
float log2[13]={1, 0.4150375, 0.1926451, 0.0931094, 0.0458037, 0.0227201, 0.0113153,