Чтение онлайн

на главную - закладки

Жанры

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Пак Дэниэл Дж.

Шрифт:

}

//********************************************************************

//RTI_isr: подпрограмма прерывания по RTI

//********************************************************************

void RTI_isr(void) {

 unsigned int new_count;

 unsigned int pulse_count;

 float max_count = 65535.0;

 new_count = PACNT; //передается
текущее число импульсов, записанное в PA

 if (new_count > old_count) //определяется приращение числа импульсов

pulse_count = new_count - old_count;

 else pulse_count = (unsigned int)(max_count-(float)(old_count = new_count));

 RTI_int_count = RTI_int_count + 1;// изменяется показание счетчика

//RTI-прерываний

 if (RTI_int_count == 10) // изменяется показание ЖКД через

// каждые 10 прерываний

 {

display_count_LCD(pulse_count); //изменяется ЖКИ

RTI_int_count = 0; //сбрасывается счетчик прерываний RTI

 }

 old_count = new_count;

 RTIFLG = 0x80; //сбрасывается RTI

}

// ********************************************************************

// initialize_RTI:конфигурирует регистры, связанные с RTI

// - регистр RTICTL

// -- разрешает работу модуля RTI установкой бита RTIE

// -- период RTI в 32.768 мс

// - сбрасывает бит RTIF в регистре флагов (RTIFLG)

// ********************************************************************

void initialize_RTI(void) {

 RTICTL = 0x86; // устанавливается период RTI на 32.768 мс

 RTIFLG = 0x80; //сбрасывается флаг RTIF

}

// ********************************************************************

//initialize_PA: инициализация модуля аккумулятора импульсов

// ********************************************************************

void initialize_PA(void) {

 TIOS = 0x00; // Конфигурирует канал 7 для работы

 TCTL1 = 0x00; // счетчика импульсов оптического кодера

 OC7M = 0x00;

 TSCR = 0x80; // устанавливает бит разрешения работы таймера

 PACTL = 0x70; //
разрешает работу РА, режим счета событий,

// по фронту импульса,

}

/********************************************************************/

/* initialize_LCD: инициализации ЖКИ */

/* передает на ЖКИ стартовую последовательность команд управления */

/* - PORTDLC[3]: линия управления RS ЖКИ */

/* - PORTDLC[2]: линия управления E для ЖКИ */

/* - PORTB: двунаправленная магистраль данных для ЖКИ */

/********************************************************************/

void initialize_LCD(void) {

 delay_5ms;

 delay_5ms;

 delay_5ms; /*ожидание в течение 15 мс перед включением ЖКИ */

 putcommands(0x38); /*разрядность данных интерфейса 8 бит */

 delay_5ms; /*задержка */

 putcommands(0x38); /*интерфейс в 8 бит */

 delay_100us; /*задержка */

 putcommands(0x38); /* разрядность данных интерфейса 8 бит */

 putcommands(0x38); /* интерфейс в 8 бит */

 putcommands(0x0C); /*включение дисплея */

 putcommands(0x01); /*очистка дисплея */

 putcommands(0x06); /*установка режима инкремента адреса */

 putcommands(0x00);

 putcommands(0x00);

 putcommands(0xC0); /*курсор на линию 2 знакоместо 1 */

 putchars('R'); /* вывести "PRM" - скорость */

/*в об/мин на строку 2 ЖКИ */

 putchars('P');

 putchars('M');

}

/********************************************************************/

/*putchars: функция посылает ASCII код для вывода на ЖКИ */

/********************************************************************/

void putchars(unsigned char c) {

 PORTB = c; /*вывести на порт PORTB код символа */

 PORTDLC = PORTDLC|0x08; /*установить RS в 1 для передачи данных */

 PORTDLC = PORTDLC|0x04; /*установить E в 1 */

 PORTDLC = 0x00; /* установить E и RS в 0 */

Поделиться:
Популярные книги

Вонгозеро

Вагнер Яна
1. Вонгозеро
Детективы:
триллеры
9.19
рейтинг книги
Вонгозеро

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Сборник коротких эротических рассказов

Коллектив авторов
Любовные романы:
эро литература
love action
7.25
рейтинг книги
Сборник коротких эротических рассказов

Архонт

Прокофьев Роман Юрьевич
5. Стеллар
Фантастика:
боевая фантастика
рпг
7.80
рейтинг книги
Архонт

Медиум

Злобин Михаил
1. О чем молчат могилы
Фантастика:
фэнтези
7.90
рейтинг книги
Медиум

Титан империи 8

Артемов Александр Александрович
8. Титан Империи
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Титан империи 8

Ведьма Вильхельма

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Ведьма Вильхельма

Волхв

Земляной Андрей Борисович
3. Волшебник
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волхв

Я еще не барон

Дрейк Сириус
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще не барон

Темный Патриарх Светлого Рода

Лисицин Евгений
1. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода

Пистоль и шпага

Дроздов Анатолий Федорович
2. Штуцер и тесак
Фантастика:
альтернативная история
8.28
рейтинг книги
Пистоль и шпага

Корпулентные достоинства, или Знатный переполох. Дилогия

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия

Ученик. Книга 4

Первухин Андрей Евгеньевич
4. Ученик
Фантастика:
фэнтези
5.67
рейтинг книги
Ученик. Книга 4

Часовое имя

Щерба Наталья Васильевна
4. Часодеи
Детские:
детская фантастика
9.56
рейтинг книги
Часовое имя