Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » Прогрессбар на знакосинтезирующем дисплее.


Прогрессбар на знакосинтезирующем дисплее.

Сообщений 1 страница 6 из 6

1

Вот потребовалось замутить вывод состояния завершенности процесса.
сначала выводил проценты, тоже выход, но мысль пошла дальше.
Итак:
Входные параметры:
сколько из скольки (численные значения)
'N - текущее значение
'Total - общее значение
'Current - служебная переменная

Код:
Deflcdchar 0 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32        ' 
Deflcdchar 1 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 32        ' |
Deflcdchar 2 , 24 , 24 , 24 , 24 , 24 , 24 , 24 , 32        ' ||
Deflcdchar 3 , 28 , 28 , 28 , 28 , 28 , 28 , 28 , 32        ' |||
Deflcdchar 4 , 30 , 30 , 30 , 30 , 30 , 30 , 30 , 32        ' ||||
Deflcdchar 5 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 32        ' |||||


Progress:
Current = N * 80                                  '(80 - это количество столбцов прогрессбара {16 знаков на 5 столбцов в знаке})
Current = Abs(current)                         '(Не обязательно, но, в моем случае, текущее значение может быть отрицательным)
Current = Current / Total                      
Pixel = Current Mod 5                           '(Вычисляем кол-во столбцов {остаток от деления})
Current = Current / 5                           '(Вычисляем кол-во полностью заполненных сегментов {остаток от деления})
Locate 2 , Current                                '(координаты полностью заполненного сегмента)
Locate 2 , Current : Lcd Chr(5)              '(вывод полностью заполненного сегмента)
Incr Current                                        '(переход к следующему сегменту)
Locate 2 , Current                                '(координаты остатка для следующего сегмента)
On Pixel Gosub P0 , P1 , P2 , P3 , P4      '(выбор символа для остатка)
Return

P0:
Lcd Chr(0)
Return
P1:
Lcd Chr(1)
Return
P2:
Lcd Chr(2)
Return
P3:
Lcd Chr(3)
Return
P4:
Lcd Chr(4)
Return

Конструктивная критика приветствуется.

0

2

Существует готовый, пристегивается инклудом, 4 внешних вида )

0

3

Skull написал(а):

Существует готовый, пристегивается инклудом, 4 внешних вида )

Даже пять: Барграф настройки для знакосинтезирующего ЖК

0

4

Прикольно...
Из библиотеки:

Код:
   ' calculate the arrow position
   Position = Chars * 5                                     ' resolution
   Position = Position * Percent                            ' calc absolute position
   Position = Position / 100
   Offset = Position Mod 5                                  ' relative position
   Offset = Offset + 1
   Position = Position / 5                                  ' character position
   If Percent = 100 Then Position = Position - 1

Принцип тот же, выходит, я изобрел велосипед. :cool:

0

5

Значит он не с квадратными колесами, а ты приобрел самое ценное- опыт ) Так что не расстраивайся )

0

6

Skull написал(а):

не расстраивайся

Дык как бы и в мыслях не было)
Ну, по крайней мере, комменты на родном языке)

Отредактировано demonizer (2013-02-27 11:13:27)

0


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » Прогрессбар на знакосинтезирующем дисплее.