Проектирование процедуры инициализации аппаратуры микроконтроллера

Процедура инициализации производит настройку: портов ввода/вывода, периферийных аппаратных устройств, а так же внешних устройств которые требуют инициализации.

//== Port Initialisation ===============

void Init(void)

{

DDRD = 0xf0; //PD3-PD0 as input

PORTD = 0xff; //Turn ON PullUP for PortB pins

DDRB = 0xff; //Port B pins as output

PORTB = 0x00;

}

//== Virtual Timer Initialisation ==========

void InitTimers(void)

{

#asm("cli");

TCCR0B=PrescalerTmr0;

TIMSK |= (1 << TOIE0); //Enable Timer0 Interrupt

TCNT0=Tmr0_Reload;

TmrPreLoad[0]=250;

TmrCnt[0]=250;

TmrFlag[1]=0x81;

TmrPreLoad[1]=10;

#asm("sei");

}

//=================================

char TimeDelay_us(char x) //near 1us time delay

{

char i,j,k,n;

j=1;

for (i=0;i<x;i++)

{

k=j+1;

n=k-j;

}

return n;

}

//== Circular Buffer Write =====================

void CircBufPut (unsigned char data)

{

unsigned char tmphead;

tmphead = CircBufHead + 1;

if (tmphead>=CircBufLen)

{

tmphead=0;

}

CircBuf[tmphead] = data;

CircBufHead = tmphead;

}

//== Circular Buffer Read ==========

unsigned char CircBufGet(void)

{

unsigned char tmptail;

if (CircBufHead != CircBufTail)

{

tmptail=CircBufTail+1;

if (tmptail>=CircBufLen)

{

tmptail=0;

}

CircBufTail = tmptail;

return CircBuf[tmptail];

}

else

{

return 0;

}

}

Другие публикации

Автомобильная система видеонаблюдения
По данным приведенным департаментом ГАИ Министерства внутренних дел Украины, на дорогах страны происходит более 500 ДТП в сутки. Что примерно равно цифре 180-190 ти ...

Электрические и электронные аппараты
Энергетика как отрасль промышленности обладает рядом особенностей, резко выделяющих энергетическое производство из других отраслей промышленности. Важнейшая особен ...

Меню

Copyright @2021, TECHsectors.ru.