[an error occurred while processing this directive]
Это для Фуджицу, для другого камня аналогично (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
миниатюрный аудио-видеорекордер mAVR

Отправлено Алексей Мусин 09 июля 2002 г. 07:30
В ответ на: Си и распиновка двунаправленных портов на микропроцессоре. (+) отправлено abivan 08 июля 2002 г. 18:37


/* Порты и сигналы для работы с I2C шиной */
#define I2C_SCK 3, 4, H
#define I2C_SDA 3, 5, H

/* Токовая петля */
#define CL_CUR_MAX 6, 7, H /* Установка тока передатчика */
#define RS232_IS 8, 4, L /* Признак подключения по RS-232C */
#define CL_IS 8, 5, L /* Признак подключения по ТП */

/*
*********************************************************************************************************
* GLOBAL MACROS
*********************************************************************************************************
*/


/* Макросы установки/сброса/инверсии портов */
#define _setL(port,bit,val) PDR##port##_P##port##bit##=0
#define _setH(port,bit,val) PDR##port##_P##port##bit##=1
#define _set(port,bit,val) _set##val(port,bit,val)
#define PIN_ON(x) _set(x)
#define __setH(x) _setH(x)
#define PIN_SET __setH

#define _clrL(port,bit,val) PDR##port##_P##port##bit##=1
#define _clrH(port,bit,val) PDR##port##_P##port##bit##=0
#define _clr(port,bit,val) _clr##val(port,bit,val)
#define PIN_OFF(x) _clr(x)
#define __clrH(x) _clrH(x)
#define PIN_CLR __clrH

#define _bitL(port,bit) (!(PDR##port##_P##port##bit))
#define _bitH(port,bit) (PDR##port##_P##port##bit)
#define _bit(port,bit,val) _bit##val(port,bit)
#define _latch(port,bit,val) _bit##val(port,bit)
#define PIN_SIGNAL(x) _bit(x)
#define PIN_LATCH(x) _latch(x)
#define __bitH(x) _bitH(x)
#define PIN_BIT __bitH

#define _cpl(port,bit,val) PDR##port##_P##port##bit##=~(PDR##port##_P##port##bit##)
#define PIN_CPL(x) _cpl (x)
#define __cpl(x) _cpl(x)
#define CPL __cpl
/*
#define _bitnum(port,bit,val) bit
#define BITNUM(x) _bitnum(x)
*/

#define _setO(line) line=1
#define _setI(line) line=0
#define _setPullUp(line) line=1
#define _setHiZ(line) line=0
#define _mode(port,bit,val,mode) _set##mode(DDR##port##_D##port##bit)
#define _dmode(port,bit,val,dmode) _set##dmode(PUCR##port##_PU##port##bit)
/* mode = O or I */
#define PIN_DIRECT(x,mode) _mode(x,mode)
/* dmode = PullUp or HiZ */
#define PIN_DRIVER(x,dmode) _dmode(x,dmode)


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

Ответы



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

E-mail: info@telesys.ru