Страница 3 из 3
Re: Кто сможет подправить прошивку ( сегментник с ОА на ОК )
Добавлено: Вт фев 25, 2014 13:56:40
WiseLord
В общем, даже и не знаю чем ещё помочь...
Судя по дизассемблированному коду, он рассчитан на OA. Судя по исходникам от автора - код как будто пытались переписать для ОК, но где-то на полпути забросили. Поэтому не факт, что он заработает и с ОА.
Сильно вникать в исходники, запуская Codevision под wine или virtualbox, нет никакого желания, не имея на руках устройства. Код написан, имхо, кошмарно. Куча глобальных переменных. Всё завязано на конкретные пины. Файлы *.h на самом деле не заголовки, а код.
Я попытался портировать такое на нормальный C (для avr-gcc, он же WinAVR). Ввиду обилия тех же глобальных переменных пришлось всё держать в один файле. Код в итоге скопилировался, но будет работать или нет - без понятия. Скорее, нет.
Могу только посоветовать поставить Codevision и попробовать самому править исходники. Имея на руках устройство, можно надеяться, что за несколько итераций что-то да получится. В основном, всё будет сводиться к правке битов на портах в файлах main.c и 7segment.h. Даже не нужно знать C, достаточно иметь немного общего здравомыслия.
Re: Кто сможет подправить прошивку ( сегментник с ОА на ОК )
Добавлено: Вт фев 25, 2014 14:00:46
ewrey
Жаль конечно что тут всё так запущено... И времени я у Вас отнял наверное не мало...

Re: Кто сможет подправить прошивку ( сегментник с ОА на ОК )
Добавлено: Ср фев 26, 2014 23:27:16
WiseLord
Таки потратил пару часов и спаял на макетке МК с индикатором.
Держите нормальный рабочий (как минимум, в плане отображения символов для индикатора с ОК) вариант.
Re: Кто сможет подправить прошивку ( сегментник с ОА на ОК )
Добавлено: Чт фев 27, 2014 06:37:28
ewrey
Опять не пошло...

При включении загораются 000, как и положено. Потом, должно отображаться Cur, но вместо этого
888 Причём, какие то сегменты горят чуть ярче, а какие то темнее, но что конкретно горит в этих 888 не угадать. Ну и забыл сказать, что сегменты слегка помаргивают. Может у меня индикатор каой тормозной или наоборот быстрее? Или с диодными такого не бывает?
Ну ещё можно предположить что у автора есть расхождения схемы и печатки, прошивка может сделана по печатке уже. Нада проверить. Сейчас действительно странно, У Вас же было правильное отображение всех режимов?
Re: Кто сможет подправить прошивку ( сегментник с ОА на ОК )
Добавлено: Чт фев 27, 2014 08:15:28
WiseLord
Не знаю, что у Вас там не пошло. Объясню, как это работает у меня . Собрано по Вашей переделанной схеме, с транзисторами n-p-n, эмиттерами подключенными к земле. Индикатор GNT-5631AS-21.
Включаю, зажав предварительно кнопку. Вижу на дисплее CAL, потом число 450. Дальнейшие нажатия кнопки увеличивают число.
Выключаю, включаю. Вижу число 130. Дальнейшие нажатия увеличивают число.
Выключаю, включаю. Вижу число 020. Дальнейшие нажатия увеличивают число.
Выключаю, включаю. Вижу число 000. Нажатие кнопки показывает напряжение питания в вольтах.
Выключаю, включаю. Вижу сменяющуюся надпись Cur-000, нажатия кнопки меняет последовательно Cur-020, Cur-130, Cur-450.
По крайней мере так это работает у меня, без операционника и батарей.
Может, Вы отключили транзисторы (для другой прошивки), и Вместо Cur имеете наложение букв друг на друга?
Прошиты hex и eep из архива, Fuse-биты: lfuse=0x24, hfuse=0xCF, как указано у автора в архиве с прошивкой в статье.
P.S. Вот такой кошмар набросал ради проверки:

Re: Кто сможет подправить прошивку ( сегментник с ОА на ОК )
Добавлено: Чт фев 27, 2014 08:27:37
ewrey
Странно блин. Картинку фуз битв можете выложить? А то у меня понипрог. Транзисторы стоят, да. Индикатор E30361-L-O-8-W
П.С. а у меня получается p-n-p транзисторы. Щас заменю
Re: Кто сможет подправить прошивку ( сегментник с ОА на ОК )
Добавлено: Чт фев 27, 2014 08:39:35
WiseLord
Вот вам картинка:
Выставляйте lfuse=0x24 и hfuse=0xCF на
http://www.engbedded.com/fusecalc и смотрите на чекбоксы, сравнивайте.
П.С. а у меня получается p-n-p транзисторы. Щас заменю
Так что же, вы меня тут дурили
две страницы? Сами дали ссылку на
свою схему, в которой n-p-n, а поставили p-n-p.
В этом случае "правильно" будет отображаться только тогда, когда все три цифры одинаковые. Иначе, вместо загорания символа на нужной позиции он будет загораться на двух остальных, в результате при развёртке это смешается в кашу.
Код: Выделить всё
______________
1 => 1 1
2 => 2 2
3 => 3 3
______________
1 2 3 => ? ? ?
Сейчас и видео работы подгрузится:
http://youtu.be/lExjJ59B-cA
Re: Кто сможет подправить прошивку ( сегментник с ОА на ОК )
Добавлено: Чт фев 27, 2014 09:07:22
ewrey
Щас всё заробило после замены транзисторов. Правда вроде стала тормозная реакция на кнопку в режиме калибровки.
Re: Кто сможет подправить прошивку ( сегментник с ОА на ОК )
Добавлено: Чт фев 27, 2014 11:50:18
WiseLord
В общем, как я понял, вопрос можно считать закрытым.
Поигрался с макеткой. Понравилось. Подумал, что, может быть, и для себя когда-нибудь соберу, так что положил переделанный код к себе в архив...