Обсуждаем контроллеры компании Atmel.
Ответить

Помогите подправить прошивку

Сб авг 12, 2017 17:27:21

Здравствуйте!
Есть небольшой вопрос :? . Собрал я одному хорошему человеку часы-термометр, работает отлично, но есть небольшой дефект в программе: неправильно отражается режим «Рост температуры».
В режиме «Снижение температуры» мигают сегменты F и G (стрелка вниз), а при росте температуры мигают сегменты С и D, хотя, по логике, должны мигать сегменты А и В (стрелка вверх). Обратился к автору конструкции, он разбираться с этим отказался, ссылаясь на нехватку времени. Я, увы, не силён в программировании, может-быть кто-то сможет подправить прошивку. Или хотя-бы укажите, куда копать. Все материалы в архиве, использован индикатор ОА. Заранее благодарен
Вложения
Часы-термометр для дома.rar
(205.88 KiB) Скачиваний: 238

Re: Помогите подправить прошивку

Сб авг 12, 2017 19:52:17

Я смогу.

Re: Помогите подправить прошивку

Пт авг 25, 2017 08:55:51

Здравствуйте, уважаемые форумчане!
Есть идеи?

Re: Помогите подправить прошивку

Пт авг 25, 2017 10:01:15

в файле HomeWath.asm
строки 744 и 746 (менять значения после $)
ну и потом пересобрать прошивку

Добавлено after 56 seconds:
просто раз пообещали помочь, то я и не лезу

Добавлено after 20 minutes 7 seconds:
в протеусе куда не кручу - всё CD мигают.

Re: Помогите подправить прошивку

Пт авг 25, 2017 10:02:01

F и G нигде не зажигаются.
в одном случае зажигаются C и D - код $0C,
в другом - A и B - код $03.
в файле HomeWath.asm найдите кусок кода:
Код:
       SBRC  RegFlags1,F_TH_Up
       LDI   R30,$0C
       SBRC  RegFlags1,F_TH_Down
       LDI   R30,$03
исправьте на нужный код и перекомпилируйте. если не умеете - скажите какой символ на какой поменять.
Изображение - $0C - здесь имеется ввиду, что график темперуты идет снизу вверх
Изображение - $03 - здесь наоборот, это не стрелки
Вложения
p.png
(2.67 KiB) Скачиваний: 770
m.png
(2.65 KiB) Скачиваний: 737

Re: Помогите подправить прошивку

Пт авг 25, 2017 10:31:51

Что-то я запутался совсем. Давайте сначала: График температуры идёт снизу вверх, т.е. температура повысилась - следовательно, в значке градуса должны постоянно гореть сегменты F и G, а мигать должны А и В. Соответственно, при снижении температуры постоянно горят сегменты А и В, а мигать должны сегменты F и G. Как-то так на мой взгляд. Индикатор с ОА. Ну конечно стрелки весьма условные.

Re: Помогите подправить прошивку

Пт авг 25, 2017 10:38:14

там же поочерёдно - то значок градуса, то кусок графика.

Re: Помогите подправить прошивку

Пт авг 25, 2017 10:41:17

Ах вот в чём дело!!! Теперь понятна идея автора. Но, как мне кажется, мой вариант более наглядный и простой для восприятия. Поэтому, если конечно есть такая возможность, просьба переделать этот кусок кода именно так (см.выше)

Re: Помогите подправить прошивку

Пт авг 25, 2017 10:54:13

тогда тебе и на "стрелке вниз" тоже градус пририсовать надо:
$0C -> $6F
$03 -> $60

Re: Помогите подправить прошивку

Пт авг 25, 2017 11:22:29

пробуйте. там я еще свой вариант добавил и еще варианты с более быстрым опросом датчика (10 сек вместо 60)
Вложения
HomeWath.rar
(51.11 KiB) Скачиваний: 187

Re: Помогите подправить прошивку

Пт авг 25, 2017 12:03:21

А можно-ли сделать так: при понижении температуры значок градуса чередуется с "куском графика вниз" (сегменты А и В) -т.е. здесь всё остаётся как есть. При повышении температуры значок градуса чередуется с "куском графика вверх" (сегменты G и В). Так и наглядно, и сохраняется задумка уважаемого автора статьи

Добавлено after 28 minutes 6 seconds:
И ещё вопрос практический: можно-ли перепрошить запаянный контроллер? Нужно-ли отключать при программировании датчик температуры?

Re: Помогите подправить прошивку

Пт авг 25, 2017 12:09:51

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

допустим, нужен символ, в котором должны гореть a,b,g. забиваем нужные единицами:
Код:
h g f e d c b a
0 0 1 0 0 0 1 1

добавляем 0b и получаем двоичное 0b00100011
его пишем в программу вместо $03 или $0C
далее в папке с исходниками запускаем compile.bat и получаем hex (папку с исходными текстами и компилятором приложил)

прошивать можно. датчик отключать не надо. если только последовательным программатором.
Вложения
HomeWath.rar
(200.77 KiB) Скачиваний: 184

Re: Помогите подправить прошивку

Пт авг 25, 2017 15:34:49

a_skr, огромное Вам спасибо! Спасибо всем, кто откликнулся! Обязательно отпишусь по результатам.

Добавлено after 3 hours 18 minutes 20 seconds:
Переделал пошивку с помощью рекомендаций уважаемого a_skr. Теперь всё стало совсем хорошо :))
Вот мой вариант для мастерской - грубовато, зато большие цифры и неубиваемый корпус 8)
Вложения
1.jpg
(182.85 KiB) Скачиваний: 351
2.jpg
(172.73 KiB) Скачиваний: 195

Re: Помогите подправить прошивку

Пт авг 25, 2017 20:01:34

Очень рад за Вас!!! :beer:
Ошибку в моём сообщении кто-нибудь заметил? :))

Re: Помогите подправить прошивку

Пт авг 25, 2017 20:14:52

Ошибка - двоичное число 0b00100011? Или то, что вместо сегмента f указан g?
a_skr писал(а):должны гореть a,b,g

Re: Помогите подправить прошивку

Сб авг 26, 2017 13:49:51

Интересный стиль программирования. Код неплохо оформлен. Интересно, на форумах он под каким ником?

Re: Помогите подправить прошивку

Сб авг 26, 2017 17:12:09

Это устройство не с Радиокота, с другого сайта (см. выше). Я связался с автором, но он, ссылаясь на нехватку времени, поправить прошивку отказался. Поэтому я и обратился к форумчанам. Вот что у меня в итоге получилось: (но это на мой вкус).
Вложения
HomeWath 25.8.17.hex
(5.63 KiB) Скачиваний: 346

Re: Помогите подправить прошивку

Сб авг 26, 2017 17:14:37

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