Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Регистр STATUS_PMIC в хмеге
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
zombi
Из за наличия многоуровневых прерываний в Хмеге столкнулся с проблемой инициализации контроллера прерываний.
Приоритет HI имеет всего одно прерывание (пропадание питания) по нему нужно уйти в слип.
Поскольку и MED и LO прерывания тоже имеются и заканчивать их в случае пропадания питания нет необходимости а регистр статуса
необходимо сбросить то мне пришлось нагородить вот такой код.
Гляньте Ув. знатоки. Не перемудрил ли я , может можно проще?
Код
INT_TO_SLEEP:
    cli
    lds    RA,(PMIC_STATUS)
    sbrs    RA,PMIC_MEDLVLEX_bp
    rjmp    END1
    ldi    RA, LOW(END1)
    push    RA
    ldi    RA,HIGH(END1)
    push    RA
    reti
END1:    
    lds    RA,(PMIC_STATUS)
    sbrs    RA,PMIC_LOLVLEX_bp
    rjmp    END2
    ldi    RA, LOW(END2)
    push    RA
    ldi    RA,HIGH(END2)
    push    RA
    reti
END2:    
    ldi    RA, LOW(SLEP)
    push    RA
    ldi    RA,HIGH(SLEP)
    push    RA
    reti

SLEP:    
    sei
    SLEEP
    cli
...
zombi
Поскольку возражений нет, я понимаю что это единственный способ.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.