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

/* Система управления роботом, движущимся в лабиринте: это система  */

/* состоящих из излучателя и приемника, чтобы определять свое положение*/

/* относительно стенок лабиринта.                                   */

/* опорного напряжения, то стенка находится в непосредственной близости*/

/* от робота.Основываясь на информации, получаемой от пяти датчиков,*/

/* робот может определять, какое направление дальнейшего движения   */

/* избрать, чтобы избежать столкновения со стенками лабиринта.      */

/* Датчик Холла позволяет роботу обнаружить магниты или "скрытые мины",*/

/* установленные под полом лабиринта. Робот имеет также ЖК дисплей  */

/* для сообщения информации пользователю. Программа использует метод*/

/* полинга для считывания результатов АЦП.Сигнал модуля ШИМ         */

/* управляет драйвером двигателей колес робота.                     */

/*Автор: Томас Шеи. Дата создания: 18 октября 2002                  */

/*Последняя редакция: 4 декабря 2002                                */

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

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

#include <912b32.h>

#include


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

#define opto_threshold 0x50 /* порог оптического датчика */

#define hes_threshold 0x80 /* порог датчика Холла */

#define forward 0

#define half_left 1

#define half_right 2

#define left_turn 3

#define right_turn 4

#define back_up 5


/*глобальные переменные*/

unsigned int i=0,j=0; /*переменные для программной задержки */

unsigned char sens[6]={0, 0, 0, 0, 0, 0};/*массив результатов АЦП */


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

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

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

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

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