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

Тут можно читать онлайн Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом «ДМК-пресс», год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом «ДМК-пресс»
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    5-9706-0034-2
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.

Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.

Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать онлайн бесплатно полную версию (весь текст целиком)

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать книгу онлайн бесплатно, автор Стивен Барретт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

display_board(board_array_multi, row, col, direction);

while(win == 0){ //цикл повторяется до успешного окончания игры

while (select == 0) {

//если была нажата кнопка x, то задается направ-

// ление движения ряд и колонка выделенной фишки

get_move(&direction, &row, &col, &select);

Reset_cursor(); // установить курсор в верхнее положение

if (select == 0)

display_board(board_array_multi, row, col, direction);

}

//проверить корректность движения, повторить его, если

// оно некорректно, или вывести сообщение об ошибке

try_move(direction, row-1, col-1, board_array_multi);

select = 0;

convert_multi_single(board_array_multi, board_array_single);

win = check_win(board_array_single);

Clearscreen();

// показать текущее состояние игры

display_board(board_array_multi, row, col, direction);

}

display_win(); // вывести сообщение об успешном окончании игры

}

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

// display_intro: DISPLAY INTRO MESSAGE

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

void display_intro {

newline();

LCD_output(" WELCOME ");

LCD_output(" TO ");

LCD_output(" SLIDING PUZZLE ");

new_line();

pause();

LCD_output("The object of ");

LCD_output("this game is to ");

LCD_output("move each #'ed ");

LCD_output("puzzle piece so ");

LCD_output("that you end up ");

LCD_output("in the order ");

LCD_output("seen below. The ");

LCD_output("star shows the ");

LCD_output("current piece ");

LCD_output("selected. You ");

LCD_output("can choose a ");

LCD_output("different piece ");

LCD_output(" by using the ");

LCD_output(" arrow buttons ");

newline();

pause();

LCD_output("and select the ");

LCD_output("piece you want ");

LCD_output("to move by ");

LCD_output("pressing the X ");

// кнопка "Выбор"

LCD_output("button. Choose ");

LCD_output("the direction to ");

LCD_output("move that piece ");

LCD_output("with the arrows. ");

new_line();

LCD_output("WINDING ");

LCD_output("CONFIGURATION: ");

newline();

}

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

// display_win: ВЫВОД СООБЩЕНИЯ О ПОБЕДЕ

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

void display_win() {

LCD_output(" YOU WIN!!! ");

LCD_output("CONGRATULATIONS ");

}

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

// get_move: ДВИЖЕНИЕ ФИШКИ: задается позиция фишки, выбранной игро-

// ком и направление ее движения

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

void get_move(int* direction, int *row, int *col, int* select) {

int n = 0;

int button = 0;

unsigned char temp = ZERO;

newline();

LCD_output("Choose move or ");

LCD_output("select piece: ");

while (button == 0) {

// цикл выполняется, пока нажата кнопка

temp = PORTS;

temp = temp & 0x7С

switch (temp) //какая кнопка нажата?

{

case L_BUTTON:

button = LEFT;

break;

case R_BUTTON:

button = RIGHT;

break;

case U_BUTTON:

button = UP;

break;

case D_BUTTON:

button = DOWN;

break;

case S_BUTTON:

button = SELECT;

break;

} // конец цикла switch

}//конец цикла while

n = 0;

switch (button) //реакция на нажатие кнопки

{

case UP:

if (*row > 1) *row -= 1;

else display_error(UP);

break;

case DOWN:

if (*row < SIZE) *row += 1;

else display_error(DOWN);

break;

case LEFT:

if (*col > 1) *col -= 1;

else display_error(LEFT);

break;

case RIGHT:

if (*col < SIZE) *col += 1

else display_error(RIGHT);

break;

case SELECT:

*select = 1;

LCD_output("Pick a direction");

*direction = 0;

while (*direction == 0) {

temp = PORTS;

temp = temp & 0x7C;

switch (temp) {

case L_BUTTON:

*direction = LEFT;

break;

case R_BUTTON:

*direction = RIGHT;

break;

case U_BUTTON:

*direction = UP;

break;

case D_BUTTON:

*direction = DOWN;

break;

}

}

break;

}

}

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

// randomize_board: ВЫБОР СЛУЧАЙНОГО ИСХОДНОГО СОСТОЯНИЯ ФИШЕК

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

void randomize_board(int board_array[]) {

int temp = 0;

int i;

unsigned char temp2 = 0x00;

for (i=0; i

temp2 = TCNTL;

temp = mod(temp2,15); //случайное значение using the TCNT counter

swap2(i,temp, board_array);

}

}

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

// MOD: МАТЕМАТИЧЕСКАЯ ФУНКЦИЯ

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

unsigned char mod(unsigned char num, int modulus) {

while ((num - modulus) > 0) num = num - modulus;

return num;

}

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

// display_board2: Выводит табло, как одну колонку значений

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

void display_board2(int board_array[ARRAY_MAX+1]) {

int = 0;

int n;

for (i=0; i

n = board_array[i];

int2char(n);

}

LCD_output("\n");

}

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

// display_board: Выводит табло как массив 4×4

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

void display_board(int A[SIZE][SIZE], int row, int col, int direction) {

#pragma abs_address 0x0800

int i;

int j;

int num;

#pragma end_abs_address

newline();

LCD_output("| Column ");

LCD_output("| 1 2 3 4 ");

LCD_output("-------------------");

for (i=0; i < SIZE; i++) {

j=0;

switch(i) {

case 0:

LCD_output("R 1 |");

break;

case 1:

LCD_output("o 2 |");

break;

case 2:

LCD_output("w 3 |");

break;

case 3:

LCD_output(" 4 |");

break;

}

for (j=0; j < SIZE; j++) {

num = A[i][j];

if (num == 0) LCD_output(" ");

else int2char(num);

if ((i+1 == row) && (j+1) == col))

LCD_output("*");

else LCD_output(" ");

}

}

newline();

LCD_output("You are at (R,C)");

LCD_output(" (");

int2char(row);

LCD_output(",");

int2char(col);

LCD_output(") =");

int2char(A[row-1];

LCD_output(" ");

newline();

}

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

// INT2CHAR: задается как integer и выводится на ЖКД в виде

// двух символов

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

void int2char(int i) {

if (i > 9) {

LCD_output("I");

i -= 10;

} else {

LCD_output('; ");

}

switch(i) {

case 0:

LCD_output("0");

break;

case 1:

LCD_output("1");

break;

case 2:

LCD_output("2");

break;

case 3:

LCD_output("3");

break;

case 4:

LCD_output("4");

break;

case 5:

LCD_output("5");

break;

case 6:

LCD_output("6");

break;

case 7:

LCD_output("7");

break;

case 8:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Барретт читать все книги автора по порядку

Стивен Барретт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С, автор: Стивен Барретт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x