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

 
 
 
Reply to this topicStart new topic
> Порт G в atmega128
nagserg
сообщение Jul 19 2005, 13:38
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 12-05-05
Пользователь №: 4 940



Хочу в Code Vision 1.24.6 сделать порт G как обычный порт входа-выхода. Компилятор ругается на PORTG.0=0, т.е. биту 0 порта G присвоить 0, а когда PORTC.0=0 нормально воспринимает (компилятор). Почему так?
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Jul 19 2005, 13:57
Сообщение #2


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



компилято здесь не причем это аппаратная фича PORTG не имеет битовую адресацию в отличии от порта С, нужно делать так ->

Установка бита порта PORTG|=(1<<3) установить 3 бит порта
Сброс бита порта PORTG&=~(1<<3) сбросить 3 бит порта
Go to the top of the page
 
+Quote Post
yung
сообщение Jul 19 2005, 19:42
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 25-03-05
Из: Рязань
Пользователь №: 3 669



Цитата(MALLOY2 @ Jul 19 2005, 17:57)
компилято здесь не причем это аппаратная фича PORTG не имеет битовую адресацию в отличии от порта С, нужно делать так ->

Установка бита порта PORTG|=(1<<3) установить 3 бит порта
Сброс бита порта PORTG&=~(1<<3) сбросить 3 бит порта
*


Мне очень интересно стало, что за битовая адресация а АВР, это ведь не 51-й. Полез в PDF. Ответ правильный, не не совсем понятный. Просто адреса регистров указанного порта лежат за пределами той области, где работают команды SBI и CBI. Компилятор видимо заточен как раз под них. Т.е. это в определенной мере недоработка компилятора, т.к. он не опознает, что адрес лежит вне допустимой области. Кстати, попробовал PORTC.0=0 в ICC, которым и пользуюсь, так он даже этого не понимает.
Go to the top of the page
 
+Quote Post
nagserg
сообщение Jul 20 2005, 05:28
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 12-05-05
Пользователь №: 4 940



Цитата(MALLOY2 @ Jul 19 2005, 16:57)
компилято здесь не причем это аппаратная фича PORTG не имеет битовую адресацию в отличии от порта С, нужно делать так ->

Установка бита порта PORTG|=(1<<3) установить 3 бит порта
Сброс бита порта PORTG&=~(1<<3) сбросить 3 бит порта
*


Да, заработало, спасибо
Go to the top of the page
 
+Quote Post
Panych
сообщение Sep 11 2007, 13:37
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 17-06-04
Из: Москва
Пользователь №: 35



Столкнулся с этим же под IAR, но эти команды у меня не возымели эффекта - так и не удалось выставить порт в "1".

Код
DDRG |= ( 1 << 2 );
PORTG |= ( 1 << 2 );


Отключения режима совместимости с 103-ей не нашел...

Листинг первой строки:
Код
     41            // настройка портов MPU
     42            DDRG |= (1<<2);
   \   00000002   91100064           LDS     R17, 100
   \   00000006   6014               ORI     R17, 0x04
   \   00000008   93100064           STS     100, R17


Что я проглядел?


--------------------
Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится. (Закон Мескимена.)
Go to the top of the page
 
+Quote Post
Guest_=AVR=_*
сообщение Sep 11 2007, 13:49
Сообщение #6





Guests






Отключение режима совместимости с 103-ей делается установкой В ЕДИНИЦУ фуз-бита M103C=1 (при программировании программатором)
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Sep 11 2007, 13:49
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(Panych @ Sep 11 2007, 17:37) *
Отключения режима совместимости с 103-ей не нашел...
...
Что я проглядел?

Вот отключение режима и проглядели. Это фьюз M103C, т.е. совместимость отключается с помощью программатора.
Go to the top of the page
 
+Quote Post
Panych
сообщение Sep 11 2007, 13:57
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 17-06-04
Из: Москва
Пользователь №: 35



Точно!
И ведь на самом видном месте! smile.gif


--------------------
Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится. (Закон Мескимена.)
Go to the top of the page
 
+Quote Post

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

 


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


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