Вывод на дисплей сожрал весь ресурс МК

PIC версия программы(разные темы)

Вывод на дисплей сожрал весь ресурс МК

Сообщение milcin68 (Александр) » 13 янв 2020, 20:09

Приветствую участников, я новичок юзаю неделю эту программу.
Написал генератор частоты и скважности и его данные хотел вывести на дисплей 1602,
данные с плавающей точкой.
В программе все работало, но при компиляции ошибка.
Эта операция съела весь ресурс МК PIC16F628.

Далее создал пустой проект с выводом значений так и он не влезает в МК

сообщение компилятора
Код: выделить все
ROM available:2048 words, used:3694 words (180.3%), free:-1646 words (-80.-3%)


архив пробной программы прилагаю.
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: milcin68
Имя: Александр
(Мичуринск)
Заинтересованный
Заинтересованный
Информация о пользователе

Re: Вывод на дисплей сожрал весь ресурс МК

Сообщение Yushik (Андрей) » 14 янв 2020, 07:30

Здравствуйте у вас нету инициализации дисплея перед основным циклом. Пробовал сделать в 8 версии, без переменных вывод String на дисплей слова "Proba" у меня после компиляции занято было 37% памяти МК. Ресурсы памяти программ скорее всего жрут переменные Float и String от этого увы ни куда не денешься. Были где-то на форуме для 5-ых версий ФК пути решений по оптимизации кода, но на значительное уменьшение надеяться не стоит, поищите на форуме.
Аватар пользователя
Ник: Yushik
Имя: Андрей
(Симферополь)
Супер разработчик
Супер разработчик
Информация о пользователе

Re: Вывод на дисплей сожрал весь ресурс МК

Сообщение щербатый (щербатый) » 14 янв 2020, 08:12

milcin68 писал(а):Эта операция съела весь ресурс МК PIC16F628..

Я бы поступил проще...Взял бы перспективный процессор с большими ресурсами. На нем все отладил, и работал с ним и дальше... Но если есть желание работать именно с PIC16F628. То уже потом, отлаженный алгоритм оптимизировал, минимизировал. И с проверенным, рабочим алгоритмом. Продолжил обучение и работу с PIC16F628.

Напомню. Кубики то работают одинаково не только с разными ПИКами, От самых младших, до самых могучих. Но и с АВР аналогично. Дело будет только в необходимых ресурсах процессоров. И их первичной настройке, что не всегда тривиально. При копеечной цене, не вижу необходимости в дополнительных сложностях, и ограничениях (например память, или размер стека) при изучении этой прекрасной программы.
Ник: щербатый
Имя: щербатый
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: Вывод на дисплей сожрал весь ресурс МК

Сообщение milcin68 (Александр) » 16 янв 2020, 01:06

Да, что работают одинаково я знаю, у меня уже есть законченный проект опробованный в железе.
Это по сути должен был быть второй проект, генератор частоты и скважности.
так то, что задумал все вышло, но вывод на дисплей занял всю память.
Поэтому создал чисто вывод на дисплей, для пробы, так он без массива программы не влез куда уж там с генератором.

пробовал засунуть его в 16F883 но и туда он не лезет, хотя у меня есть такой генератор, реализованный в железе написан на ассемблере (не мной).
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: milcin68
Имя: Александр
(Мичуринск)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Вывод на дисплей сожрал весь ресурс МК

Сообщение Yushik (Андрей) » 16 янв 2020, 08:29

Здравствуйте ваша программа уже в корне не правильная, во первых неправильно организована инициализация и очистка дисплея да ещё в обработчике прерывания. Во вторых очень много инструкций в самом обработчике прерывания, так никто не делает, потом это может вылезти боком и привести к коллизиям. Типа обработка прерывания не закончилась, а вызов поступает заново. В обработчике прерывания делают максимально короткие инструкции, поднять один или несколько флагов, пару не сложных вычислений и не больше. Остальное нужно выполнять в основном цикле, сделайте программу по общебазовым принципам, на форуме вся эта информация есть чужие примеры посмотрите. Над размером памяти программ подумаем позже, вряд-ли здесь дисплей виноват у меня из за него размер хекса ни разу большим не был.
Аватар пользователя
Ник: Yushik
Имя: Андрей
(Симферополь)
Супер разработчик
Супер разработчик
Информация о пользователе
Вернуться наверх

Re: Вывод на дисплей сожрал весь ресурс МК

Сообщение milcin68 (Александр) » 16 янв 2020, 08:57

Делал я ее и в цикле программы и в прерывании и в макросе
программа работает и там и там если выкинуть вывод на дисплей то программа компилируется и работает в железе.
как только добавляешь функцию с плавающей точкой,
при расчете частоты нужна именно она так как F= 1/T то память уже заканчивается
или когда добавляешь вывод строки.
Ник: milcin68
Имя: Александр
(Мичуринск)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Вывод на дисплей сожрал весь ресурс МК

Сообщение Yushik (Андрей) » 16 янв 2020, 09:03

Я писал уже причину в первом моём посте, если вы хотите использовать переменные String и Float возьмите МК с минимум 8 Кб а лучше 16 или 32, памяти программ. Такова цена этих типов переменных.
Аватар пользователя
Ник: Yushik
Имя: Андрей
(Симферополь)
Супер разработчик
Супер разработчик
Информация о пользователе
Вернуться наверх

Re: Вывод на дисплей сожрал весь ресурс МК

Сообщение milcin68 (Александр) » 16 янв 2020, 09:16

Та же программа только без расчета и вывода на дисплей.
Код: выделить все
ROM available:4096 words, used:429 words (10.5%), free:3667 words (89.5%)
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: milcin68
Имя: Александр
(Мичуринск)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Вывод на дисплей сожрал весь ресурс МК

Сообщение milcin68 (Александр) » 16 янв 2020, 09:32

Вот программа за циклом прерывания
при компиляции
Код: выделить все
 ROM available:4096 words, used:4282 words (104.5%), free:-186 words (-4.-5%)
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: milcin68
Имя: Александр
(Мичуринск)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Вывод на дисплей сожрал весь ресурс МК

Сообщение milcin68 (Александр) » 16 янв 2020, 09:40

Yushik писал(а):String и Float возьмите МК с минимум 8 Кб а лучше 16 или 32, памяти программ. Такова цена этих типов переменных.
подскажите модели таких контроллеров ?
можно ли как то по другом сделать вывод на дисплей, что бы в калькуляции использовать значения ниже нуля
то есть после вычисления получалось 0,5; 0,1 и т.д
Ник: milcin68
Имя: Александр
(Мичуринск)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

След.

Вернуться в Flowcode PIC

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

cron