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

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

Жанры

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

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

Шрифт:

}

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

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

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

 DDRP = 0xFF; /*Порт PORT T на вывод */

 PWEN = 0x0F; /*Активизировать выход ШИМ */

 PWPER0 = 250; /*Установить частоту ШИМ 250 Гц */

 PWPER1 = 250;

 PWPER2 = 250;

 PWPER3 = 250;

 PWDTY0 = 0; /*начальная установка ШИМ на отсутствие движения*/

 PWDTY1 = 0;

 PWDTY2 = 0;

 PWDTY3 = 0;

}

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

/*pwm_motors: /*выполнение определенного поворота */

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

void pwm_motors(const char a) {

 for (i = 0;i<2000;i++) /*задержка на 3 мс чтобы позволить двигателю*/

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

Дракон с подарком

Суббота Светлана
3. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
6.62
рейтинг книги
Дракон с подарком

Бывшие. Война в академии магии

Берг Александра
2. Измены
Любовные романы:
любовно-фантастические романы
7.00
рейтинг книги
Бывшие. Война в академии магии

Мастер клинков. Начало пути

Распопов Дмитрий Викторович
1. Мастер клинков
Фантастика:
фэнтези
9.16
рейтинг книги
Мастер клинков. Начало пути

Имя нам Легион. Том 8

Дорничев Дмитрий
8. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 8

Измена. Право на счастье

Вирго Софи
1. Чем закончится измена
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Право на счастье

Начальник милиции 2

Дамиров Рафаэль
2. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции 2

Камень. Книга 4

Минин Станислав
4. Камень
Фантастика:
боевая фантастика
7.77
рейтинг книги
Камень. Книга 4

Измена. Мой заклятый дракон

Марлин Юлия
Любовные романы:
любовно-фантастические романы
7.50
рейтинг книги
Измена. Мой заклятый дракон

Предатель. Цена ошибки

Кучер Ая
Измена
Любовные романы:
современные любовные романы
5.75
рейтинг книги
Предатель. Цена ошибки

Звездная Кровь. Изгой

Елисеев Алексей Станиславович
1. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой

Рождение победителя

Каменистый Артем
3. Девятый
Фантастика:
фэнтези
альтернативная история
9.07
рейтинг книги
Рождение победителя

Барону наплевать на правила

Ренгач Евгений
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Барону наплевать на правила

Камень. Книга шестая

Минин Станислав
6. Камень
Фантастика:
боевая фантастика
7.64
рейтинг книги
Камень. Книга шестая

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь