Курсовая работа: Проектирование удаленного устройства индикации

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

Процедураmain{) работаетследующимобразомпосле инициализациивсеузловAVRипериферийныхустройств, разрешаетсявыполнениевсехпрерываний. Послеэтогопрограмма ждетсрабатываниятаймера, которыйнастроентакимобразом, что оннемногочаще, чемможетпроисходитьпрерываниеотУСАПП. Сигналомтого, чтотаймер 0 сработалслужитфактустановки глобальнойпеременнойTmrOFlagв 1, чтоделаетсяобработчиком прерыванийтаймера.

Затем, всевремя, покакольцевойбуфернебудетпуст, происходитсчитываниеданныхизнего. Считанныйбайтпомещается встроку-массивOutString[], иувеличиваетсясчетчикпринятых байт.

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

Влюбомслучаепроисходитсбросфлагатаймеравнольи происходитожиданиеследующегосрабатываниятаймера.


4. Листингпрограммы

Файлмакроопределенийmy_header.h:

^define BYTE unsigned char ttdefine WORD unsigned int

ttdefine READ_STATUS_COMMAND 0x39

ttdefine DATA_WRITE_COMMAND 0x32

tfdefine COMMANDjmTE_COMMAND ОхЗА

// Установкарегистров

^define SET_CURSOR_COMMAKD 0x21

tfdefine SET_OFFSET_COMMAND 0x22

#define SET_ADDRESS_COMMAND 0x24

// Установкаконтрольногослова

#define SET_TEXT_HOME_ADDRESS_COMMAND 0x^0

fldefine SET_TEXT_AREA_COMMAHD0x41

#define SET_GR№HIC_HOME_ADDRESS_CO№1AND 0x42

#define SET_GRAPHIC_AREA_CCMMAND0x43

// Константыустановкирежима

^define OR_MODE0x80

tfdefine EXOR_MODE0x81

^define ANDJMODE0x83

#define TEXT_ATTRIBUTE_MODE0x84

К-во Просмотров: 433
Бесплатно скачать Курсовая работа: Проектирование удаленного устройства индикации