В данной ситуации работать с битами сложнее, чем с байтами.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Михаил Е. 18 марта 2005 г. 18:29
В ответ на: Так же не полностью понял... отправлено dormouse 18 марта 2005 г. 18:01

Ну можно попробовать создать объект для управления ногой порта.




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