Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 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.67
рейтинг книги
Волхв
3. Волшебник
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Я еще не барон
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода
1. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пистоль и шпага
2. Штуцер и тесак
Фантастика:
альтернативная история
8.28
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Ученик. Книга 4
4. Ученик
Фантастика:
фэнтези
5.67
рейтинг книги
Часовое имя
4. Часодеи
Детские:
детская фантастика
9.56