Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Помогите я запарился прям руки опускаются. Atmel Studio 7 не работают точки останова и все тут. Код простой на картинке. Почему не хочет останавливаться? Оптимизатор выключен. Причем в мануале начиная с 66 страницы типа все должно работать
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
vitaminkvl, где то пробегало, что в пути к проекту не должно быть кириллических символов
Проект по короткому пути "D:\AVR_project\Test_LEDS" уже студию переставил именно на ATMEL Studio 7, таже фигня не хочет останавливаться хоть на каждой строчке брекпоинты ставь. Уже все перепробовал все что нагуглил.
В видеоинструкции от Atmel в симуляторе спокойно ставят точки и они работают. Че студия от меня хочет не пойму.
Добавлено after 2 hours 14 minutes 23 seconds: Заработало, я на это потратил 2а дня оставлю другим на заметку. Действительно виноваты русские буквы в пути до проекта. Но прочитав о том что такое может быть я папку с проектом перенес так чтоб путь был латиницей и все равно брекпоинты НЕ работали !!! ПРОЕКТ НАДО СОЗДАВАТЬ ЗАНОВО ЧТОБ ОН СРАЗУ БЫЛ ПО ПУТИ ЛАТИНИЦЕЙ!!!!
Народ помогите разобраться, до фунции mein обьявлен массив buffer заполненный сразу. Останавливаю дебагер на первой строчке, никаких изменений buffer не произвожу еще. Но дебагер показывает какуюто чушь в этом массиве buffer, а не то что заказывал. Элемент массива с индексом 0 должен быть 0xFF а дебагер кажет 0х12 и тд. Что не так?
Уперся в непонимание следующего , до функции main объявлены пару массивов один короткий mychar и один большой MYbuffer на 1024 байта они сразу заполнены тут привел кусок большого массива чтоб покороче сообщение было.
Массив Mychar попадает в ОЗУ читается начиная с адреса 0x0060 и обращение к массиву mychar[3] возвращает 0x46 что соответсвует букве F как и положено.
А вот большой массив MYbuffer не понимаю куда он попадает , и почему MYbuffer[0] и MYbuffer[1] возвращает чтото начина с адреса 0x0000 из памяти PROG FLASH, а там лежит чтото другое тоесть MYbuffer[0] должен возвращать 0xFF а прилетает 0х12 MYbuffer[1] должен возвращать 0x01 а прилетает 0хс0
Atmega8, массив будет постоянно меняться , мне бы вообще понять почему рядом обьявленные массивы попадают в разные места . я не могу достучаться до большого массива, при компилировании ошибок нет.
vitaminkvl, Вообще странно... Атмега 8 - это всего 1024 байта ОЗУ. А у вас туда помещается и массив в 1024 байта, и рядом объявленные массивы... И компилятор не ругается.... ? А ведь еще где то надо стек положить.....
Оптимизатор есть, попытался уменьшить объем памяти (и ему это удалось ... по-своему). Выключите, или с помощью volatile к данным.
Но наверняка будет другая проблема: данные не собираются в памяти . А потом вперед, к другим МК. Или оптимизировать данные - напр. с "есть повторяющиеся данные, почему записаны в нескольких местах одинаковые?".
vitaminkvl, Вообще странно... Атмега 8 - это всего 1024 байта ОЗУ. А у вас туда помещается и массив в 1024 байта, и рядом объявленные массивы... И компилятор не ругается.... ? А ведь еще где то надо стек положить.....
Да действительно это мое непонимание того что надо следить за заполнением памяти. И да компилятор ничего не говорит если включен оптимизатор.
Вообще странно, что при объявлении статических переменных объемом, превышающим доступное ОЗУ, компилятор не ругается. Вот попробовала, пустой проект , седьмая студия, настройки проекта по умолчанию, оптимизация О1 Массив 1025 байт.
Код:
#include <avr/io.h>
uint8_t arr[1025] = { 0x00 };
int main(void) {
for (uint16_t i = 0; i<1025; i++) arr[i] = i & 0xFF; while (1) { } }
Error Program Memory Usage : 100 bytes 1,2 % Full Data Memory Usage : 1025 bytes 100,1 % Full (Memory Overflow) dummy8a dummy8a 0
Добавлено after 9 minutes 28 seconds: Попробовала при объявленном массиве в 1024 байта объявить в функции локальный массив в 100 байт и попробовать посмотреть на выполнение в отладчике студии. При оптимизации О0 и О1 проект собирается. При выполнении: Заполняется в ОЗУ массив 1024 байта. А потом, поскольку локальные переменные живут на стеке - начал заполняться этот временный массив данными, затирая верхнюю часть объявленного массива. Так что за объемом памяти надо следить самостоятельно. И помнить, сколько ОЗУ в МК и сколько нужно программисту.
Скетч использует 98 байт (1%) памяти устройства. Всего доступно 7680 байт. Глобальные переменные используют 1025 байт (100%) динамической памяти, оставляя -1 байт для локальных переменных. Максимум: 1024 байт.data section exceeds available space in board
Not enough memory; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing your footprint. Ошибка компиляции для платы ATmega8.
PIC16F1829 в CCS с тем же кодом:
Код:
Compiling C:\Users\aaa\Desktop\blink\main on 25-äåê-22 at 23:49 *** Error 74 "C:\Users\aaa\Desktop\blink\main.c" Line 24(1,2): Not enough RAM for all variables 1 Errors, 0 Warnings. Build Failed.
--- С уменьшением данных: MiniCore с уменьшенным стеком предупреждает, что могут быть конфликты, CCS в том же случае не позволяет: Not enough RAM for all variables
Последний раз редактировалось veso74 Пн дек 26, 2022 01:14:04, всего редактировалось 1 раз.
Скетч использует 220 байт (2%) памяти устройства. Всего доступно 7680 байт. Глобальные переменные используют 1024 байт (100%) динамической памяти, оставляя 0 байт для локальных переменных. Максимум: 1024 байт. Недостаточно памяти, программа может работать нестабильно.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 46
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения