[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Rodik 26 октября 2001 г. 18:21
В ответ на: А не "покалечилась" ли ваша функция при отображении в html-формате ? (такое бывает). отправлено Беня 26 октября 2001 г. 18:02

#define _IN(reg,outreg) {unsigned char _r_=inportb(BaseAddr+(reg ## _ADDR));\
*((unsigned char *)&(outreg))=_r_;}

#define _OUT(reg,meen) {unsigned char _r_=*((unsigned char *)&(meen));\
outportb(BaseAddr+(reg ## _ADDR),_r_);}


struct BITS
{
unsigned char D0 :1;
unsigned char D1 :1;
unsigned char D2 :1;
unsigned char D3 :1;
unsigned char D4 :1;
unsigned char D5 :1;
unsigned char D6 :1;
unsigned char D7 :1;
};
struct ICR
{
unsigned char in_ready :1;
unsigned char out_ready :1;
unsigned char err :1;
unsigned char line :1;
unsigned char reserv :4;
};
struct IIDR // only read
{
unsigned char no_inter :1;
unsigned char inter_id :2;
unsigned char timeout_read :1;
unsigned char D4 :1;
unsigned char D5 :1;
unsigned char D6 :1;
unsigned char D7 :1;
};
struct FCR // only write
{
unsigned char fifo_on :1;
unsigned char recive_reset :1;
unsigned char sender_reset :1;
unsigned char dma_select :1;
unsigned char reserv :2;
unsigned char recive_len :2;
};
union LCR
{
struct {
unsigned char len :2;
unsigned char stop :1;
unsigned char parity :2;
unsigned char stuck_parity :1;
unsigned char break_on :1;
unsigned char en_speed :1;};
unsigned char byte;
};
union MCR
{
struct{
unsigned char dtr :1;
unsigned char rts :1;
unsigned char out1 :1;
unsigned char out2 :1;
unsigned char diag :1;
unsigned char reserv :3;};
unsigned char byte;
};
union LSR
{
struct{
unsigned char in_ready :1;
unsigned char overflow :1;
unsigned char parity :1;
unsigned char sinchro :1;
unsigned char break_detect :1;
unsigned char out_ready :1;
unsigned char shift_ready :1;
unsigned char timeout :1;};
unsigned char byte;
};
union MSR
{
struct{
unsigned char change_cts :1;
unsigned char change_dsr :1;
unsigned char change_ri :1;
unsigned char change_dcd :1;
unsigned char cts :1;
unsigned char dsr :1;
unsigned char ri :1;
unsigned char dcd :1;};
unsigned char byte;
};
typedef unsigned char EXP;

typedef unsigned char DATA;


const
unsigned DATA_ADDR =0; // wr Регистр данных
unsigned LOSPEED_ADDR =0; // w Младший байт делителя частоты
unsigned HISPEED_ADDR =1; // w Старший байт делителя частоты
unsigned ICR_ADDR =1; // w Регистр управления прерываниями
unsigned IIDR_ADDR =2; // r Регистр идентификации прерывания
unsigned FCR_ADDR =2; // w Регистр управления буферизацией
unsigned LCR_ADDR =3; // wr Управляющий регистр
unsigned MCR_ADDR =4; // w Регистр управления модемом
unsigned LSR_ADDR =5; // r Регистр состояния линии
unsigned MSR_ADDR =6; // r Регистр состояния модема
unsigned EXP_ADDR =7; // wr Регистр расширения

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru