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

Тут можно читать онлайн Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом «ДМК-пресс», год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом «ДМК-пресс»
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    5-9706-0034-2
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - описание и краткое содержание, автор Стивен Барретт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

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

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

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать онлайн бесплатно полную версию (весь текст целиком)

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать книгу онлайн бесплатно, автор Стивен Барретт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

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

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

void initialize_PA(void) {

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

TCTL1 = 0x00; //кодера - 3 оператора

OC7M = 0x00;

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

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

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

}

Объединим теперь эту программу с программой для RTI, чтобы подсчитать число импульсов кодера, появившихся за интервал прерывания. Получив, этот результат, преобразуем его в число об/мин и выведем полученное значение на ЖК индикатор.

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

//имя файла: motor.с

//автор: Steve Barrett and Daniel Pack

//дата создания: Mar 10, 2003

//последняя редакция: Mar 25, 2004

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

// включенные файлы *****************************************************

#include <912b32.h>

#pragma interrupt_handler RTI_isr //объявить подпрограмму прерывания по RTI

// функции-прототипы ****************************************************

void initialize_ports(void); //инициализировать порты

void RTI_isr(void); //подпрограмма обслуживания прерываний RTI

void initialize_RTI(void); // инициализировать систему RTI

void initialize_PA(void); //инициализировать аккумулятор импульсов (PA)

void initialize_LCD(void); // инициализировать ЖК индикатор

void display_count_LCD(unsigned int); //вывод текущего содержимого аккумулятора PA

// на ЖК индикатор

void putchars(unsigned char); //функция поддержки ЖКИ - вывести символ

void putcommands(unsigned char);// функция поддержки ЖКИ вывести команду

void delay_5ms(void); //задержка 5 мс

void delay_100us(void); //задержка 100 мкс

unsigned int old_count; //последнее значение, записанное в (PA)

int RTI_int_count =0; //используется для подсчета RTI прерываний

//главная программа****************************************************

void main(void) {

asm(" .area vectors(abs) \n" //inline assembly statement

".org 0xFFF0\n" //инициализация вектора прерываний RTI

".word _RTI_isr\n"

" .org 0xFFF8\n" // инициализация вектора reset для 68HC12 B32

" .word 0x8000, 0x8000, 0x8000, 0x8000\n"

" .text");

void initialize_ports(void); // инициализация портов

initialize_LCD(); //инициализация ЖКИ

initialize_RTI(); //инициализация модуля RTI

initialize_PA(); //инициализация аккумулятора импульсов

asm("cli"); //разрешение глобального маскирования

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

while(1) //продолжение цикла до следующего прерывания

{

;

}

}

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

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

//initialize_ports: определяет направление передачи портов

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

void initialize_ports(void) {

DDRP = 0xFF; // порт PORTP устанавливается как выходной для ШИМ

DDRT = 0x00; // PORTT устанавливается как входной, вывод PORTT[7]

// в качестве входа аккумулятора импульсов PA

DDRB = 0xFF; // PORTB устанавливается как выходной - порт

// данных для ЖКД

DDRDLC = 0xFF; // PORT DLC устанавливается как выходной - сигналы

// управления для ЖКИ

}

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

//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 */

delay_100us(); delay_100us();

}

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Барретт читать все книги автора по порядку

Стивен Барретт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С, автор: Стивен Барретт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x