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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

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

void init_adc(void); /*инициализация АЦП */

void read_adc(void); /*считывание значений АЦП */

void decision(void); /*передача решения о повороте, основанного на */

/*данных АЦП* /

void init_pwm(void); /*инициализация ШИМ */

void pwm_motors(const char a); */активация ШИМ для пересылки */

void lcd_init(void); /* инициализация дисплея */

int putchar(char c); /*вывод символа на дисплей */

int putcommand(char с); /*вывод команды на дисплей */

void delay_25(void); /*подпрограмма задержки на 2,5 с */

void lcd_print(char *string); /*вывод строки на ЖК дисплей */

void main() {

asm(".area vectors(abs)\n" /*инициализация вектора сброса МК */

" org 0xFFF8\n"

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

".text");

lcd_init(); /*инициализация ЖК дисплея */

lcd_print("LCD initialized");

void delay_25(void); /* задержки на 2,5 с */

init_adc(); /*инициализация АЦП */

lcd_print("ADC initialized");

void delay_25(void); /* задержки на 2,5 с */

init_pwm(); /*инициализация ШИМ */

lcd_print("PWM initialized");

void delay_25(void); /* задержки на 2,5 с */

while(1) / *непрерывный цикл */

{

read_adc(); /* считать текущее значение из АЦП */

decision(); /* принять решение о направлении движения */

}

} /*конец программы main*/

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

/*initialize_adc: инициализация АЦП контроллера 68HC12 */

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

void init_adc() {

ATDCTL2 = 0x80; /*Установить бит ADPU для подачи питания на АЦП */

ATDCTL3 = 0x00;

ATDCTL4 = 0x7F; /* частоту P_CLK установить на 125 кГц */

/* время преобразования: 32 ATD CLK, */

/*1 считывание каждые 256 мкс /*

for(i=0; i<67; i++) /*задержка 100 мкс при 8 МГц E_CLK */

{

;

}

}

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

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

/*read_adc: считывание результатов из АЦП */

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

void read_adc() {

ATDCTL5 = 0x50; /*Установить АЦП на режим многоканального,*/

/* преобразования 8 каналов */

while((ATDSTAT & 0x8000) == 0)/* проверка бита SCF для окончания */

/*преобразования */

{

;

}

/* сохранения результата в глобальном массиве */

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

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

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

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

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

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

}

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

/*decision(): решение о повороте основано на информации, полученной от*/

/* пяти датчиков. Порог датчика Холла (hes_threshold) и порог */

/* оптического датчика (opto_threshold) определяются экспериментально.*/

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

void decision() {

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);

}

}

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

/*init_pwm(): инициализация ШИМ контроллера 68HС12 */

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

void init_pwm() {

PWTST= 0x00;

PWCTL= 0x00; /*Режим фронтовой ШИМ */

WCLK= 0x3F; /*Каналы без каскадного соединения, E_CLK/128 */

PWPOL= 0x0F; /*set pins high then low transition */

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

Интервал:

Закладка:

Сделать

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

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


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

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

x