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

 
 
> Тонкости работы с LPC2xxx, много разных мелочей
GetSmart
сообщение Nov 15 2007, 10:11
Сообщение #1


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Для начала, кто знает как инвертировать пин P0.31 на процах LPC213x ?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Nov 15 2007, 17:20
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(klen)
IO1PIN & (1<<LINK_LED_IOPIN) ? (IO1CLR = (1<<LINK_LED_IOPIN)) : (IO1SET = (1<<LINK_LED_IOPIN));
Скажем так, по условию задачи нельзя читать текущее состояние из IOxPIN. Для P0.31 это так на самом деле.

А самый короткий способ как на Си, так и на АSMе я уже написал:
IOxPIN = IOxSET ^ (1U<<n);

ЗЫ: Меня всегда интересовало почему IOxSET для чтения/записи, а IOxCLR только для записи. И недавно я это выяснил smile.gif Теперь всё встало на свои места!


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
alexander55
сообщение Nov 16 2007, 06:36
Сообщение #3


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(GetSmart @ Nov 15 2007, 20:20) *
ЗЫ: Меня всегда интересовало почему IOxSET для чтения/записи, а IOxCLR только для записи. И недавно я это выяснил smile.gif Теперь всё встало на свои места!

Да, это нюанс, который проясняет назначение IOxSET для чтения. Спасибо. a14.gif
Я подумаю над изменением
#define Test_LED3 (IO0PIN_bit.P0_31)
на
#define Test_LED3 (IO0SET_bit.P0_31)


Но теперь остается еще нюансы с IOxPIN.
Я так понимаю.
Если биты порта сконфигурированы как GPIO (я подчеркиваю это), то IOxPIN в этих битах указывает состояние на самих пинах.
Т.е. если бит сконфигурирован как выход, то состояние выхода.
Если бит сконфигурирован как вход, то состояние входа.
Теперь объясните мне, за что сражались. biggrin.gif

Цитата(Сергей Борщ @ Nov 16 2007, 03:34) *
Да, познавательно. Спасибо! Полез редактировать свои макросы.

Зачем так спешить.

Цитата(alexander55 @ Nov 16 2007, 08:46) *
Я подумаю над изменением
#define Test_LED3 (IO0PIN_bit.P0_31)
на
#define Test_LED3 (IO0SET_bit.P0_31)

Проверил, работают аналогично.
Что лучше реальное состояние выхода или записанное - вопрос, конечно, интересный. biggrin.gif
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 16 2007, 08:37
Сообщение #4


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(alexander55 @ Nov 16 2007, 11:36) *
Но теперь остается еще нюансы с IOxPIN.
Я так понимаю.
Если биты порта сконфигурированы как GPIO (я подчеркиваю это), то IOxPIN в этих битах указывает состояние на самих пинах.
Т.е. если бит сконфигурирован как выход, то состояние выхода.
Если бит сконфигурирован как вход, то состояние входа.
Теперь объясните мне, за что сражались. biggrin.gif
Уже написал. Повторяю для особо невнимательных:
В процессоре LPC213x при чтении IO0PIN старший бит читается установленным ВСЕГДА!!!
Поэтому любая конструкция типа IO0PIN ^= (1<<N) разрушит содержимое этого пина, а точнее установит на нём еденицу.
Для LPC214x не проверял, особенно в старых ревизиях.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- GetSmart   Тонкости работы с LPC2xxx   Nov 15 2007, 10:11
- - alexander55   Цитата(GetSmart @ Nov 15 2007, 13:11) Ка...   Nov 15 2007, 10:41
- - etoja   P0.31 -только на вывод. Как писал DASM (http://el...   Nov 15 2007, 10:50
- - GetSmart   Цитата(etoja)P0.31 -только на вывод.Дык я знаю, чт...   Nov 15 2007, 11:05
|- - alexander55   Цитата(GetSmart @ Nov 15 2007, 14:05) Тот...   Nov 15 2007, 11:48
- - GetSmart   Цитата(alexander55)#define Test_LED3 (IO0PIN_bit.P...   Nov 15 2007, 11:53
|- - alexander55   Цитата(GetSmart @ Nov 15 2007, 14:53) Кон...   Nov 15 2007, 12:06
||- - tyro   Цитата(GetSmart @ Nov 15 2007, 14:53) Кон...   Nov 15 2007, 12:15
|- - Сергей Борщ   Цитата(GetSmart @ Nov 15 2007, 13:53) Про...   Nov 15 2007, 12:25
|- - alexander55   Цитата(Сергей Борщ @ Nov 15 2007, 15:25) ...   Nov 15 2007, 12:39
- - GetSmart   Цитата(alexander55)Я работаю с LPC2148. Это работа...   Nov 15 2007, 12:19
|- - tyro   Цитата(GetSmart @ Nov 15 2007, 15:19) Воз...   Nov 15 2007, 12:23
- - GetSmart   Цитата(Сергей Борщ)Или конкретно с 0.31 есть подво...   Nov 15 2007, 12:31
- - abcdefg   Да вроде как мы с вами уже обсуждали http://elect...   Nov 15 2007, 13:28
- - GetSmart   Блин, точно! И я там был... Но появились новые...   Nov 15 2007, 13:38
|- - alexander55   Цитата(GetSmart @ Nov 15 2007, 16:38) Бли...   Nov 15 2007, 13:52
|- - Сергей Борщ   Цитата(GetSmart @ Nov 15 2007, 15:38) Но ...   Nov 15 2007, 14:53
- - GetSmart   Цитата(Сергей Борщ)IO0PIN = (IO0PIN && #0x...   Nov 15 2007, 15:20
|- - Сергей Борщ   Цитата(GetSmart @ Nov 15 2007, 17:20) Вед...   Nov 15 2007, 15:34
- - klen   Потетики много. Предлагаю уточнить задачу. КАК на ...   Nov 15 2007, 15:43
- - GetSmart   Цитата(Сергей Борщ)Тогда IO0PIN = ( IO0PIN & ~...   Nov 15 2007, 15:53
|- - klen   Пока что умнее чем #define LED_TOGGLE() ...   Nov 15 2007, 16:21
|- - Сергей Борщ   Цитата(GetSmart @ Nov 15 2007, 17:53) Там...   Nov 16 2007, 00:34
|- - alexander55   Цитата(GetSmart @ Nov 16 2007, 11:37) В п...   Nov 16 2007, 08:53
- - GetSmart   Оказывается аналогичная ситуация с и с другими рег...   Nov 23 2007, 15:07
|- - alexander55   Цитата(GetSmart @ Nov 23 2007, 18:07) Ока...   Nov 26 2007, 05:57
- - Alex03   Не знаю что вы тут с GPIO нового нашли. У меня ещё...   Nov 27 2007, 06:07


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

 


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


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