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

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С"
Описание и краткое содержание "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С" читать бесплатно онлайн.
В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.
Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.
Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.
/*помещают в файл заголовка (header file). Они приведены здесь, */
/* чтобы иллюстрировать последовательность построения программы. */
/*определение структуры "автомобиль"*/
struct car {
int year; /* год производства */
char make[10]; /*BWM, Hummer, Saturn */
char model[12]; /*купе, обратимый, SUV, пикап */
char VTN[10]; /*комбинация цифр, букв */
float mileage; /*показания спидометра: от 0 до 500,000+*/
struct car *next; /*указатель на следующий автомобиль в списке */
};
/*определение указателя на автомобиль */
typedef struct car ELEMENT;
typedef ELEMENT *car_temp_ptr;
/*функции прототипов*/
void initialize_link_list(void);
void print_link_list(car_temp_ptr);
void insert_link_list(car_temp_ptr);
void delete_link_list(car_temp_ptr);
void search_link_list(car_temp_ptr);
/*переменные*/
/ " Создают списки, чтобы следить за состоянием автомобильного сервиса*/
car_temp_ptr in_stock_list; /* автомобили в продаже */
car_temp_ptr repair_list; /* автомобили в ремонт - не подлежат продаже*/
car_temp_ptr paint_shop_list;/*автомобили в покраске - не подлежат продаже*/
car_temp_ptr sold_list; /*проданные автомобили -- не подлежат продаже*/
car_temp_ptr new_car_entry; /*новый автомобиль для введения в список*/
int TRUE=1, FALSE=0; /*логические флаги */
void main(void) {
/*заполняет пустой список переменными NULL */
in_stock_list = NULL; /* автомобили в продаже */
repair_list = NULL; /* автомобили в ремонте - не подлежат продаже */
paint_shop_list = NULL; /* автомобили в покраске - не подлежат продаже*/
sold_list = NULL; /*проданные автомобили -- не подлежат продаже * /
new_car_entry = NULL;
initialize_link_list(); /*составление списка для продажи */
print_link_list(in_stock_list); /*print the list */
insert_link_list(in_stock_list); /*вставить новый автомобиль в список*/
print_link_list(in_stock_list); /*распечатать список */
delete_link_list(in_stock_list); /*удалить автомобиль из списка */
print_link_list(in_stock_list); /*распечатать список */
search_link_list(in_stock_list); /*поиск определенного пункта в списке */
}
/********************************************************************/
/*void initialize_link_list (car_temp_ptr): инициализирует автомобиль */
/* для списка продаж используя список.Отметим, что этот список */
/* с указателями был объявлен как глобальная переменная. */
/*********************************************************************
void initialize_link_list(void) {
car_temp_ptr new_car_entry1, new_car_entry2;
/*создает вход в список автомобилей */
new_car_entry = (car_temp_ptr)malloc(sizeof(ELEMENT));
/*инициализирует новые поля для ввода автомобиля в список*/
new_car_entry->year = 1981; /*год выпуска */
strcpy(new_car_entry->make, "Chevy"); /*BWM, Hummer, Saturn */
strcpy(new_car_entry->model, "Camaro"); /*купе, обратимый, SUV, пикап*/
strcpy(new_car_entry->VIN, "12Z3 67"); /*комбинация цифр и букв */
new_car_entry->mileage = 37456; /*показания одометра: от 0 до 500 000+*/
new_car_entry->next = NULL; /*указатель на следующий автомобиль в списке*/
in_stock_list = new_car_entry;
new_car_entry1 = (car_temp_ptr) malloc(sizeof(ELEMENT));
/*инициализирует новые поля для ввода автомобиля в список*/
new_car_entry1->year = 1974; /*год выпуска*/
strcpy(new_car_entry1->make,"Ford"); /*BWM, Hummer, Saturn */
strcpy(new_car_entry1->model,"Mustang11")/*купе, обратимый, SUV, пикап*/
strcpy(new_car_entry1->VIN, "3L265ST" ) ; /*комбинация цифр и букв */
new_car_entry1->mileage = 122456; /*показания одометра: от 0 до 500 000+ */
new_car_entry1->next = NULL; /*указатель на следующий автомобиль в списке */
new_car_entry2 = (car_temp_ptr)malloc(sizeof(ELEMENT));
/*инициализирует новые поля для ввода автомобиля в список*/
new_car_entry2->year = 1997; /*год выпуска*/
strcpy(new_car_entry2->make, "Saturn"); /*BWM, Hummer, Saturn */
strcpy(new_car_entry2->model,"SL1"); /*купе, обратимый, SUV, пикап */
strcpy(new_car_entry2->VIN, "234TH67"); /*комбинация цифр и букв */
new_car_entry2->mileage = 140512;/*показания одометра: от 0 до 500 000+ */
new_car_entry2->next = NULL; /*указатель на следующий автомобиль в списке*/
new_car_entry1->next = new_car_entry2;
}
/********************************************************************/
/*print_link_list: печатает поля выделенного списка с указателями */
/********************************************************************/
void print_link_list(car_temp_ptr print_list) {
car_temp_ptr temp_ptr; /*объявляет текущий указатель */
printf("\nCars available in stock for sale:");
/*продвижение по списку */
for (temp_ptr=print_list; temp_ptr != NULL; temp_ptr-temp_ptr->next) {
printf("\n\nyear: %4d, temp_ptr->year); /*год выпуска*/
printf("\nmake: %s", temp_ptr->make); /*изготовитель*/
printf("\nmodel: %s", temp_ptr->model); /*модель*/
printf("\nVIN: %S", temp_ptr->VIN); /*номер*/
printf("\nMileage: %6.0f", temp_ptr->mileage); /*показания одометра*/
}
}
/********************************************************************/
/*insert_link_list (in_stock_list) - вставляют новый автомобиль в */
/* отмеченный список в алфавитном порядке */
/********************************************************************/
void insert_link_list(car_temp_ptr in_stock_list) {
car_temp_ptr new_car_entry, list, ptr;
int place_found;
list = in_stock_list;
/*создает ввод автомобиля */
new_car_entry = (car_temp_ptr) malloc(sizeof(ELEMENT));
/*инициализирует новые поля для ввода автомобиля в список */
new_car_entry->year = 2002; /*год выпуска */
strcpy(new_car_entry->make,"Hummer"); /*BWM, Hummer, Saturn*/
strcpy(new_car_entry->model, "H2"); /*купе, обратимый, SUV, пикап */
strcpy(new_car_entry->VTIM, "73H2L7");/*комбинация цифр и букв*/
new_car_entry->mileage = 13; /*показания одометра: от 0 до 500 000+ */
new_car_entry->next = NULL; /*указатель на следующий автомобиль в списке */
if (list==NULL) { /*вставка в пустой список */
list=new_car_entry;
} else {
/* вставка в первый элемент списка */
if (strcmp(new_car_entry->make, list->make) < 1) {
new_car_entry->next=list;
list = new_car_entry;
} else /*вставка в непустой список */
{
ptr = list; /*определение позиции вставки */
place_found = FALSE;
while((ptr->next != NULL) && (!place_found)) {
if (strcmp (new_car_entry->make, ptr->next->make) > = 1) /*сравнение */
{
ptr=ptr->next; /*продвижение по списку */
} else /*вставка после указателя */
{
place_found = TRUE;
}
}/*конец цикла while*/
/*переадресует указатель, чтобы */
/*закончить ввод в список */
new_car_entry->next = ptr->next;
ptr->next - new_car_entry;
}/*конец else*/
}/*конец else*/
}/*конец insert_link_list*/
/********************************************************************/
/*delete_link_list (car_temp_ptr): */удаление отмеченных элементов */
/*из списка */
/********************************************************************/
void delete_link_list(car_temp_ptr in_stock_list) {
car_temp_ptr current,backup,temp; /*текущий указатель списка */
char delete_make[10];
/*определить поле make для удаления */
printf("\n\nDelete car from for sale list.");
printf("\nEnter make of car for deletion from list.");
scanf("%s", delete_make);
/*инициировать указатели для поиска */
current = in_stock_list;
backup=NULL;
/*поиск записи, содержащих заданное значение make */
while (strcmp(current->make, delete_make) !=0) {
backup = current;
current = current->next;
}
/*Был удален автомобиль из первого элемента? */
if (backup == NULL){ /*удалить автомобиль из первого элемента */
in_stock_list = in_stock_list->next;
} else { /*удалить элемент из списка */
backup->next = current -> next;
}
free(current); /*перераспределить динамическую память*/
}
/********************************************************************/
/********************************************************************/
/*void search_link_list (car_temp_ptr) - найти запись с определенным */
/* значением поля make. Распечатать автомобили этого изготовителя. */
/********************************************************************/
void search_link_list(car_temp_ptr search_list) {
char search_make[10];
car_temp_ptr temp_ptr; /*объявить текущий указатель */
/*определить изготовителя для поиска */
printf("\n\nSearch for car in stock.");
printf("\nEnter make of car to search for in list. ");
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С"
Книги похожие на "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С"
Отзывы читателей о книге "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С", комментарии и мнения людей о произведении.