Добрый день.
В Ардуино IDE подключением менеджера плат МеgаCore, организована поддержка микроконтроллера Атмега128.
В моем скетче есть участок входа микроконтроллера в сон. При попытки компиляции возникает ошибка указывающая на проблему с библиотекой <LowPower.h> . Смена версий среды Ардуино, а также подключаемых других библиотек энергосбережения не приводит к положительному результату. Это как мне кажется означает отсутствие поддержки библиотеками контроллера Атмега128.
Просьба, помогите как решить данную проблему.
Если отключить энергосберегающую библиотеку то Ардуино компилирует скетч и прошивает контроллер который выполняет проектируемую задачу.
Как войти в режим Sleep для атмега128
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Как войти в режим Sleep для атмега128
[uquote="fktif7",url="/forum/viewtopic.php?p=4123016#p4123016"]...означает отсутствие поддержки библиотеками контроллера Атмега128...[/uquote]
Совершенно верно.
Решается задача написанием своей утилиты лапками.
Совершенно верно.
Решается задача написанием своей утилиты лапками.
Docendo discimus
Re: Как войти в режим Sleep для атмега128
pyzhman лапками для меня не понятно пока как.
Я так же из Ижевска
Я так же из Ижевска
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Как войти в режим Sleep для атмега128
Раздел Power Management and Sleep Modes в даташите.
Docendo discimus
Re: Как войти в режим Sleep для атмега128
Все оказалось просто и разжевано на сайте разработчика 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
в сон Атмега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
Re: Как войти в режим Sleep для атмега128
[uquote="fktif7",url="/forum/viewtopic.php?p=4123603#p4123603"]...
Заметил что при установки MegaCore в среду Ардуино IDE, необходимость в платах Ардуино отпадает, Достаточно к практическому любому микроконтроллеру подпаять кварц, и разъем для программатора или UART и из среды Ардуино IDE редактировать свой скетч, компилировать и прошивать микроконтроллер не задумываясь об фьюзах. Если применять для этих целей UART, то предварительно прошить программатором загрузчик в микроконтроллер из среды IDE[/uquote]
Ошибочное мнение.
1. В случае, когда из группы mcudude установлена только платформа MegaCore будут обслуживаться только МК из перечня данной платформы. (и те, что установлены "по умолчанию" или ранее дополнительно установлены).
2. Фузы в любом случае придется записывать для конкретной комбинации в списке настроек выбранного МК.
Только делается это через ардуиноISP программатор командой "записать бутлоадер" (даже если такового в платформе не предусмотрено). А уже после того можно и сам скотч загружать.
Самодельные платки ардуино на основе АВР в любом случае можно делать самостоятельно - это базовая особенность данной системы.
Однако для расширения номенклатуры МК потребуется добавлять соответствующие платформы, которые данные МК поддерживают.

Заметил что при установки MegaCore в среду Ардуино IDE, необходимость в платах Ардуино отпадает, Достаточно к практическому любому микроконтроллеру подпаять кварц, и разъем для программатора или UART и из среды Ардуино IDE редактировать свой скетч, компилировать и прошивать микроконтроллер не задумываясь об фьюзах. Если применять для этих целей UART, то предварительно прошить программатором загрузчик в микроконтроллер из среды IDE[/uquote]
Ошибочное мнение.
1. В случае, когда из группы mcudude установлена только платформа MegaCore будут обслуживаться только МК из перечня данной платформы. (и те, что установлены "по умолчанию" или ранее дополнительно установлены).
2. Фузы в любом случае придется записывать для конкретной комбинации в списке настроек выбранного МК.
Только делается это через ардуиноISP программатор командой "записать бутлоадер" (даже если такового в платформе не предусмотрено). А уже после того можно и сам скотч загружать.
Самодельные платки ардуино на основе АВР в любом случае можно делать самостоятельно - это базовая особенность данной системы.
Однако для расширения номенклатуры МК потребуется добавлять соответствующие платформы, которые данные МК поддерживают.
Re: Как войти в режим Sleep для атмега128
Да я указывал только микроконтроллеры относящиеся к платформе MegaCore , но аналогично подключается платформа MiniCore, MightyCore и еще все Attiny и практически со средой IDE работает любая Атмега. В инструментах для выбранного MK устанавливаете фьюзы и заливайте загрузчик.
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: Как войти в режим Sleep для атмега128
Не подскажете как заставить компилятор Ардуино организовать стек во внешней памяти по нужному адресу. То есть служебные байты таймеров, библиотек, прерываний и тд. должны быть там, а не в конце несчастных внутренних 4х килобайт. ДШ проца - позволяет.