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

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

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

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


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Как инвертировать семисегментный индикатор ОК на ОА


Как инвертировать семисегментный индикатор ОК на ОА

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

1

Автоматическое зарядное устройство для SLA аккумуляторов тини26 
Автоматическое зарядное устройство для SLA аккумуляторов

0

2

Помогите адаптировать прошивку под индикатор ОА. В программировании я не силён
на шару пробовал менять константы в программе, инвертировал двоичный код "dat" не помогло.

0

3

Смысл создавать еще одну тему?

0

4

1. В секции Dta все 0 меняем на 1 и наоборот:

Код:
'         0        
Data &B00111111
Код:
'         0        
Data &B11000000

2. В коде ищем Dig1, Dig2, Dig3. Если рядом стоит Set меняем на Reset и наоборот:

Код:
$end Asm
Set Dig1 : Set Dig2 : Set Dig3
 Lds R31 , {Bright}                                         'Сдвимем биты в переменной по кольцу
Код:
$end Asm
Reset Dig1 : Reset Dig2 : Reset Dig3
 Lds R31 , {Bright}                                         'Сдвимем биты в переменной по кольцу

3. Заменить этот кусок кода:

Код:
Segmlink = Lookup(dg , Dta)

A = 1
$asm
 Lds R31 , {SegmLink}
 SBRC R31, 0
$end Asm
A = 0
B = 1
$asm
 SBRC R31, 1
$end Asm
B = 0
C = 1
$asm
 SBRC R31, 2
$end Asm
C = 0
D = 1
$asm
 SBRC R31, 3
$end Asm
D = 0
E = 1
$asm
 SBRC R31, 4
$end Asm
E = 0
F = 1
$asm
 SBRC R31, 5
$end Asm
F = 0
G = 1
$asm
 SBRC R31, 6
$end Asm
G = 0
Dp = 1
$asm
 SBRC R31, 7
$end Asm
Dp = 0

If Dprz = X Then Dp = 0

По идее должно заработать.

0

5

теперь другая проблема всё работает  (пишет A1.7:204:bat:tes)  потом (bat:tes)по кругу циклирует а напряжение не показывает. Tfreq-отвечает за это порт 4 если я правильно понимаю (14 нога тини26). \
Если на 14 ногу подать 5вольт на дисплее должно быть 999? и как переназначить порт ввода который следит за напругой? Tfreq- как оно работает если в программе присутствует 1 раз ито при назначении портов?

0

6

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

1. В секции Dta все 0 меняем на 1 и наоборот:

2. В коде ищем Dig1, Dig2, Dig3. Если рядом стоит Set меняем на Reset и наоборот:

3. Заменить этот кусок кода:

По идее должно заработать.

спасибо дисплей  заработал!

0

7

Пётр написал(а):

Смысл создавать еще одну тему?

старая тема давно неактуальна там не отвечают

0

8

проблему решил так  код: сonfig Adc = Single , Prescaler = Auto , Reference = AVCC
не исключено битая тинька хотя новая

Отредактировано ZX-TV (2014-01-09 18:25:55)

0

9

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

А не проще было поставить инвертирующие транзисторы? Выйдет новая прошивка и придется заново ее править.

Хотел инвертировать на кт315/кт361 сегменты+ точки 2 + катоды 3 = 12 транзисторов, поленился печатку рисовать/травить ведь исходник есть, лет 20 назад был у меня zx-spectrum на бейсике писал вот и опыт пригодился хотя здесь всё не так но пару операторов похожих есть.
Флеш память тиньки в исходнике заполнена автором на 94% у меня 99% добавил звуковую индикацию всех процессов (заряжен, заряжен на полную, не заряжается, не подключён итд). Осталя один свободный порт к которому можно сделать разряд (десульфатация) но тинька на 99% заполнена.
баском сильно расходует память, нужно писать  на СИ больше влезет.

РS: Умел бы программировать поправил код за 5 минут, от незнания разбирался 4 дня( методом научного тыка зная основы подобного языка программирования) + очень помог /max/и /dimon-790/ им огромное СПАСИБО!!! и всем кто ответил.

0

10

прошивок не будет, работает  идеально алгоритм заточен автором профессионально для этой МК

0


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Как инвертировать семисегментный индикатор ОК на ОА