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

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

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

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


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Мерцает LCD, предпологаю что причина в прерываниях. Помогите чайнику


Мерцает LCD, предпологаю что причина в прерываниях. Помогите чайнику

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

1

$regfile = "m8def.dat"
'Указываем компилятору тип используемого МК.
  $crystal = 1000000
'Указываем частоту тактового генератора 1 МГц.
'Кварц не подключен. МК работает от внутреннего тактового генератора 1 МГц(заводские установки).

Config Adc = Single , Prescaler = Auto , Reference = Avcc
'Проводим инициализацию АЦП
'Источник опорного напряжения выбран  =5.12V
Config Portb.0 = Output
Pinb.0 = 0
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
Config Lcd = 16 * 2
Cursor Off
'Указываем к каким именно портам подключен дисплей.
'Проводим инициализацию дисплея.(4 битный режим , 16 * 2 символа)
'Выключаем курсор чтоб не мелькал.

  Config Timer1 = Timer , Prescale = 1024
Const Timer1pre = 64559
'прерывания 1раз в сек
   Dim Charge As Word

Stop Timer1
Timer1 = Timer1pre
'предустановка счета
On Timer1 Pulse:
Start Timer1
Enable Interrupts
Enable Timer1

Do
Cls
Lcd "CHARG " ; Charge ; " ma/h"
Waitms 100
Loop

Pulse:
  Stop Timer1
  Timer1 = Timer1pre
  Toggle Portb.0
  'МИГАЕМ светодиодом 1раз в 2 секунды
  Incr Charge
'считаем импульсы
  Start Timer1
Return

End

0

2

Do
locate 1,1
Lcd "                "
locate 1,1
Lcd "CHARG " ; Charge ; " ma/h"
Waitms 300
Loop

и подкрути контрастность

0

3

2 вариант лучше но все равно мерцает строка "ma/h"
насколько я понимаю вывод на lcd лучше исключить из обработки прерываний.
кстати эту программу моделирую в протеусе в железе не проверял потому как еще не закончил.
пробовал менять значение waitms от 10 до 1000 соответственно меняется частота мерцаний
но с прерываниями (1раз в сек) никак не связана
протеус 7.5 sp3 некорректно моделирует? или bascom 1.11.9.0 глючит?
или сам дурак?

0

4

спасибо за ответ
для меня протеус палочка выручалочка, хотя и не без недостатков
но лучше пока ничего не нашел
вообще-то первый раз взялся за программирование МК
решил сделать зарядник-анализатор для акб пробую разные куски кода
чтобы потом как из кирпичиков собрать

0


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Мерцает LCD, предпологаю что причина в прерываниях. Помогите чайнику