Перейти к содержанию

Видеокурс по AVR-микроконтроллерам для начинающих


Рекомендуемые сообщения

9 минут назад, Огонёк сказал:

в чём проявляется?

Как на картинке выше - просто белый экран... Захват экрана делал во время симуляции

Изменено пользователем Криворуков
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Все-таки видимо версия протеуса роль играет... Сейчас скачал с

https://github.com/COKPOWEHEU/n5110/

полностью собранный проект на протеус вместе с прошивками - все равно не работает... Значит либо какие-то "секретные" настройки должны быть для работы, либо версия. Как часто бывают грабли - соберешь проект, на твоем компе работает прекрасно, поставишь на другой - отказывается. Начинаешь разбираться - какая-то DLL на твоем есть, а на другом нет...Причем ты ее даже не устанавливал...  

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1 час назад, snn_krs сказал:

В протеусе должен быть индикатор Nokia 5110 он работал у меня, а 3310 тоже не работал.

Заработало! Спасибо! Видимо таки модель, которую предлагает автор уроков, заточена под конкретно что то одно, либо версию/подверсию протеуса, либо операционки....

Изменено пользователем Криворуков
Ссылка на комментарий
Поделиться на другие сайты

В 20.01.2023 в 18:42, Starichok сказал:

а ты на изображении МК видишь "контакты" для питания?

Левый нижний, AVCC подписан. По-хорошему, в m8 от него питаются PC0-PC3 и вся аналоговая часть. И в Протеусе с некоторыми микросхемами были проблемы если не подать питание на "побочные" ноги.

В 21.01.2023 в 10:30, Криворуков сказал:

Протеус 8 у меня, может из-за версии?

У вас может быть неправильная модель дисплея для Протеуса. Где-то в начале кажется кидали рабочую версию, надо подменить ей файлы где-то в недрах симулятора. Но подробностей не помню.

В 21.01.2023 в 11:07, Огонёк сказал:

Файл n5110.h на компьютере присутствует?

Без него бы вообще не скомпилировалось...

В 21.01.2023 в 12:00, Криворуков сказал:

Еще смущает размер полученного файла с видео и у меня - они разные...

Ничего страшного. Разные настройки ( а их в этой библиотеке полно), разные оптимизации.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, COKPOWEHEU сказал:

Левый нижний, AVCC подписан. По-хорошему, в m8 от него питаются PC0-PC3 и вся аналоговая часть.

вот именно, это для питания аналоговой части, а не основное  питание.

Мудрость приходит вместе с импотенцией...

Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.

Ссылка на комментарий
Поделиться на другие сайты

6 часов назад, COKPOWEHEU сказал:

У вас может быть неправильная модель дисплея для Протеуса. Где-то в начале кажется кидали рабочую версию, надо подменить ей файлы где-то в недрах симулятора. Но подробностей не помню.

Да пока хватает "родных" 5110 и 3310 оба работают... А по поводу обсуждаемой библиотеки и модели - у автора уроков видно, что выводится водяной знак - надпись типа "демо версия", точно не помню. Возможно здесь собачка и зарыта - ограничения, которые в более ранних версиях протеуса (у автора уроков по видимому 7 версия на то время была) прокатывали, в 8 уже нет.

6 часов назад, COKPOWEHEU сказал:

Ничего страшного. Разные настройки ( а их в этой библиотеке полно), разные оптимизации.

Хотел разбираться сам, но пользуясь случаем спрошу: допустим я компилирую чистый проект, получается размер 104 байта с подключенными, например, avr/io.h и util/delay.h, как только подключаю n5110.с сразу размер до 2810 возрастает. Это возможно избежать?      

Ссылка на комментарий
Поделиться на другие сайты

18 часов назад, Starichok сказал:

это для питания аналоговой части, а не основное  питание.

Повторяю: для каких-то моделей микросхем в Протеусе это было важно, и часто труднонаходимая ошибка была именно в этом.

13 часов назад, Криворуков сказал:

как только подключаю n5110.с сразу размер до 2810 возрастает. Это возможно избежать?      

2810 как-то многовато, должно быть около 500 байт. Столько занимает буфер кадра. При желании вы можете переписать библиотеку без него, с соответствующими ограничениями. В порядке фантазии: может, вы случайно забыли отключить работу с дробными числами. Хотя даже это не должно так влиять.

Какую версию библиотеки вы используете?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

12 минут назад, COKPOWEHEU сказал:

В порядке фантазии: может, вы случайно забыли отключить работу с дробными числами.

Я не об этом. Когда подключаются штатные библиотеки и нет вызова функций, размер занимаемой памяти не растет. Он увеличивается по мере вызова функций (как я понимаю). То есть библиотека подключена, но ее код не включается в выходной файл пока не будет востребован. А в случае подключения n5110.с размер выходного файла растет, даже если не вызвана не одна из функций данного модуля....  

24 минуты назад, COKPOWEHEU сказал:

Какую версию библиотеки вы используете?

В описании версии нет. По дате от 17.04.2014 LCD_5110.zip

Ссылка на комментарий
Поделиться на другие сайты

49 минут назад, Криворуков сказал:

Я не об этом. Когда подключаются штатные библиотеки и нет вызова функций, размер занимаемой памяти не растет. Он увеличивается по мере вызова функций (как я понимаю).

Вы про флеш или про оперативку?

Вообще, если оптимизация отключена, то библиотека встраивается как есть, все функции. Если же оптимизация (и еще некоторые ключи) включена, то неиспользуемые функции могут быть выкинуты, соответственно размер прошивки будет меньше.

А вот по оперативке единственное место, где она используется, это буфер кадра (84х48 / 8 = 504 байта).

Правда, еще память (что ПЗУ, что ОЗУ) может выделяться для функций из стандартной библиотеки - деление, работа с дробными числами и т.д.

52 минуты назад, Криворуков сказал:

В описании версии нет. По дате от 17.04.2014 LCD_5110.zip

Кажется, это далеко не последняя версия. Скажем, в моем репозитории последнее обновление датировано 2018 годом. Правда, я не помню, что именно там исправлял.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, COKPOWEHEU сказал:

Вы про флеш или про оперативку?

Да, трудно мне переключиться с архитектуры РС на гарвардскую, особенно на языке высокого уровня, как то постоянно забываешь об этом. Про флеш. В общем скомпилировал  n5110.с в статическую библиотеку. Теперь, если нет вызова функций, ничего не включается в код.   Но при вызове LCD_init() сразу размер 2800...  n5110.с скачал по вашей ссылке. Да, версия 26-02-2018.

 

1 час назад, COKPOWEHEU сказал:

Если же оптимизация (и еще некоторые ключи) включена, то неиспользуемые функции могут быть выкинуты

А что за ключи? Вот в CodeBlocks, там все опции развернуто описаны, поэтому попроще получается. А здесь пока ничего не нашел... 

CodeBlock.png

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Криворуков сказал:

Про флеш. <...> при вызове LCD_init() сразу размер 2800...

Тогда нормально. Там на самом деле много лишнего реализовано, взять хотя бы рисование линий или кругов. Но это было в исходной версии, которую мне пришлось допиливать, поэтому выкидывать не стал. Ну и таблица символов тоже порядочно места занимает. Если брать полную CP1251, то 1280 байт она одна занимает. А если только латиницу (за это отвечает макроконстанта FULL_CP1251_TABLE), то ~500 байт.

По-хорошему, эта библиотека скорее годится для чего-то вроде таких уроков, чем для реального применения. Собственно, для реального применения, как я уже говорил, лучше бы ее переписать: избавиться от буфера кадра и ненужных функций.

2 часа назад, Криворуков сказал:

А что за ключи? Вот в CodeBlocks

Точное название ключей я не помню, вроде бы -fdata-sections -ffunction-sections и еще что-то. Как оно выглядит в CodeBlocks или любой другой IDE я не знаю.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

  • 11 месяцев спустя...

Приветствую всех! Всех с новым годом!!! Желаю всем побед и спокойствия.

Как я и говорил я только в самом начале пути изучения МК.
Камень аtmega 128, дисплей nokia 5510

Условно есть переменная и с ней происходят изменения. Как сделать так что бы она выводилась на дисплей в новой строке с сохранением прошлого результата на предыдущей. А после 6 строки(это максимум что лезет на дисплей), начинало скролится содержимое?
Я написал цикл. Строка меняется, но предыдущая строка затирается. Если убрать очистку дисплея, предыдущее содержимое остается, но получается эффект не скрола, а затирание построчно. Хочется получить прокрутку, наподобие как в меню, когда листаешь вниз.

Спойлер
int main(void)
{
    displey_start(); // Запуск дисплея
    
    while (1)
    {
        int stroka; // Переменная для указания дисплею номера строки
        int d; // переменная которая выводится с итерацией

        if (d‹99999) d++;
        if (d++) stroka++;
        if(stroka›=6) stroka=0;
        
        
        // создание буфера для переменной d  и вывод на дисплей
        Lcd_clear();
        char buff[20];
        itoa(d, buff, 10);
        Lcd_print(0, stroka, FONT_1X,(unsigned char *)buff);
        Lcd_update();
        _delay_ms(200);

    }
} 

 

 

Изменено пользователем devil_byte
Ссылка на комментарий
Поделиться на другие сайты

Это зачем такое?

if (d99999) d++;
if (d++) stroka++;

 

1 час назад, devil_byte сказал:

Хочется получить прокрутку,

Ищи команду сдвига дисплея. Либо перерисовывай весь дисплей сверху до низу.

char buff[20];

вынеси в начало программы, за пределы цикла.

Ссылка на комментарий
Поделиться на другие сайты

 Огонёк

19 минут назад, Огонёк сказал:

Это зачем такое?

Я написал что это просто переменная. она вставлена для примера. 

И за пределы какого цикла? вы о чем, она и так в мэйне. и ее перенос ничего не даст. буфер будет создан в любом случае. Я и так написал о том что, если убрать Lcd_update();, то просто будет оставаться прошлое содержимое, и дальше затираться сверху вниз. Команды сдвига в библиотеке которая тут приложена нет.

Ссылка на комментарий
Поделиться на другие сайты

30 минут назад, devil_byte сказал:

это просто переменная. она вставлена для примера. 

Это не просто переменная, это целых две строки кода, которые выглядят странно.

30 минут назад, devil_byte сказал:

И за пределы какого цикла?

За пределы while(). Зачем объявлять буфер каждый раз?

30 минут назад, devil_byte сказал:

Команды сдвига в библиотеке которая тут приложена нет.

Значит по достижению нижней строчки придётся перерисовывать весь экран.

Изменено пользователем Огонёк
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...