Курсовая работа: Устройство цифровой фильтрации на основе микроконтроллера фирмы AVR ATmega16
x2[0]=0; x2[1]=0; //init old state
x3[0]=0; x3[1]=0; //init old state
y_out=0;
//your start variable here
x_in=in;
x1=x_in;
x2[1]=x1+x3[0];
x3[1]=x1+x2[0];
x4=x2[1]*KH/KL;
//save old state
x3[0]=x3[1];
x2[0]=x2[1];
//==============
return x4;
}
3 . 6 Процедур а передачи данных ЦАП
Так как ЦАП имеет последовательный вход, то данные необходимо передавать посылками. Для этого используется интерфейс SPI (Serial Peripheral Interface) - полнодуплексный скоростной синхронный трёхпроводной интерфейс.
Рис.3.2- Конфигурация SPI
SPI в реализации Atmel имеет четыре задаваемые программно скорости передачи, может передавать байты от старшего к младшему биту и наоборот, обнаруживает ошибки пакета.
За работу интерфейса отвечают 3 регистра:
· Регистр SPCR - регистр управления
SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0
SPIE - разрешение прерывания по окончанию передачи.
SPE - SPI включен. Если установлен этот бит, то выводы #SS, MISO, MOSI и SCK работают как выводы SPI, иначе - как простые выводы порта.
DORD - направление передачи данных. Если установлен, то передача идёт с младшего бита, если сброшен - со старшего.
MSTR - если установлен, контроллер работает как Master, если сброшен - как Slave. Управляется также выводом #SS, если он настроен на ввод - при подаче "0" на #SS бит MSTR сбрасывается.
CPOL - определяет уровень на выходе SCK в режиме ожидания - SCK = CPOL
CPHA - если установлен, передача и приём бита производится по обратному фронту, если сброшен - по прямому.
SPR1, SPR0 - делитель тактовой частоты (F - частота генератора контроллера).
SPR1 SPR0 Частота
0 0 F/4