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

 
 
9 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> Сбылась мечта идиота - приехали программатор и SAM7S256, Теперь нужен ликбез.
aaarrr
сообщение May 13 2010, 15:09
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Код
AT91C_BASE_PIOA->PIO_OWER  = 0xFF0000FF;
AT91C_BASE_PIOA->PIO_ODSR  = 0xYY0000ZZ;
Go to the top of the page
 
+Quote Post
zheka
сообщение May 13 2010, 15:45
Сообщение #62


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



aaarrr спасибо, то что надо.
то есть OWER нужно включать единожды? И все что в нем единица будет рабоать как старый добрый PORTA=0xAA ?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 13 2010, 16:10
Сообщение #63


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zheka @ May 13 2010, 19:45) *
то есть OWER нужно включать единожды?

Можно единожды.

Цитата(zheka @ May 13 2010, 19:45) *
И все что в нем единица будет рабоать как старый добрый PORTA=0xAA ?

При записи в ODSR - да.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 13 2010, 17:33
Сообщение #64


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(zheka @ May 13 2010, 17:44) *
А второй строкой вы что хортели сделать?
Сбросить в 0 те биты, которые равны нулю в байтах a и b. Для этого на месте этих битов надо записать единицы в CODR.
Цитата(zheka @ May 13 2010, 17:44) *
НИже код - наличие/присутствие строки ничего в симуляторе не изменило.
Естественно - результат вашего выражения - ноль, а запись нулевых битов в CODR не имеет эффекта. Именно поэтому ваши средние биты остаются нетронутыми в моей записи.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zheka
сообщение May 13 2010, 18:45
Сообщение #65


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Тьфу, тфу разобрался. Напаял на плату светодиодов, сделал через (1<<i) в цикле бегущий огонь (OSDR) и заполняющийся столбик (SODR).
Разобрался почему у меня не запускался код в RAM.
ТОлько объясните моему детскому мозгу, чем же контроллер порта в ARM круче чем в AVR, коль требует к себе такого отношения?


P.S. Сцк, интересный однако, камень, почему я не напрягся с ним раньше?...

Сообщение отредактировал zheka - May 13 2010, 18:47
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 13 2010, 19:52
Сообщение #66


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zheka @ May 13 2010, 22:45) *
ТОлько объясните моему детскому мозгу, чем же контроллер порта в ARM круче чем в AVR, коль требует к себе такого отношения?

Какого отношения - чтения документации?
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 13 2010, 21:13
Сообщение #67


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aaarrr @ May 13 2010, 22:52) *
Какого отношения - чтения документации?

Представляю, что случится с zheka, когда он узнает о, например, существовании Luminary smile.gif - там 20 регистров за каждым восьмибитовым GPIO + еще восемь в bit-band итого 28 smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
zheka
сообщение May 14 2010, 02:51
Сообщение #68


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Цитата
Какого отношения - чтения документации?

Не спорю. Но описание OWER и ODSR в документации не сразу наталкивает на мысль что это решение моей проблемы. Если бы вам дали задание найти кухонный нож, а на коробке было бы написано что-то вроде "твердотельный дезинтегратор органических энергоносителей для питания билогических систем" вы бы сразу догадались что в коробке то что вам нужно?
Go to the top of the page
 
+Quote Post
vallav
сообщение May 14 2010, 05:22
Сообщение #69


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977



Цитата(zltigo @ May 13 2010, 18:46) *
А причем тут какое-либо ядро к организации GPIO конкретного контроллера? В отношении Cortex-M3, ну там разве только от ядра bit-band может быть использован для частичной эмуляции помянутых Вами LPC-шных SET/CLR


А при чем тут bit-band и частичная эмуляция?
Bit-band - это четвертый способ ввода/вывода в регистры - с побитовой адресацией.
И все они не эмулируются а существуют на аппаратном уровне - в железе.

Или Вы имели в виду, что нужно было вместо "переходите на кортекс" сказать "переходите на lpc1xxx"?
Но прямо об этом сказать постеснялись...




Цитата(zheka @ May 13 2010, 22:45) *
Тьфу, тфу разобрался. Напаял на плату светодиодов, сделал через (1<<i) в цикле бегущий огонь (OSDR) и заполняющийся столбик (SODR).
Разобрался почему у меня не запускался код в RAM.
ТОлько объясните моему детскому мозгу, чем же контроллер порта в ARM круче чем в AVR, коль требует к себе такого отношения?


P.S. Сцк, интересный однако, камень, почему я не напрягся с ним раньше?...


Да не, просто чип кривоватый.
Ваша задача на lpc1768 делается так:

LPC_GPIO0->FIOPIN0=a; // вывод в младший байт порт_0 байта a
LPC_GPIO0->FIOPIN3=b; // вывод в старший байт порт_0 байта b

Но тут беда в другом - не все биты порта выведены на пины.
Почему? А кто же его знает...
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 14 2010, 06:49
Сообщение #70


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vallav @ May 14 2010, 08:22) *
Или Вы имели в виду...

Я имел ввиду, то, что я написал - Ваши расуждения о свойствах GPIO конкретного LPC нималейшего отношения к какому-либо ядру не имеют и только по факту переходе на ядро Cortex-M3 счастья от обладания такими GPIO не появится. Все.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
vallav
сообщение May 14 2010, 07:01
Сообщение #71


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977



Цитата(zltigo @ May 14 2010, 10:49) *
Я имел ввиду, то, что я написал - Ваши расуждения о свойствах GPIO конкретного LPC нималейшего отношения к какому-либо ядру не имеют и только по факту переходе на ядро Cortex-M3 счастья от обладания такими GPIO не появится. Все.


Только у lpc GPIO реализовано корректно? Как ячейка памяти.
То есть поддерживает команду - вывод значения регистра в память?
У остальных производителей микропроцессоров на ядре кортекс GPIO не поддерживает этой команды и ее приходится эмулировать?
Извините, я этого не знал.

И что Вы так нервничаете?
Сказали бы - есть производители кортексов, у которых GPIO кривое, и все дела...
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 14 2010, 07:54
Сообщение #72


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(vallav @ May 14 2010, 10:01) *
Сказали бы - есть производители кортексов, у которых GPIO кривое, и все дела...

Есть производители микроконтроллеров, использующие Cortex ядро. Как они сделают порты - их дело. Обычно делают, как надо. Это не вытекает из Cortex напрямую.
Кстати, bit-band для портов - вещь мало нужная. Вполне должно хватать и тех регистров, которые отвечают за биты порта. Для того они и созданы.
Go to the top of the page
 
+Quote Post
vallav
сообщение May 14 2010, 10:35
Сообщение #73


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977



Цитата(ViKo @ May 14 2010, 11:54) *
Есть производители микроконтроллеров, использующие Cortex ядро. Как они сделают порты - их дело. Обычно делают, как надо. Это не вытекает из Cortex напрямую.
Кстати, bit-band для портов - вещь мало нужная. Вполне должно хватать и тех регистров, которые отвечают за биты порта. Для того они и созданы.


Вы в курсе, что в кортексе нет пространства ввода-вывода.
И GPIO отображается на память.
В кортексе есть команды записи в память значения региситра.
Если по адресу GPIO стандартная команда ядра не работает - GPIO реализовано криво.
Согласны?

Кстати, есть такие кортексы, в которых эта команда для GPIO не реализована?
Или это чисто теоретические рассуждения - мол вполне может быть не реализована...

А в SAM7 насамом деле нет команды записи из регистра в GPIO?

А вот что Вы сюда bit-band пристроили, непонеятно.
Если и мало нужная то вроде и не мешает...
А понадобится, используем.

По этому поводу не ко мне, это не я заявлял -
"В отношении Cortex-M3, ну там разве только от ядра bit-band может быть использован для частичной эмуляции помянутых
Вами LPC-шных SET/CLR"
На мой вопрос - это про что - ответа не получено...
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 14 2010, 11:36
Сообщение #74


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Вот и Вы, похоже, нервничаете smile.gif
У ядра Cortex, которое Вы упомянули, есть только адресное пространство для периферийных устройств 0x40000000-0x5FFFFFFF. Какие там будут устройства, зависит от производителя конкретного микропроцессора. Когда Вы сказали "переходите на Cortex", подразумевая там некие регистры портов, это вызвало справедливое замечание zltigo. Надеюсь, я объяснил правильно?
А bit-band я просто так упомянул, высказал свое мнение.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 14 2010, 12:46
Сообщение #75


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(vallav @ May 14 2010, 13:35) *
Вы в курсе, что в кортексе нет пространства ввода-вывода.
И GPIO отображается на память.
В кортексе есть команды записи в память значения региситра.

Вы в курсе, что в ARM7 (и в AT91SAM7 в частности) нет пространства ввода-вывода?
И GPIO отображается на память?
В ARM7 есть команды записи в память значения регистра.

И чем же тогда кортекс лучше?

Цитата(vallav @ May 14 2010, 13:35) *
А в SAM7 насамом деле нет команды записи из регистра в GPIO?
Если вы этого не знаете, то как можете делать вывод что кортекс лучше?

Цитата(vallav @ May 14 2010, 13:35) *
На мой вопрос - это про что - ответа не получено...
Это про LPC и SAM7, которые вы обвиняете в кривизне. Как выясняется - даже не зная, как они устроены.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

9 страниц V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:42
Рейтинг@Mail.ru


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