Проектирование процедуры Main()

Процедура Main(), является основной исполняемой процедурой из которой начинается выполнение программы. Поэтому все действии нужно выполнять в этой процедуре.

В начале процедуры необходимо разместить вызовы процедур инициализации.

Опрос термометра производим постоянно в бесконечном цикле.

В остальное время отображение температуры на ЖК-индикаторе.

//== Main Procedure

void main(void)

{

int Cels1;

char Cels,Ready;

// unsigned int x;

Init();

InitTimers();

DisplayInit(); // lcd.c is needed!

while (1)

{

//--Virtual timer0 is used for LCD display--

if ((TmrFlag[0] & 0x02) != 0)

{

TmrFlag[0] &= ~(0x02);

{

unsigned char data;

data=CircBufGet();

while (data != 0)

{

SendDataToDisplay(data,0); // lcd.c is needed!

data=CircBufGet();

}

}

}

//--Virtual timer1 is used to read a keypad--

if ((TmrFlag[1] & 0x02) != 0)

{

TmrFlag[1] &= ~(0x02);

//Запустить измерение

DS1620Init();

DS1620WriteByte(0xee); //начать преобразование

//проверить готовность измерения

Ready = 0;

while (!Ready)

{

DS1620Init();

DS1620WriteByte(0xac); //read status

Cels = DS1620ReadByte();

if(Cels & 0x80)

{

Ready = 1;

}

else

{

Ready = 0;

}

}

//прочесть результат измерения

DS1620Init();

DS1620WriteByte(0xaa); //read temperature

Cels = DS1620ReadByte();

Cels1 = (int) Cels;

CircBufPut(Cels1);

}

}

}

//==Timer0 Interrupt Routine

interrupt [TIM0_OVF] void TIMER0_OVF_interrupt(void)

{

unsigned char i;

TCNT0=Tmr0_Reload;

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

{

if((TmrFlag[i] & 0x01) != 0) // If counting bit set - serve this timer!

{

if(TmrCnt[i]==0) // If counter is empry - serve this overflow!

{

TmrFlag[i] |= 0x02; // Set timer overflow bit

if(TmrFlag[i] & 0x80) // If Reload bit is set - reload this timer!

{

TmrCnt[i]=TmrPreLoad[i]; // Reload counter

}

else

{

TmrFlag[i] &= ~0x01; // Clear counting bit

}

}

else

{

TmrCnt[i]--;

}

}

}

}

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

Усовершенствование материнской платы
Тема дипломной работы – "Усовершенствование материнской платы", являющаяся предметом исследования. Цель работы – выяснить неблагоприятные факторы работы м ...

Организация работ по строительству волоконно-оптической линии связи (ВОЛС)
Настоящий дипломный проект с необходимыми расчетами, обосновывающий целесообразность проектирования и строительства Восточного кольца зоновой сети связи Республики Ба ...

Меню

Copyright @2021, TECHsectors.ru.