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

Feb 07, 2008 106 Replies

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


Здравствуйте Evgeniy Terehov пишет:

Приведённый пример работает в версии 4.12 сервис пак 4 билд 498, процессор аттини15. Более старые версии ветки 4 или не поддерживали тини15 или глючили. В более новых - могут и убрать, похожее у них было - не поддерживало, поддерживало с глюками - не поодерживало. Кроме того - пришлось в настройках ассемблера указать версию 1, в версии 2 выдаёт какую-то ошибку. Так что попробуй поменять тип ассемблера, версию аврстудии (на более новую - более старую)

Hello, Evgeniy! You wrote to All on Thu, 07 Feb 2008 17:59:34 +0500:

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

-------------------------------------------

.include "can128def.inc"

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

---------------------------------- ... и никакой ругани. Hи предупреждений, ни ошибок.

:020000020000FC :0800000000E405B900EC05B9AC :00000001FF

000000 e400 ldi r16, 0b1000000 000001 b905 out PORTB,r16 000002 ec00 ldi r16, 0b11000000 000003 b905 out PORTB, r16

--------------------------- .include "tn11def.inc"

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

---------------------------

:020000020000FC :0800000000E408BB00EC08BBA2 :00000001FF

000000 e400 ldi r16, 0b1000000 000001 bb08 out PORTB,r16 000002 ec00 ldi r16, 0b11000000 000003 bb08 out PORTB, r16

With best regards, Andrej Arnold. E-mail: snipped-for-privacy@aol.com

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required