Управление портом в АВР

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Приветствую.
Подскажите, как вывести в порт B или PortD, число более 61. В авр студио
ругается, мол вывод через регистр не более 61h, а нужно полность управлять
портом и сразу, а не битиками дёргаться. В 51-м проще. Может что не так делаю?
вот небольшой пример:
 ldi r16, 0b1000000
 out portB,r16 - всё нормально
но стоит занести большее значение, так сразу ругается:
 ldi r16, 0b11000000
 out portB, r16 - ругается.
 Как правильно сделать?
Вот и всё, пока.


Re: Управление портом в АВР
Привет, Evgeniy Terehov!

07.02.2008 17:59 Вы писали:

Quoted text here. Click to load it

     PORTB = 62;

Quoted text here. Click to load it

     Выкинь.

Quoted text here. Click to load it

    Все правильно делаешь. Инструкция out PORTB,r16 выполняется для любого
значения r16. Если Студия другого мнения, тем хуже для нее.

--
Всего наилучшего,
Алексей Могильников

Re: Управление портом в АВР
Hello, Alex!
You wrote to Evgeniy Terehov on Fri, 08 Feb 2008 21:31:18 +0300:

 AM> Привет, Evgeniy Terehov!

 AM> 07.02.2008 17:59 Вы писали:

 ??>> Подскажите, как вывести в порт B или PortD, число более 61.

 AM>      PORTB = 62;

 ??>> В авр студио ругается, мол

 AM>      Выкинь.
...

 AM>     Все правильно делаешь. Инструкция out PORTB,r16 выполняется для
 AM> любого значения r16. Если Студия другого мнения, тем хуже для нее.

Что-то там не то. Я давно со студией не работал и уже ее не помню, но врядли
ее афтары такие идиоты.


With best regards, Alexander Torres. 2:461/28,  E-mail: snipped-for-privacy@yahoo.com
[а ночью мы снова, уйдем эскадроном..]

http://altor.sytes.net



Re: Управление портом в АВР
Привет, Alexander Torres!

08.02.2008 20:18 Вы писали:

Quoted text here. Click to load it

  Я с ней работал давно (нужно было работать с эмулятором ICE-200), до сих пор
вспоминаю с
содроганием. :(  И в том, что Атмеловцы не умеют писать программы, я потом
убеждался
неоднократно.

  ИМХО в любом случае выкинуть ее - хорошая идея.

--
Всего наилучшего,
Алексей Могильников

Re: Управление портом в АВР

Quoted text here. Click to load it

  100%. Ассемблер там дерьма кусок. Рекомендую avra:
AVRA: advanced AVR macro assembler Version 1.0.1 Build 113 (12. February
2004)


Re: Управление портом в АВР
Hallo!
Quoted text here. Click to load it
Да уж. (С)
Крутизна немерянная ;)


.include "can128def.inc"

ldi r16, 0b1000000
out PORTB,r16
ldi r16, 0b11000000
out PORTB, r16


AVRA: advanced AVR macro assembler Version 1.2.3 Build 2 (15. November 2007)
Copyright (C) 1998-2007. Check out README file for more info
   AVRA is an open source assembler for Atmel AVR microcontroller family
   It can be used as a replacement of 'AVRASM32.EXE' the original assembler
   shipped with AVR Studio. We do not guarantee full compatibility for avra.
   AVRA comes with NO WARRANTY, to the extent permitted by law.
   You may redistribute copies of avra under the terms
   of the GNU General Public License.
   For more information about these matters, see the files named COPYING.
Pass 1...
C:\WinAVR\IMS_25\testasm\C:\Programme\Atmel\AVR
Tools\AvrAssembler\Appnotes/can128def.inc(40) : Error   : Unknown device:
AT90CAN128
Warning : No .DEVICE definition found. Cannot make useful address range
check !


... своего "ребёнка", как водится,  до сих пор не родили, зато
поклонников...


Удачи,
Андрей




Управление портом в АВР
Hello Andrej Arnold!

 >>  100%. Ассемблер там дерьма кусок. Рекомендую avra:
 >> AVRA: advanced AVR macro assembler Version 1.0.1 Build 113 (12. February
 >> 2004)
 AA> Да уж. (С)
 AA> Крутизна немерянная ;)
 AA> .include "can128def.inc"
 AA> No .DEVICE definition found. Cannot make useful address range check !
 AA> ... своего "ребёнка", как водится,  до сих пор не родили, зато
 AA> поклонников...

Ж%~}}} "Ти зналь, ти зналь !.." (ц)

Hе далее как вчера затрахался воевать с этим "продуктом", а добиться внятных
результатов так и не удалось (последний укачанный билд под Win даже листинг
для диагностики выданных им errors'ов не создал, сцукко ! Ж&)

PS А какой *древний* асм от аврстудио уже поддерживает .if/.endif и т.п. ?


Упpавление поpтом в АВР
Hello Alexander.

 AK> PS А какой *дpевний* асм от авpстyдио yже поддеpживает .if/.endif и т.п. ?

Avrasm2, котоpый появился, вpоде, начиная со стyдии v4.0, то есть, yже
года 4 назад.
Он, вообще, очень даже пpиличный. В отличие от пеpвого, он ноpмально
pаботает с pyсскими символами и стpоками в данных, обpабатывает ошибки
типа pyсской бyквы в мнемонике, пpи ошибках в вызове макpосов, показывает
именно откyда вызван, а не самy тyшкy макpоса. С yсловным ассемблиpованием
тоже все ноpмально.
В стyдии, в опциях ассемблиpования можно выбpать, использовать v1 или v2.

Igor


Упpавление поpтом в АВР
Hello Igor.

Mon Feb 18 2008 02:25, Igor Wihanski wrote to Alexander Konosevich:

 AK>> PS А какой *дpевний* асм от авpстyдио yже поддеpживает .if/.endif и т.п.
 AK>> ?

 IW> Avrasm2, котоpый появился, вpоде, начиная со стyдии v4.0, то есть, yже
 IW> года 4 назад.

По-моему, писать на асме для AVR - извращение... ну, конечно, не считая
критических кусков.


Dimmy.


Re: Упpавление поpтом в АВР
Hello, Dimmy Timchenko!
You wrote in conference fido7.ru.embedded to Igor Wihanski on Tue, 19 Feb
2008 09:45:23 +0300:


 AK>>> PS А какой *дpевний* асм от авpстyдио yже поддеpживает .if/.endif
 AK>>> и т.п. ?

 IW>> Avrasm2, котоpый появился, вpоде, начиная со стyдии v4.0, то есть,
 IW>> yже года 4 назад.

 DT> По-моему, писать на асме для AVR - извращение... ну, конечно, не
 DT> считая критических кусков.

Да и вообще на асме сегодня очень мало подо что не извращение писать. Что,
впрочем, не помеха прикрутить к любому асму любой макропроцессор, благо
стандартизация и переносимость для ассемблерного кода - не самое важное.

dima
http://www.dorlov.no-ip.com
http://dimorlus.dynalias.com



Упpавление поpтом в АВР
Hello Dmitry.

Tue Feb 19 2008 14:28, Dmitry Orlov wrote to me:

 DT>> По-моему, писать на асме для AVR - извращение... ну, конечно, не
 DT>> считая критических кусков.

 DO> Да и вообще на асме сегодня очень мало подо что не извращение писать.

Тоже верно.

 DO> Что, впрочем, не помеха прикрутить к любому асму любой макропроцессор,
 DO> благо стандартизация и переносимость для ассемблерного кода - не самое
 DO> важное.

Да, если б смысл был...  Сделать, например, "многоплатформенный" ассемблер с
правильным синтаксисом.  Hо уже не актуально.


Dimmy.


Re: Упpавление поpтом в АВР
Hello, Dimmy Timchenko!
You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 19 Feb
2008 15:11:22 +0300:

 DT>>> По-моему, писать на асме для AVR - извращение... ну, конечно, не
 DT>>> считая критических кусков.

 DO>> Да и вообще на асме сегодня очень мало подо что не извращение
 DO>> писать.

 DT> Тоже верно.

Простые вещи в устройствах с очень высокими тиражами и при этом высокой
долей стоимости контроллера в общей стоимости изделия. Иначе не окупится.

 DO>> Что, впрочем, не помеха прикрутить к любому асму любой
 DO>> макропроцессор, благо стандартизация и переносимость для
 DO>> ассемблерного кода - не самое важное.

 DT> Да, если б смысл был...  Сделать, например, "многоплатформенный"
 DT> ассемблер с правильным синтаксисом.  Hо уже не актуально.

Многоплатформенный ассемблер называется С... А какой-нибудь M4 (а для
условной компиляции и сишного препроцессора хватит) к существующему асму
прикрутить можно простыми командными файлами, хотя наигравшись в свое время
с макроассемблированием (практически язык программирования на макросах
делал), я прочувствовал многочисленные недостатки этого подхода. Раздутый
код, отвратительная диагностика ошибок, трудности в одладке (отладчик-то на
уровне макропроцессора не работает), трудности в отладке самих макросов
(пошагового прохождения их с просмотром промежуточных результатов в
известных мне макропроцессорах нет). Кроме того, по прошествии времени в
своем же коде тяжело разобраться, а уж за чужой такой вообще страшно
браться.


dima
http://www.dorlov.no-ip.com
http://dimorlus.dynalias.com



Упpавление поpтом в АВР
Hello Dmitry.

Tue Feb 19 2008 20:02, Dmitry Orlov wrote to me:

 DO>>> Да и вообще на асме сегодня очень мало подо что не извращение
 DO>>> писать.

 DT>> Тоже верно.

 DO> Простые вещи в устройствах с очень высокими тиражами и при этом
 DO> высокой долей стоимости контроллера в общей стоимости изделия. Иначе
 DO> не окупится.

Угу.  Hо для таких железяк, видимо, имеет смысл какие-нибудь ASIC заказывать.

 DO>>> Что, впрочем, не помеха прикрутить к любому асму любой
 DO>>> макропроцессор, благо стандартизация и переносимость для
 DO>>> ассемблерного кода - не самое важное.

 DT>> Да, если б смысл был...  Сделать, например, "многоплатформенный"
 DT>> ассемблер с правильным синтаксисом.  Hо уже не актуально.

 DO> Многоплатформенный ассемблер называется С...

И я на то намекаю. :)

 DO> А какой-нибудь M4 (а для условной компиляции и сишного препроцессора
 DO> хватит) к существующему асму прикрутить можно простыми командными
 DO> файлами, хотя наигравшись в свое время с макроассемблированием
 DO> (практически язык программирования на макросах делал), я прочувствовал
 DO> многочисленные недостатки этого подхода.

Тут важно не увлекаться. :)  Я тоже когда-то рисовал "структурные макросы", но
они были простыми и "атомарными".


Dimmy.


Re: Упpавление поpтом в АВР
Hello, Dimmy Timchenko!
You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 19 Feb
2008 20:43:34 +0300:

 DO>>>> Да и вообще на асме сегодня очень мало подо что не извращение
 DO>>>> писать.

 DT>>> Тоже верно.

 DO>> Простые вещи в устройствах с очень высокими тиражами и при этом
 DO>> высокой долей стоимости контроллера в общей стоимости изделия.
 DO>> Иначе не окупится.

 DT> Угу.  Hо для таких железяк, видимо, имеет смысл какие-нибудь ASIC
 DT> заказывать.

Hу масочный контроллер тоже своего рода ASIC, в сравнении с настоящим
ASIC'ом где-то есть граница, где масочный контроллер вцелом обходится
дешевле. Как и где-то есть граница, где масочная прошивка, написанная на
ассемблере дешевле написанного на С кода залитого в универсальный
контроллер. Граница тиража, цены разработки, верности их оценки, личных
предпочтений конкретных разработчиков, etc.

 DO>>>> Что, впрочем, не помеха прикрутить к любому асму любой
 DO>>>> макропроцессор, благо стандартизация и переносимость для
 DO>>>> ассемблерного кода - не самое важное.

 DT>>> Да, если б смысл был...  Сделать, например, "многоплатформенный"
 DT>>> ассемблер с правильным синтаксисом.  Hо уже не актуально.

 DO>> Многоплатформенный ассемблер называется С...

 DT> И я на то намекаю. :)

:)

 DO>> А какой-нибудь M4 (а для условной компиляции и сишного
 DO>> препроцессора хватит) к существующему асму прикрутить можно
 DO>> простыми командными файлами, хотя наигравшись в свое время с
 DO>> макроассемблированием (практически язык программирования на
 DO>> макросах делал), я прочувствовал многочисленные недостатки этого
 DO>> подхода.

 DT> Тут важно не увлекаться. :)  Я тоже когда-то рисовал "структурные
 DT> макросы", но они были простыми и "атомарными".

Hу а я увлекся процессом, потом наступило понимание того, что это порочный
путь в никуда. В принципе, так всегда бывает, когда процесс становится
самоцелью...

dima
http://www.dorlov.no-ip.com
http://dimorlus.dynalias.com



Re: Упpавление поpтом в АВР

Quoted text here. Click to load it

  ВОТ. Внести в местный FAQ и тыкать туда при слове ассемблер.

Quoted text here. Click to load it

  К "C" есть альтернативные макропроцессоры с рекурсиями и т.п.
С номерами строк там по крайней мере всё в порядке. Да и во вменяемом
ассемблере связанном с компилятором -- тоже (ибо он с сишным
препроцессором умеет работать). Собственно никто не мешает применять
и к ассемблеру в итоге. Hазвание вот сейчас не вспомню, но есть
замены для cpp. Другое дело, что малоактуально.




Упpавление поpтом в АВР
Привет, Dimmy !


 19 Feb 08 , 15:11  Dimmy Timchenko писал к Dmitry Orlov:

DT> Сделать, например, "многоплатформенный" ассемблер с правильным
DT> синтаксисом.

"язык Си" именно на это и претендует.

.                                            С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
... Пересадить собаку с сена на цепь

Упpавление поpтом в АВР
Доброго времени суток, Nickita!

19.02.2008 21:32, Nickita A Startcev -> Dimmy Timchenko:

 DT>> Сделать, например, "многоплатформенный" ассемблер с правильным
 DT>> синтаксисом.
 NS> "язык Си" именно на это и претендует.

И, надо заметить, весьма неплохо справляется - благо, условную трансляцию,
придуманную именно для этого, никто не отменял, а кросс-компиляторов хватает.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

We've slightly trimmed the long signature. Click to see the full one.
Упpавление поpтом в АВР
Привет, Alexey !


 20 Feb 08 , 10:23  Alexey Vissarionov писал к Nickita A Startcev:

DT>>> Сделать, например, "многоплатформенный" ассемблер с правильным
DT>>> синтаксисом.
NS>> "язык Си" именно на это и претендует.

AV> И, надо заметить, весьма неплохо справляется - благо, условную
AV> трансляцию, придуманную именно для этого, никто не отменял, а
AV> кросс-компиляторов хватает.

в первом приближении - да. во втором - многовато стандартов разных на этот
ассемблер, да и сам он сложноват в плане оптимизации и реализации.

.                                            С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
... измена - это... ну... паpоль pутовый на институтской боpде вывесить...

Упpавление поpтом в АВР
Доброго времени суток, Nickita!

21.02.2008 09:45, Nickita A Startcev -> Alexey Vissarionov:

 DT>>>> Сделать, например, "многоплатформенный" ассемблер с правильным
 DT>>>> синтаксисом.
 NS>>> "язык Си" именно на это и претендует.
 AV>> И, надо заметить, весьма неплохо справляется - благо, условную
 AV>> трансляцию, придуманную именно для этого, никто не отменял, а
 AV>> кросс-компиляторов хватает.
 NS> в первом приближении - да. во втором - многовато стандартов разных на
 NS> этот ассемблер,

Из актуальных - всего два: ISO C90 и ISO C99. Есть, конечно, GNU extensions и
аналогичная хрень, но я ей практически не пользуюсь.

 NS> да и сам он сложноват в плане оптимизации

Оптимизации чего? Результирующего кода? Вот уж никаких проблем - с этим даже
компиляторы справляются.

 NS> и реализации.

Опять же, реализации чего? Компилятора? Да, задача нетривиальная... впрочем,
никто не мешает использовать гнусь :-)


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

We've slightly trimmed the long signature. Click to see the full one.
Упpавление поpтом в АВР
Hello Alexey.

Thu Feb 21 2008 10:29, Alexey Vissarionov wrote to Nickita A Startcev:

 NS>> в первом приближении - да. во втором - многовато стандартов разных на
 NS>> этот ассемблер,

 AV> Из актуальных - всего два: ISO C90 и ISO C99. Есть, конечно, GNU
 AV> extensions и аналогичная хрень, но я ей практически не пользуюсь.

Мне нравятся необъектные плюсовые расширения.  Hапример, возможность объявления
временных переменных в нужном месте (и в операторе цикла), более жёсткая
типизация, параметры-ссылки, перегрузка функций, значения аргументов по
умолчанию, безымянные struct/union...


Dimmy.


Site Timeline