У меня есть PIC18F87J11 с MPLAB C18. Я пытаюсь ограничить потребление батареи устройством, вынудив его заснуть. Я заметил, что при входе в спящий режим timer0 перестает подсчитываться до пробуждения. Также единственный метод, который я знаю, чтобы разбудить устройство, - это когда он получает сообщение от другого узла, так как у меня есть трансивер MRF89XA.Таймер не рассчитывает на спящий режим с PIC18F?
Чтобы перевести свое устройство в режим сна, я просто назвал его этой функцией, которая определена в заголовочном файле компилятора.
Sleep();
Q1: Как я могу просыпаться, кроме как получая сообщение с какого-либо узла? В DataSheet сказано, что EXIT BY INTERRUPT или EXIT BY RESET, но как вы это делаете, если нет таймера?
Прочитав DataSheet, он заявил, что Timer1 должен использоваться, чтобы контролировать время, действительно ли это так?
Все, что я действительно хочу, это максимально снизить потребление батареи и сохранить работу таймера в режиме ожидания.
Спасибо!
Вы ответили на мой вопрос, что мне нужно Timer1, но я не полностью понимаю ваш ответ. Как в чем разница между timer0 и timer1? Какой из них более точным? Также как вы устанавливаете IDLEN в '1'? Как и где именно в коде? Эти мелочи действительно путают меня, это не ваша вина, я не очень понимаю, как настраивать контакты. Если вы можете объяснить немного дальше, это было бы хорошо. Благодаря! – Ammar
Устройство имеет пять модулей таймера. Оба Timer0 и Timer1 способны к 16-разрядной точности. Timer0 может быть настроен для работы в 8-битном или 16-битном режиме. Timer1 - это 16-разрядный таймер. Изучите таблицу, чтобы узнать о других различиях. – mizo
У меня есть Timer0, работающий отлично без спящего режима, если бы я должен был реализовать timer1, что было бы основным для изменения кода? – Ammar