Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SFR в IAR'e
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
AlexNN
Уважаемые!
Проблема:
Mega162. Задумался по поводу экономии памяти. Объявил свой SFR в Extended IO.
Дебаггер всё рисует как хотелось.
НО НЕ РАБОТАЕТ В ПРОЦЕ!
Проверяю бит SFR'a в подпрограмме. Есть подозрение, что чего-то недописал. В смысле, в объявлении.
Или ещё где (в другом месте) собака порылась?
VladimirYU
Цитата(AlexNN @ Dec 14 2007, 11:57) *
Уважаемые!
Проблема:
Mega162. Задумался по поводу экономии памяти. Объявил свой SFR в Extended IO.
Дебаггер всё рисует как хотелось.
НО НЕ РАБОТАЕТ В ПРОЦЕ!
Проверяю бит SFR'a в подпрограмме. Есть подозрение, что чего-то недописал. В смысле, в объявлении.
Или ещё где (в другом месте) собака порылась?


Про AVR не уверен, но в MCS51 свободные адреса в области SFR физически не существуют, поэтому в отладчике все кучеряво, а на железе, сам понимаешь :-)
AlexNN
Цитата(VladimirYU @ Dec 14 2007, 12:07) *
Про AVR не уверен, но в MCS51 свободные адреса в области SFR физически не существуют, поэтому в отладчике все кучеряво, а на железе, сам понимаешь :-)

В том-то и дело, что там целая куча свободной памяти. Правда, только в описании на Мегу. cool.gif
IgorKossak
SFR в Extended IO обрабатывается так же, как и переменная с атрибутами __no_init volatile.
В чём смысл обьявления SFR вместо переменной? Но это уже другой вопрос.
По существу. Листинг пробовали смотреть?
singlskv
Цитата(=AVR= @ Dec 14 2007, 19:09) *
О да, да - их можно наобъявлять сколько угодно.
Конечно насчет мега162 Вы правы,
но вот например у меги48/88/168 есть:
6.5.1 General Purpose I/O Registers
The ATmega48/88/168 contains three General Purpose I/O Registers. These registers can be
used for storing any information, and they are particularly useful for storing global variables and
Status Flags. General Purpose I/O Registers within the address range 0x00 - 0x1F are directly
bit-accessible using the SBI, CBI, SBIS, and SBIC instructions.


Так что 3 байта памяти дополнительные есть biggrin.gif
fmdost
Цитата(=AVR= @ Dec 14 2007, 19:52) *
Про имеющиеся SFR речи не было. Юное программическое дарование наковыряло "целую кучу свободной памяти"

Тов. АВР. Добрее надо быть. Сам знаеш какие в даташитах бывают "шедевры"
Нормальный дебагер, тот с которого Я начинал, ругался если производишь запись в несуществующие регистры (msc51 какой то венгерский досовский). АВРстудио обрабатывает SFR как обычный дамп памяти. Ктож знал что аврстудио такая фигня!
AlexNN В микроконтроллерах, да наверное и других микросхемах, если региср не используется, то и отсутствует. В нормальных даташитах написано, "чтение из этих адресов даёт непредсказуемые данные"
fmdost
[CENSORED]AVRстудио просто обязан правильно отображать работату железа.
Сейчас сижу пытаюсь симулировать работу прерывания от компаратора, не работает если меняешь бит ACO, приходится ещё ACI крутить. Мелочь, а неприятно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.