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

 
 
 
Reply to this topicStart new topic
> Обращение к ETIFR
Stepanich
сообщение Aug 20 2005, 22:13
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 8-06-05
Из: Москва
Пользователь №: 5 847



Здравствуйте.
Подскажите, в чём ошибка: обращаюсь к регистру ETIFR следующим образом, например, ETIFR=1 или while(ETIFR&1). Ни в симуляторе, ни в железе эти команды не отрабатываются, хотя обращение, например, к TIFR работает нормально.
uC – M128, компилятор - CVAVR 1.24.6.
Спасибо.
Go to the top of the page
 
+Quote Post
Mt_
сообщение Aug 22 2005, 20:31
Сообщение #2


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

Группа: Свой
Сообщений: 116
Регистрация: 3-06-05
Из: Санкт-Петербург
Пользователь №: 5 719



Цитата(Stepanich @ Aug 21 2005, 01:13)
Здравствуйте.
Подскажите, в чём ошибка: обращаюсь к регистру ETIFR следующим образом, например, ETIFR=1 или while(ETIFR&1). Ни в симуляторе, ни в железе эти команды не отрабатываются, хотя обращение, например, к TIFR работает нормально.
uC – M128, компилятор - CVAVR 1.24.6.
Спасибо.
*

ETIFR находится в другой области памяти нежели TIFR. И поэтому к нему обращаться нужно sts(lds) ETIFR, но In(Out) TIFR. Вы это учитываете ?
Go to the top of the page
 
+Quote Post
yung
сообщение Aug 23 2005, 21:25
Сообщение #3


Местный
***

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



Вообще-то эти вещи компилятор отслеживать должен. Человек ведь на Си пишет. С этим регистром (ETIFR) я не сталкивался, но когда попытался через define вставить ассемблерную команду установки бита в порту F или G (то есть тоже лежит за пределами адресов, где работают sbi, cbi), компилятор ругнулся на ошибку. Вставив же туда аналогичную Си-команду типа PORTF|=0x01, получил рабочий код, т.е. компилятор эти вещи знает. Но я использую ICC. Здесь, похоже, глюк codevision. У Stepanich есть выход в виде ассемблерной вставки. Можно, конечно, попытаться найти более свежую версия компилятора либо сервис-пак. Такие вещи производители быстро находят и исправляют. Я, например, не помню уж с чем ругался на AVR-Studio (не симулировала какую-то периферию), потом вспомнил, что в Аргуссофте с программатором дали диск, на нем куча инфы и что-то из софта. Так вот, там оказался и сервис-пак, который этот глюк исправил.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Aug 25 2005, 07:58
Сообщение #4


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Просмотрите ассемблерный листинг, который выдаёт компилятор в результате работы (если в CV есть такая опция).
Обычно помогает.
Если обнаружите глюк компилятора, то придётся делать ассемблерную вставку.
Go to the top of the page
 
+Quote Post

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

 


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


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