Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Опа, во что напоролся в IAR AVR 5.3 [+]

Отправлено MegaJohn (81.222.85.88) 22 июля 2010, г. 11:21



#define WATCHDOG_DISABLE { MCU_REG &= ~(1 << WDRF); WDT_REG |= (1 << WDCE) | (1 << WDE); WDT_REG = 0; }

////////////////////////////////////////////////////////////////////////////////
int main( void )
{
WATCHDOG_DISABLE; // эквивалентно

...
бла-бла-бла
...

WATCHDOG_RESET;
WDT_REG |= (1 << WDCE) | (1 << WDE);
WDT_REG = (1 << WDE) | (1 << WDP3) | (1 << WDP0);
}


иар решил сэкономить один байт и оформил запись бита WDCE как подрограмму

ну и получилось что в отведенные аппаратных четыре такта из-за появившегося RET не вмещаемся.

Какой прагмой отключить на выбраном куске программы оптимизацию ? (сейчас стоит High-Speed)


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 76:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru