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

 
 
> Использование битовых областей в IAR (ATMega128)
IF_P
сообщение Feb 9 2010, 14:21
Сообщение #1


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

Группа: Участник
Сообщений: 136
Регистрация: 2-01-06
Пользователь №: 12 772



Перешел на ATMega128 после 51-го. Не нашел здесь битового пространства. Т.е. либо использовать регистровый файл, либо р-ры I/O 0-1F. С р-рами в/в я уже обжегся, использовав бит аппаратного прерывания. Хотя в документации написано, что данный бит программно R/W.
Начал использовать общие р-ры 8-13:

__no_init bitfield FLAG_2@0x08;
#define flag_wait FLAG_2.bit0
#define flag_ESC FLAG_2.bit1
#define flag_in FLAG_2.bit2

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

retrurn atoi(...);

В другом случае при использовании локальных переменых в п/п. При входе в п/п мои р-ры сохранялись, а на их место определялись локальные переменные. Не выходя из этой п/п (т.е. не восстанавливая мои биты) я захожу в другую п/п, где использую указанные биты, которых там уже нет.
И я, вроде, делаю все правильно и компилятор тоже.
Как выйти из такой ситуации?. Не использовать р-ровый файл? А что использовать? Р-ры в/в? crying.gif
RAM не хотелось бы использовать, а то при каждой установке/сбросе выполняется аж 5 команд:

str.bitOne=1;

LDI R30, LOW(str)
LDI R31, (str) >> 8
LD R16, Z
ORI R16, 0x01
ST Z, R16

Кто что может посоветовать? IAR только начал изучать. Может есть какие настройки, чтобы избежать подобных ситуаций?

Сообщение отредактировал IF_P - Feb 9 2010, 14:25
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Stanislav_S
сообщение Feb 9 2010, 14:32
Сообщение #2


извечный пессимист
*****

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



Для начала почитайте - AVR035: Efficient C Coding for AVR. Станет немного понятней. Если сильно хотите, то можно использовать регистрв ввода вывода, например регистры таймеров которые не используются, но надо понимать что у АВР нет такого битового пространства как в 51. А лучше все таки почитайте для начала документ.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- IF_P   Использование битовых областей в IAR (ATMega128)   Feb 9 2010, 14:21
- - V_G   Я переходил с 51 на Мегу где-то лет 7-8 назад. Про...   Feb 9 2010, 14:58
- - SergeyTT   Цитата(IF_P @ Feb 9 2010, 16:21) Перешел ...   Feb 9 2010, 16:52
|- - IF_P   Цитата(SergeyTT @ Feb 9 2010, 18:52) Если...   Feb 10 2010, 00:11
||- - alux   Цитата(IF_P @ Feb 10 2010, 04:11) Так что...   Feb 10 2010, 03:33
|- - _Pasha   Цитата(SergeyTT @ Feb 9 2010, 19:52) Мног...   Feb 10 2010, 05:09
|- - IF_P   Цитата(SergeyTT @ Feb 9 2010, 19:52) * Многократно...   Feb 11 2010, 17:08
- - SSerge   Неужели эти несколько тактов так критичны, что Вы ...   Feb 10 2010, 02:09
|- - IF_P   Цитата(SSerge @ Feb 10 2010, 04:09) Неуже...   Feb 10 2010, 11:44
|- - SasaVitebsk   Цитата(IF_P @ Feb 10 2010, 14:44) Так вед...   Feb 10 2010, 20:04
||- - IF_P   Цитата(SasaVitebsk @ Feb 10 2010, 22:04) ...   Feb 11 2010, 10:30
||- - Dog Pawlowa   Цитата(IF_P @ Feb 11 2010, 14:30) для уст...   Feb 11 2010, 11:16
|||- - SasaVitebsk   Цитата(Dog Pawlowa @ Feb 11 2010, 14:16) ...   Feb 11 2010, 22:57
|||- - demiurg_spb   Цитата(Dog Pawlowa @ Feb 11 2010, 14:16) ...   Feb 13 2010, 09:41
||- - _Pasha   Цитата(IF_P @ Feb 11 2010, 13:30) str.bit...   Feb 11 2010, 21:34
|- - _Pasha   Цитата(IF_P @ Feb 10 2010, 15:44) А что к...   Feb 10 2010, 21:39
|- - Сергей Борщ   Цитата(IF_P @ Feb 10 2010, 13:44) Мне уже...   Feb 11 2010, 10:03
|- - IF_P   Цитата(Сергей Борщ @ Feb 11 2010, 12:03) ...   Feb 11 2010, 11:53
|- - Dog Pawlowa   Цитата(IF_P @ Feb 11 2010, 15:53) А если ...   Feb 11 2010, 13:31
|- - IF_P   Цитата(Dog Pawlowa @ Feb 11 2010, 15:31) ...   Feb 11 2010, 15:12
|- - Dog Pawlowa   Цитата(IF_P @ Feb 11 2010, 19:12) Я так п...   Feb 11 2010, 17:59
- - V_G   На ассемблере для регистрового файла есть битовые ...   Feb 10 2010, 06:51
- - Dog Pawlowa   Цитата(IF_P @ Feb 9 2010, 17:21) Кто что ...   Feb 10 2010, 07:18
- - SasaVitebsk   Если у вас такая задача, то кто вам мешает использ...   Feb 11 2010, 21:25


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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 23:46
Рейтинг@Mail.ru


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