Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/10: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Nosaer
1 / 1 / 1
Регистрация: 25.08.2010
Сообщений: 33
1

Работа с портами в AVR

01.06.2012, 21:42. Просмотров 1947. Ответов 4
Метки нет (Все метки)

Здравствуйте!
Столкнулся с задачей и не знаю как реализовать, надеюсь на вашу помощь.
Необходимо последовательно подавать "1" на большое количество выводов. Задача осложняется тем, что выводы в рамках одного порта подключаются не последовательно.
т.е. в каком то цикле, мы поочередно подключаем сначала PORTB.1, PORTB.4, PORTB.5, PORTB.2, PORTB.3. Затем в этом же цикле еще и выводы другого порта, например С.
Другими словами просто прогнать каждый порт в цикле не получится. Нужно как то создать список где они будут записаны в той последовательности в которой нужны, и уже гонять цикл по этому списку. Что у меня реализовать как раз таки не получается.
Микроконтроллер AVR. Язык С/С++.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2012, 21:42
Ответы с готовыми решениями:

Работа с портами AVR в CodeVision
Народ, подскажите пожалуйста, может ли AVR например установить два бита порта одновременно, не...

Работа с портами ввода-вывода AVR
Всем доброго времени суток. Я написал статью про работу с портами ввода-выдода МК семейства AVR....

Проблема с портами ВВ на AVR
Добрый день. Возникла проблема при работе с портами ввода-вывода на модуле AVR Pinboard II. Написал...

Работа с портами ATtiny2313
Делаю вот что. #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> int...

работа с несколькими портами мк
К примеру есть такой код: for1: out PORTB,temp sec rol temp rcall delay ...

4
pyzhman
809 / 499 / 70
Регистрация: 15.05.2012
Сообщений: 2,826
01.06.2012, 22:20 2
Почему бы железо не сделать таким, чтобы можно было гонять именно порт?
0
Nosaer
1 / 1 / 1
Регистрация: 25.08.2010
Сообщений: 33
01.06.2012, 22:53  [ТС] 3
Схему уже переделывать не реально да и поздно.
0
bill_vs
35 / 35 / 1
Регистрация: 07.02.2012
Сообщений: 79
02.06.2012, 00:17 4
Так как порты в AVR отображены на память, с ними можно работать по указателю. А содержимое выдавать по таблице. Например, так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
typedef struct
{
    unsigned char * port;   //адрес порта (в пространстве памяти)
    unsigned char set;      //устанавливаемые в «1» биты
    unsigned char mask;     //не изменяемые биты
}TTempl;
 
TTempl Templ[4] =
{
    {(unsigned char *)0x25,0x01,0x00},  //PORTB=0x01
    {(unsigned char *)0x28,0x11,0x00},  //PORTC=0x11
    {(unsigned char *)0x2B,0x15,0xE0},  //PORTD=0x15, PORTD7-PORTD5 – не меняем
    {(unsigned char *)0x28,0x02,0x00}   //PORTC=0x02
};
 
void set_port(void)
{
    for(char i = 0;i< (sizeof(Templ)/sizeof(TTempl));i++)
        *Templ[i].port = (*Templ[i].port & Templ[i].mask) | Templ[i].set;
}
2
Nosaer
1 / 1 / 1
Регистрация: 25.08.2010
Сообщений: 33
02.06.2012, 20:10  [ТС] 5
Спасибо большое, постараюсь разобраться.
0
02.06.2012, 20:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2012, 20:10

Atmega6490. Работа с портами в CVAVR
для CVAVR последняя версия: так работает: PORTA.1=1; и так работает: PORTA=(1&lt;&lt;1); так...

Работа с портами и прерываниями (Atmega48)
Помогите с маленькой программой на С, замучилась. Atmega48. Задание звучит так: К порту D...

dsPIC30F4013. Работа с портами
Ребята , требуеться помощь , не знаю как запрограммировать микроконтроллер dsPIC30F4013,точнее знаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru