реклама на сайте
подробности

 
 
> Узнал новое о GPIO портах AVR
demiurg_spb
сообщение Oct 16 2012, 05:49
Сообщение #1


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата из даташита на atmega1281
Цитата
13.2.2 Toggling the Pin
Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of DDRxn.
Note that the SBI instruction can be used to toggle one single bit in a port.

Забавно, но в достаточно свежих мегах эта фича есть, а в старых мегах типа mega16,64,128 не было, поэтому не обращал внимания.
А так получается за один такт можно атомарно инвертировать несколько бит в порту например так PINA = (1<<7)|(1<<0);
Может кому-нибудь пригодится..


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ILYAUL
сообщение Oct 22 2012, 17:50
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Код
sbi PINx,n будет получше чем
ldi R, (1<<n)
out PINx,R

а sbi PORTX,N чем плох?


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 23 2012, 05:18
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(ILYAUL @ Oct 22 2012, 21:50) *
а sbi PORTX,N чем плох?
Ничем не плох, но он только устанавливает, а мы говорим об инвертировании...
Цитата(Сергей Борщ @ Oct 22 2012, 23:05) *
Не возьмут. Аргументируют это тем, что эти заголовочники они генерят скриптом из каких-то атмеловских файлов студии (xml?). Т.е. надо либо патч к их скрипту делать, либо патч в атмел посылать.
Поговорить можно с Dean Camera он теперь ведь на Атмел работает. Он очень адекватный малый и думаю, что если ему донести сию мысль, то возможно он её продвинет.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 24 2012, 12:00
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(demiurg_spb @ Oct 23 2012, 09:18) *
Ничем не плох, но он только устанавливает, а мы говорим об инвертировании...

cli PORT,N
А вертирование через PIN - только себя в итоге запутать


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 25 2012, 05:20
Сообщение #5


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(ILYAUL @ Oct 24 2012, 16:00) *
cli PORT,N
Почитайте наконец уже доку на avrasm...

Цитата(ILYAUL @ Oct 24 2012, 16:00) *
через PIN - только себя в итоге запутать
Чтобы не путать никого
Код
#define CPLPORTx PINx
CPLPORTx |= (1<<n);


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- demiurg_spb   Узнал новое о GPIO портах AVR   Oct 16 2012, 05:49
- - kovigor   Цитата(demiurg_spb @ Oct 16 2012, 08:49) ...   Oct 16 2012, 07:31
|- - demiurg_spb   Цитата(kovigor @ Oct 16 2012, 11:31) заче...   Oct 16 2012, 07:42
|- - _Pasha   Цитата(kovigor @ Oct 16 2012, 10:31) Пока...   Oct 16 2012, 08:04
|- - demiurg_spb   Цитата(_Pasha @ Oct 16 2012, 12:04) Верно...   Oct 16 2012, 08:14
- - SasaVitebsk   Ну вы и даёте. Это было уже в меге88 лет 6 назад.   Oct 16 2012, 07:47
|- - demiurg_spb   Цитата(SasaVitebsk @ Oct 16 2012, 11:47) ...   Oct 16 2012, 07:53
- - ILYAUL   Помоему они нашли свой баг и решили сделать из нег...   Oct 16 2012, 09:40
|- - SasaVitebsk   Цитата(ILYAUL @ Oct 16 2012, 12:40) Помое...   Oct 26 2012, 09:47
|- - ILYAUL   Цитата(SasaVitebsk @ Oct 26 2012, 13:47) ...   Oct 26 2012, 15:50
- - V_G   В xmega-х изначально есть регистры OUTTGL и DIRTGL...   Oct 16 2012, 12:51
- - Genadi Zawidowski   Ну в тех кусках, которые "ногодрыганием...   Oct 16 2012, 20:45
- - LexaK   ЦитатаПодумал что я не одинок в этом незнании (дум...   Oct 21 2012, 07:37
- - ReAl   Вот в этом pin_macros.h я стараюсь поддерживать сп...   Oct 21 2012, 11:50
|- - demiurg_spb   Цитата(ReAl @ Oct 21 2012, 15:50) я стара...   Oct 22 2012, 05:26
- - ReAl   Цитата(demiurg_spb @ Oct 22 2012, 08:26) ...   Oct 22 2012, 15:41
|- - Сергей Борщ   QUOTE (ReAl @ Oct 22 2012, 18:41) Надо ка...   Oct 22 2012, 19:05
|- - ae_   Цитата(ILYAUL @ Oct 24 2012, 21:00) cli P...   Oct 25 2012, 02:57
- - ILYAUL   Цитатаcli - опечатка, cbi Конечно. Цитатавместо .....   Oct 25 2012, 05:58
- - ReAl   Мало того, что атомарный доступ, еще и флаги при э...   Oct 26 2012, 17:53
- - SasaVitebsk   А где используется? ... Я делал bootloader для at...   Oct 26 2012, 18:47


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 06:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01422 секунд с 7
ELECTRONIX ©2004-2016