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

Здесь есть возможность читать онлайн «Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2007, ISBN: 2007, Издательство: Издательский дом «ДМК-пресс», Жанр: Компьютерное железо, Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

/* для 8 каналов */

while((ATDSTAT & 0x8000) == 0) { /* проверить окончание преобразования по*/

/*состоянию флага SCF */

;

}

/* сохранить результаты ATD-преобразования*/

/* в глобальном массиве char*/

sens[0] = ADR7H; /*крайний левый датчик */

sens[1] = ADR6H; /*средний левый датчик */

sens[2] = ADR5H; /*центральный датчик */

sens[3] = ADR4H; /*средний правый датчик */

sens[4] = ADR3H; /*крайний правый датчик */

sens[5] = ADR2H; /*Датчик Холла*/

/*анализ информации датчиков для решения о повороте. Примечание: пороги для*/

/*датчика Холла(hes_threshold) и для ИК-датчиков (opto_threshold)являются*/

/* глобальными переменными и определены экспериментально*/

if (sens[5] < hes_threshold) { /*сигнал с датчика Холла, объезд*/

pwm_motors(back_up); /* робот дает задний ход*/

/*действия, следующие после того */

/* как робот отъехал назад */

if(sens[0] > opto_threshold) pwm_motors(right_turn);

else pwm_motors(left_turn);

for(i=0; i<0xFFFF; i++) { /*задержка перед вращением двигателя */

for(j=0; j<15; j++){

;

}

}

}

/*если обнаружен тупик - задний ход*/

else if((sens[2]>opto_threshold) && (sens[0]>opto_threshold) && (sens[4]>opto_threshold)) {

pwm_motors(back_up);

}

/*если стенки спереди и слева, */

/*поворот робота направо */

else if((sens[0]>opto_threshold) && (sens[2]>opto_threshold)) {

pwm_motors(right_turn);

}

/*если стенки спереди и справа, */

/*поворот робота налево */

else if((sens[2]>opto_threshold) && (sens[4]>opto_threshold)) {

pwm_motors(left_turn);

}

/*если стенка перед средним правым */

/* датчиком, то полуповорот направо */

else if (sens[1] > opto_threshold) {

pwm_motors(half_right);

}

/*если стенка перед средним левым */

/* датчиком, то полуповорот налево */

else if (sens[3]>opto_threshold) {

pwm_motors(half_left);

}

/*если сигналов от датчиков нет, продолжить движение вперед*/

else {

pwm_motors(forward);

}

}

Если мы хотим подразделить этот код на три части обрабатываемые ОСРВ без прерывания, мы можем вставить точки прерывания после последовательности инициализации ATD и после последовательности записи данных с ATD. Это позволит функции без проблем прерывать и восстанавливать управление процессором. Чтобы выполнять эти изменения, мы должны ввести переменную, которую мы назовем code_section. Эта переменная позволит нам проследить, какая из трех частей кода должна быть выполнена при очередной активности задачи.

int process_turn(int code_section) {

switch(code_section) {

case 0:

/*Инициализация системы ATD */

ATDCTL2 = 0x80; /*включение ATD */

ATDCTL3 = 0x00; /*игнорировать доступ при отладке системы */

ATDCTL4 = 0x7F; /*Снижение частоты таймера P до 125 кГц */

/*выборка, время преобразования = 32 ATD цикла */

/* 1 выборка за каждые 256 мкс */

for (i=0; i<67; i++) {

/* ожидание 100 мкс при 8 МГц ECLK*/

;

}

code_section = 1; /*update code_section variable */

break;

case 1:

/*Инициализация ATD-преобразования */

ATDCTL5 = 0x50; /*Начать многоканальное ATD-преобразование*/

/* для 8 каналов */

while ((ATDSTAT & 0x8000) == 0) {

/* проверить окончание преобразования по*/

/*состоянию флага SCF */

;

}

/* сохранить результаты ATD-преобразования*/

/* в глобальном массиве char */

sens[0] = ADR7H; /*крайний левый датчик */

sens[1] = ADR6H; /*средний левый датчик */

sens[2] = ADR5H; /*центральный датчик */

sens[3] = ADR4H; /*средний правый датчик */

sens[4] = ADR3H; /*крайний правый датчик */

sens[5] = ADR2H; /*Датчик Холла */

code_section = 2; /*update code_section variable */

break;

case 2:

/*анализ информации датчиков для решения о повороте. Примечание: пороги для*/

/*датчика Холла(hes_threshold) и для ИК-датчиков (opto_threshold)являются*/

/* глобальными переменными и определены экспериментально*/

if (sens[5] < hes_threshold) { /*сигнал с датчика Холла, объезд*/

pwm_motors(back_up); /* робот дает задний ход*/

/*действия, следующие после того */

/* как робот отъехал назад */

if (sens[0] > opto_threshold) pwm_motors(right_turn);

else pwm_motors(left_turn);

for (i=0; i<0xFFFF; i++) { /*задержка перед вращением двигателя */

for(j=0; j<15; j++) {

;

}

}

}

/*если обнаружен тупик - задний ход*/

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

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Ліза Фельдман Барретт - 7 1/2 уроків про мозок
Ліза Фельдман Барретт
Отзывы о книге «Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С»

Обсуждение, отзывы о книге «Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x