|
Ну можно попробовать создать объект для управления ногой порта.
class Pin
{
public:
Pin(char,char);
void operator = (char); // установка/сброс бита
operator char(); // опрос бита
private:
char port; // адрес порта
char bit; // номер бита
};
//************** Конструктор ************************
Pin::Pin(char x, char y)
{
port = x;
bit = y;
}
//***************************************************
void Pin::operator = (char x)
{
char data;
data = *((char*)port); // берем содержимое порта
if(x) data |= 1<<bit; // устанавливаем бит
else data &= ~(1<<bit); // или сбрасываем
*((char*)port) = data; // и обратно в порт
}
//***************************************************
Pin::operator char()
{
char data;
data = *((char*)port); // берем содержимое порта
if(data&(1<<bit)) return 0xff;
else return 0;
}
E-mail: info@telesys.ru