Возник вопрос про то, какие прерывания могут пробудить АВРку из самого глубокой спячки. Вопрос одинаково применим ко всем АВРкам (для иллюстрации посмотрите любой ДШ).
С одной стороны, в даташите явно перечислены эти прерывания. В частности, эти прерывания могут пробуждать: (1)INT0 low level interrupt (2)Pin Change Interrupt
а это прерывание не может: (3)INT0 triggering interrupt
С другой стороны, указывается, что Power-down режиме отключены ВСЕ КЛОКИ, поэтому сработать могут только асинхронно обрабатываемые прерывания.
Вот, пытаюсь понять, как увязать всё это в одну логическую картину. В том же разделе, рядом приводится блок-схема обработки (2)Pin Change Interrupt (найдите эту блок-схему и убедитесь сами). Из неё ясно видно, что там ТРЕБУЕТСЯ КЛОК. Тогда как (2) может пробуждать из Power-down спячки? Более того, чем принципиально (3) отличается от (2), их хардварное детектирование по сути абсолютно одинаково, почему же одно из них пробуждает, а другое нет?
P.S. Навероне, при проверке на живом МК всё окажется именно так, как написано в ДШ - (1),(2) пробуждают, (3) не пробуждает. Я хочу понять ПОЧЕМУ это именно так. Откуда берётся клок для детектирования (2) и почему (2) отличается от (3) ?
|