Как войти в режим Sleep для атмега128

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить
fktif7
Родился
Сообщения: 8
Зарегистрирован: Вс июл 17, 2016 10:42:07

Как войти в режим Sleep для атмега128

Сообщение fktif7 »

Добрый день.
В Ардуино IDE подключением менеджера плат МеgаCore, организована поддержка микроконтроллера Атмега128.
В моем скетче есть участок входа микроконтроллера в сон. При попытки компиляции возникает ошибка указывающая на проблему с библиотекой <LowPower.h> . Смена версий среды Ардуино, а также подключаемых других библиотек энергосбережения не приводит к положительному результату. Это как мне кажется означает отсутствие поддержки библиотеками контроллера Атмега128.
Просьба, помогите как решить данную проблему.
Если отключить энергосберегающую библиотеку то Ардуино компилирует скетч и прошивает контроллер который выполняет проектируемую задачу.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Как войти в режим Sleep для атмега128

Сообщение pyzhman »

[uquote="fktif7",url="/forum/viewtopic.php?p=4123016#p4123016"]...означает отсутствие поддержки библиотеками контроллера Атмега128...[/uquote]
Совершенно верно.
Решается задача написанием своей утилиты лапками.
Docendo discimus
fktif7
Родился
Сообщения: 8
Зарегистрирован: Вс июл 17, 2016 10:42:07

Re: Как войти в режим Sleep для атмега128

Сообщение fktif7 »

pyzhman лапками для меня не понятно пока как.
Я так же из Ижевска
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Как войти в режим Sleep для атмега128

Сообщение pyzhman »

Раздел Power Management and Sleep Modes в даташите.
Docendo discimus
fktif7
Родился
Сообщения: 8
Зарегистрирован: Вс июл 17, 2016 10:42:07

Re: Как войти в режим Sleep для атмега128

Сообщение fktif7 »

Все оказалось просто и разжевано на сайте разработчика MegaCore.
в сон Атмега128 и несколько других контроллеров которые не поддерживает библиотека <LowPower.h>
входит так (проверил работает)

void setup()
{
SleepMode(SLEEP_IDLE); // задаете один из 6 режимов сна, синтаксис обезателен
//режим
//SLEEP_IDLE
//SLEEP_ADC
//SLEEP_POWER_DOWN
//SLEEP_POWER_SAVE
//SLEEP_STANDBY
//SLEEP_EXTENDED_STANDBY
}
void loop()
{
IF( переменная==истина)
{sleep ();}
else
{noSleep ();}
{

Выход из сна происходит разными методами, в основном по прерыванию(смотреть датшит) поэтому перед сном надо разрешить прерывания а после выхода запретить.

Заметил что при установки MegaCore в среду Ардуино IDE, необходимость в платах Ардуино отпадает, Достаточно к практическому любому микроконтроллеру подпаять кварц, и разъем для программатора или UART и из среды Ардуино IDE редактировать свой скетч, компилировать и прошивать микроконтроллер не задумываясь об фьюзах. Если применять для этих целей UART, то предварительно прошить программатором загрузчик в микроконтроллер из среды IDE
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Как войти в режим Sleep для атмега128

Сообщение BOB51 »

[uquote="fktif7",url="/forum/viewtopic.php?p=4123603#p4123603"]...
Заметил что при установки MegaCore в среду Ардуино IDE, необходимость в платах Ардуино отпадает, Достаточно к практическому любому микроконтроллеру подпаять кварц, и разъем для программатора или UART и из среды Ардуино IDE редактировать свой скетч, компилировать и прошивать микроконтроллер не задумываясь об фьюзах. Если применять для этих целей UART, то предварительно прошить программатором загрузчик в микроконтроллер из среды IDE[/uquote]
Ошибочное мнение.
1. В случае, когда из группы mcudude установлена только платформа MegaCore будут обслуживаться только МК из перечня данной платформы. (и те, что установлены "по умолчанию" или ранее дополнительно установлены).
2. Фузы в любом случае придется записывать для конкретной комбинации в списке настроек выбранного МК.
Только делается это через ардуиноISP программатор командой "записать бутлоадер" (даже если такового в платформе не предусмотрено). А уже после того можно и сам скотч загружать.

Самодельные платки ардуино на основе АВР в любом случае можно делать самостоятельно - это базовая особенность данной системы.
Однако для расширения номенклатуры МК потребуется добавлять соответствующие платформы, которые данные МК поддерживают.
8)
fktif7
Родился
Сообщения: 8
Зарегистрирован: Вс июл 17, 2016 10:42:07

Re: Как войти в режим Sleep для атмега128

Сообщение fktif7 »

Да я указывал только микроконтроллеры относящиеся к платформе MegaCore , но аналогично подключается платформа MiniCore, MightyCore и еще все Attiny и практически со средой IDE работает любая Атмега. В инструментах для выбранного MK устанавливаете фьюзы и заливайте загрузчик.
Аватара пользователя
Ariadna-on-Line
Это не хвост, это антенна
Сообщения: 1479
Зарегистрирован: Вс май 13, 2012 00:01:54

Re: Как войти в режим Sleep для атмега128

Сообщение Ariadna-on-Line »

Не подскажете как заставить компилятор Ардуино организовать стек во внешней памяти по нужному адресу. То есть служебные байты таймеров, библиотек, прерываний и тд. должны быть там, а не в конце несчастных внутренних 4х килобайт. ДШ проца - позволяет.
Ответить

Вернуться в «Arduino»