Реклама:

//Тогда возвращаем соответствующий код:

return 2;

} else {

*symbol=inportb(IN_REG);

return 0;

}

}

Для надежного приема байта отнюдь не следует безмерно увеличивать значение timeout (например, до одной недели), поскольку если всего лишь не подсоединен разъем RS-232C, выйти из программы окажется невозможно.

Напишем небольшую программу, которая будет проводить внутренний тест передачи-приема вводимых с клавиатуры символов. Параметром запуска будет служить номер последовательного порта 1 - СОМ1, 2-СОМ2. По умолчанию будем работать с портом СОМ1.

#include <stdio.h> #include <time.h> #include <stdlib.h> #include "serial.h"

#define ESC 27

main(int arge, char *argv[]) {

int tmpint, //Переменная для всяких нужд

symbol, //Символ для передачи

symbol2, //Символ для приема

error_code; //Код ошибки для функции in_sym()

if(argc == 1 ) { //Есди нет параметров BASE=0x3f8;

} else { //Если есть:

sscanf(argv[1], "%d", tmpint); if(tmpint == 1 ) { BASE=0x3f8; } else { BASE=0x2f8; } }

//Инициализируем порт init_ser();

//Переводим его в режим внутреннего теста: outportb(MODEM, LOOPBACK); //"Вечный" цикл: while(1){ symbol=getch(); if(symbol == ESC) exit(O); if(out_sym(symbol) != 0) { рппп"("\пОшибка передачи !"); exit(1); } else {

if(in_sym(&symbol2, 10, &error_code) != 0) { рпп1т(''\пОшибка приема !"); exit(2);

} else { //Т.е. нет ошибки приема рп'пхГ("\пПередано: %02Х Принято %02Х", symbol, symbol2); } }

} /* конец вечного цикла while */ } /* конец функции main */

4.6. Отладка контроллеров на базе однокристальной микроЭВМ

Как уже отмечалось в первой главе, особенность контроллеров, содержащих микроЭВМ, состоит в том, что, с одной стороны, их схемотехническое проектирование довольно просто (обычно используются стандартные схемы включения), а, с другой стороны, они требуют специальных средств для разработки и отладки программного обеспечения. Достоинством таких контроллеров является их высокая гибкость и универсальность, а недостатком (по сравнению с УС на жесткой логике) — малое быстродействие,

В процессе отладки рассматриваемых контроллеров можно выделить два этапа. Первый из них предполагает проверку функционирования аппаратной части. То есть в основном требуется проверить правильность разводки печатной платы и исправность использованных микросхем (схема соединения - стандартная). На втором этапе требуется проверить реальное функционирование всего контроллера в целом, включая и программное обеспечение однокристальной микроЭВМ. Здесь надо уже быть уверенным, что аппаратура работает нормально.

Следует отметить, что при отладке аппаратуры (на первом этапе) нельзя полностью проверить исправность самой однокристальной микроЭВМ, так как проконтролировать правильность выполнения всех команд и всех возможных последовательностей команд чисто физически невозможно (как и для любого микропроцессора). Но обычно этого и не требуется. Если выяснится, что данная микросхема не выполняет должным образом требуемые программы, ее можно просто заменить.


⇐ Предыдущая страница| |Следующая страница ⇒