|
|
  |
Сбылась мечта идиота - приехали программатор и SAM7S256, Теперь нужен ликбез. |
|
|
|
May 13 2010, 16:10
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(zheka @ May 13 2010, 19:45)  то есть OWER нужно включать единожды? Можно единожды. Цитата(zheka @ May 13 2010, 19:45)  И все что в нем единица будет рабоать как старый добрый PORTA=0xAA ? При записи в ODSR - да.
|
|
|
|
|
May 13 2010, 17:33
|

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
|
May 14 2010, 05:22
|
Частый гость
 
Группа: Участник
Сообщений: 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 Но тут беда в другом - не все биты порта выведены на пины. Почему? А кто же его знает...
|
|
|
|
|
May 14 2010, 07:01
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(zltigo @ May 14 2010, 10:49)  Я имел ввиду, то, что я написал - Ваши расуждения о свойствах GPIO конкретного LPC нималейшего отношения к какому-либо ядру не имеют и только по факту переходе на ядро Cortex-M3 счастья от обладания такими GPIO не появится. Все. Только у lpc GPIO реализовано корректно? Как ячейка памяти. То есть поддерживает команду - вывод значения регистра в память? У остальных производителей микропроцессоров на ядре кортекс GPIO не поддерживает этой команды и ее приходится эмулировать? Извините, я этого не знал. И что Вы так нервничаете? Сказали бы - есть производители кортексов, у которых GPIO кривое, и все дела...
|
|
|
|
|
May 14 2010, 10:35
|
Частый гость
 
Группа: Участник
Сообщений: 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" На мой вопрос - это про что - ответа не получено...
|
|
|
|
|
May 14 2010, 11:36
|

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

|
Вот и Вы, похоже, нервничаете  У ядра Cortex, которое Вы упомянули, есть только адресное пространство для периферийных устройств 0x40000000-0x5FFFFFFF. Какие там будут устройства, зависит от производителя конкретного микропроцессора. Когда Вы сказали "переходите на Cortex", подразумевая там некие регистры портов, это вызвало справедливое замечание zltigo. Надеюсь, я объяснил правильно? А bit-band я просто так упомянул, высказал свое мнение.
|
|
|
|
|
May 14 2010, 12:46
|

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|