[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Пишу что-то вроде
interrupt [ TIMERA0_VECTOR ] void TA0Intr ( void )
{
LPM0_EXIT;
} // TA0Intr
void main()
{
LPM0;
И вот сюда добраться не могу,из LPM0 процессор не выходит.
}
Пытался разобраться. Получается вот что.
В прерывание от таймера попадаю точно, проверял. Но выйти из LPM0 не получается, поскольку макрос LPM0_EXIT сбрасывает соответствующий бит в SR, а при выходе из прерывания SR восстанавливается из стека...
Замкнутый круг, однако, получается. По описанию нужно сбрасывать соответствующий бит в копии SR, лежащей в стеке, но IAR'овцы, похоже, лажанулись...
Или я чего-то не понимаю?
Короче, кто знает, как выйти из LPM0, пользуясь средствами С?
Заранее спасибо.
E-mail: info@telesys.ru