Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
- Название:Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
- Автор:
- Жанр:
- Издательство:Издательский дом «ДМК-пресс»
- Год:2007
- Город:Москва
- ISBN:5-9706-0034-2
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С краткое содержание
В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.
Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.
Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.
Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
/*инициализирует новые поля для ввода автомобиля в список*/
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. ");
scanf("%s", search_make);
/*движение по списку */
for(temp_ptr-search_list; temp_ptr!=NULL; temp_ptr=temp_ptr->next) {
if (strcmp(temp_ptr->make, search_make) == 0) {
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);
/*считать показания одометра*/
}
}
}
/********************************************************************/
/********************************************************************/
После выполнения программы на дисплее появится следующее сообщение.
year: 1981
make: Chevy
model: Camaro
VIN: 12Z367
mileage: 37456
year: 1974
make: Ford
model: Mustang11
VIN: 3L265ST
mileage: 122456
year: 1997
make: Saturn
model: SL1
VIN: 234TH67
mileage: 140512
year: 1981
make: Chevy
model: Camaro
VIN: 12Z367
mileage: 37456
year: 1974
make:Ford
model: Mustang11
VIN: 3L265ST
mileage: 122456
year: 2002
make: Hummer
model: H2
VIN: 73H2L7
mileage: 13
year: 1997
make: Saturn
model: SL1
VIN: 234TH67
mileage: 140512
Удалены следующие автомобили из списка для продаж.
Введено поле make для удаления из списка – Hummer
Интервал:
Закладка: