Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Status Register
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Grigorij
Вопрос наверное немного глупый, но все же. Возможно ли на СИ добраться до содержимого Status Register?

Сразу отвечу зачем мне это надо. Имеем следующую ф-цию (используется для MSP430F2131):

Код
void Name(void)
{
     __disable_interrupt();

     //здесь делаем что-либо
    
     //необходимо восстановить значение бита GIE, которое было до захода
     //в ф-цию
}


Конечно возможно решение в лоб. Ввести глобальную переменную, например, char _gie, которая будет соответствовать состоянию бита GIE. Однако решение, по моему, через чур грубое.
VAI
Если используете ИАР:
загляните в файл "....\430\inc\intrinsics.h"

Код
int myfunk( .... )
{
.......
istate_t i;

    i = __get_interrupt_state();                                  // сохраним статус прерываний
    __disable_interrupt();                                        // Запретим прерывания
......
......
      __set_interrupt_state( i );                                 // востановим статус прерываний
......
......
}
diper
Код
__monitor void func (void)
{
...
}
Конечно если компилятор поддерживает...
Grigorij
Цитата(VAI @ Jan 29 2008, 11:58) *
Если используете ИАР:
загляните в файл "....\430\inc\intrinsics.h"

Код
int myfunk( .... )
{
.......
istate_t i;

    i = __get_interrupt_state();                                  // сохраним статус прерываний
    __disable_interrupt();                                        // Запретим прерывания
......
......
      __set_interrupt_state( i );                                 // востановим статус прерываний
......
......
}


Спасибо. То что надо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.