Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Есть макрос в IAR и GCC для AVR работате

Отправлено misyachniy 29 ноября 2007 г. 15:11
В ответ на: Есть ли в иаре функция дёрганья лапкой типа PORTX.Y=0; ? PORTX|=(1<<y) работать не хочет :-/ отправлено Dikoy 29 ноября 2007 г. 14:42


* Based on code by Askold Volkov (http://www.inp.nsk.su/~volkov/home.html)
*----------------------------------------------------------------------
*
* $Name: $
*
* $Id: vbits.h,v 1.2 2004/09/11 08:15:58 real Exp $
*
* $Log: vbits.h,v $
* Revision 1.2 2004/09/11 08:15:58 real
* Indentation changed only.
*
* Revision 1.1.1.1 2004/09/05 09:56:51 real
* Initial release, based on code by Ascold Volkov.
*
*
*/


#ifndef H_VBITS_H
#define H_VBITS_H

/*----------------------------------------------------------------------
* BIT DEFINITION
*
* Bits must be defined in form
* #define BITNAME VAR, BITNO, LEVEL
* where
* VAR - SFR or variable where the bit placed
* BITNO - number of bit
* LEVEL - active level for this bit, H for high and L for low
*
* Example:
*
* #define MYINP PINB,2,L - input from bit 2 of port PINB, active Low
* #define MYOUT PORTD,5,H - output to bit 5 of PORTD, active High
*
* Use:
* bit_on(b) and bit_off(b) for setting output bit in active and passive state,
* bit_active(b) to check if input bit is in active state
*
*/


#define bit_setL(var,bit) (var)&=~(1<#define bit_setH(var,bit) (var)|=(1<#define bit_set_(var,bit,val) bit_set##val(var,bit)
#define bit_on(b) bit_set_(b)
#define bit_set bit_setH

#define bit_clrL(var,bit) (var)|=(1<#define bit_clrH(var,bit) (var)&=~(1<#define bit_clr_(var,bit,val) bit_clr##val(var,bit)
#define bit_off(b) bit_clr_(b)
#define bit_clr bit_clrH

#define bit_activeL(var,bit) (!((var)&(1<#define bit_activeH(var,bit) ((var)&(1<#define bit_active_(var,bit,val) bit_active##val(var,bit)
#define bit_active(b) bit_active_(b)
#define is_bit bit_activeH

#endif // ? H_VBITS_H




Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
к трём прибавьте 5:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru