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

 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 мс чтобы позволить двигателю*/

 {                      /* отреагировать*/

 }

 switch(a) { /*определение вида поворота */

 case 0: /* движение вперед */

  PWDTY0 = 200; /*регистры коэффициента заполнения ШИМ */

  PWDTY1 = 250;

  PWDTY2 = 250;

  PWDTY3 = 200;

  lcd_print("Forward\n");

  break;

 case 1: /*полуповорот налево */

  PWDTY0 = 0; /*регистры коэффициента заполнения ШИМ */

  PWDTY1 = 250;

  PWDTY2 = 250;

  PWDTY3 = 125;

  lcd_print("Half Left\n");

  break;

 case 2: /*полуповорот направо*/

  PWDTY0 = 125; /*регистры коэффициента заполнения ШИМ */

  PWDTY1 = 250;

  PWDTY2 = 250;

  PWDTY3 = 0;

  lcd_print("Half Right\n");

  break;

 case 3: /*поворот налево*/

  PWDTY0 = 125; /*регистры коэффициента заполнения ШИМ */

  PWDTY1 = 250;

  PWDTY2 = 0;

  PWDTY3 = 125;

  lcd_print("Left Turn\n");

  break;

 case 4: /*поворот направо*/

  PWDTY0 = 125; /*регистры коэффициента заполнения ШИМ */

  PWDTY1 = 0;

  PWDTY2 = 250;

  PWDTY3 = 125;

  lcd_print("Right Turn\n");

  break;

 case 5: /*задний ход*/

  PWDTY0 = 125; /*регистры коэффициента заполнения ШИМ */

  PWDTY1 = 0;

  PWDTY2 = 0;

  PWDTY3 = 125;

Перейти на страницу:

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT