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

 
 
> Как в WinAVR разместить переменную в регистре?
IgorAVR2
сообщение Apr 24 2009, 06:28
Сообщение #1


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

Группа: Участник
Сообщений: 153
Регистрация: 29-05-08
Пользователь №: 37 901



Или как из Си winavr писать данные в нужный регистр?

register unsigned char counter asm("r4"); - не помогает!!!

То есть если пишем код:
register unsigned char counter asm("r4");
counter=5;
temp=counter;

то в дизасме видно, что переменную в r4 он не создаёт и естественно не присваивает r4=5 , а просто в temp загружает 5.

Мне нужно из Си писать в регистр и постоянно держать там эти данные, что бы постоянно использовать в прерывании, которое на Асме.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
IgorAVR2
сообщение Apr 24 2009, 08:18
Сообщение #2


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

Группа: Участник
Сообщений: 153
Регистрация: 29-05-08
Пользователь №: 37 901



Спасибо, Анатолий. Да именно так всё и есть, как вы описали.

Да, приписав volatile он действительно стал создавать эту переменную в регистре - дизасме это то же видно, как мне было и нужно!!! Победа!!! Вчерашний день мучений закончился сегодня благодаря вам. Надеюсь побочных эффектов с потерями модификатора не будет. Ещё раз спасибо.

Ещё вопрос:

можно ли разместить а регистре не переменную, а массив, начиная с какого нибудь регистра?

Всё равно не совсем работает как надо.
А именно: если потом эту переменную используем как нибудь, то он действительно создаёт её в регистре, если дальше не использовать её, а просто присвоить ей значение, то в регистре она не создаётся и регистр ничему не присваивается.
При этом эта переменная видна только там где описана, в других функциях не видна, хоть и описана как volatile.
Go to the top of the page
 
+Quote Post
aesok
сообщение Apr 24 2009, 09:50
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(IgorAVR2 @ Apr 24 2009, 12:18) *
можно ли разместить а регистре не переменную, а массив, начиная с какого нибудь регистра?


Можно, но вначеле внимательно перечитайте FAQ #3.

Цитата(IgorAVR2 @ Apr 24 2009, 12:18) *
При этом эта переменная видна только там где описана, в других функциях не видна, хоть и описана как volatile.


У меня плохо получаеться объяснять, а то что Вам не понятно в этом предложении обычно очень хорошо обясняется в книжках по языку С.

Анатолий.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 11:37
Рейтинг@Mail.ru


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