Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SFR_B(PINA, 0x00), обращение к биту 
:(
    Опции темы
CROC
Дата 3.2.2007, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 16.10.2005
Где: Perm

Репутация: нет
Всего: нет



Код

/*H**************************************************************************
* $RCSfile: mcu.h,v $
*****************************************************************************/

#ifndef MCU_H
#define MCU_H

/*==========================*/
/* Predefined SFR Addresses */
/*==========================*/

/******************************************************************************/
#if defined(__ICCAVR__) || defined(__IAR_SYSTEMS_ASM__)
/******************************************************************************/
SFR_B(PINA,   0x00) /* Input Pins, Port A */
SFR_B(DDRA,   0x01) /* Data Direction Register, Port A */
SFR_B(PORTA,  0x02) /* Data Register, Port A */

.......

#define PINA    (*(volatile unsigned char *)0x20)  /* Input Pins, Port A */
#define DDRA    (*(volatile unsigned char *)0x21) /* Data Direction Register, Port A */
#define PORTA   (*(volatile unsigned char *)0x22) /* Data Register, Port A */

..........

/*==========================*/
/* Bit Position Definitions */
/*==========================*/
/* PINA : Input Pins, Port A */
#define    PINA7    7
#define    PINA6    6
#define    PINA5    5
#define    PINA4    4
#define    PINA3    3
#define    PINA2    2
#define    PINA1    1
#define    PINA0    0

/* DDRA : Data Direction Register, Port A */
#define    DDA7     7
#define    DDA6     6
#define    DDA5     5
#define    DDA4     4
#define    DDA3     3
#define    DDA2     2
#define    DDA1     1
#define    DDA0     0

/* PORTA : Data Register, Port A */
#define    PORTA7   7
#define    PORTA6   6
#define    PORTA5   5
#define    PORTA4   4
#define    PORTA3   3
#define    PORTA2   2
#define    PORTA1   1
#define    PORTA0   0

МК:  AT90usb1287

как же мне после такого обратиться к биту из порта?
PM MAIL ICQ   Вверх
Ivan.
Дата 20.2.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



Код

#define Bit(Port, Bit) (((Port) >> (Bit)) & 1)
#define IsBit(Port, Bit) ((Port) & (1 << (Bit)))
#define Set(Port, Bit) (Port) |= 1 << (Bit)
#define Res(Port, Bit) (Port) &= ~(1 << (Bit))

// PORTA0 = 1
Set(PORTA, PORTA0); // тоже самое: Set(PORTA, 0);
// PORTA0 на вывод
Set(DDRA, DDRA0);
// PORTA0 - подпорка
Set(PORTA, PORTA1);
// PORTA0 на ввод
Res(DDRA, DDRA1);
// Проверить бит
if (IsBit(PINA, PINA1)
{
        // .......
}
// Взять бит
char Value = Bit(PINA, PINA0);



--------------------
Я могу ВСЁ, вопрос - сколько времени у меня это займет!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.