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

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

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

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



Симуляция

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

1

Добрый день! Написал небольшую программку в Баскоме для контроля напряжения на АКБ. Чтобы не вычислять АЦП (значения при которых будет откл и вкл ЗУ) сделал так, чтобы эти значения можно было бы внести в код непосредственно по показаниям вольтметра. Т.е. смотрим на вольтметр , нажимаем кнопку и значения АЦП записываются в eeprom, далее при включении прибора они оттуда считываются и устанавливаются для управления зарядом.Но возникла небольшая проблема.Привожу код:

Код:
$regfile = "attiny13.dat"
$sim
$hwstack = 8
$swstack = 16
$framesize = 16
Declare Sub Izmer()
Declare Sub Ust()
Dim N As Byte
Dim I_izm As Word
Dim U_izm As Word
Dim U_off As Word
Dim U_on As Word
Config Portb.1 = Output
Config Pinb.2 = Input
Config Pinb.3 = Input
Config Pinb.4 = Input

$eeprom
Uonn:
Data 1
Uoff:
Data 2
$data
Readeeprom U_on , Uonn
Readeeprom U_off , Uoff
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Pinb.2 = 1
N = 0
Do
Call Ust
Call Izmer
If I_izm > 200 Then Portb.1 = 0
If U_izm > U_off Then Portb.1 = 0
If U_izm < U_on Then Portb.1 = 1
Loop
End

Sub Ust()
If Pinb.2 = 0 Then
 Waitms 20
 Select Case N
 Case 0 : Gosub 1
 Case 1 : Gosub 2
End Select
End If
End Sub


Sub Izmer()
U_izm = Getadc(2)
I_izm = Getadc(3)
End Sub

1:
Call Izmer
Writeeeprom U_izm , 1
N = 1
 Return

2:
Call Izmer
 Writeeeprom U_izm , 2
 N = 0
 Return

При симуляции программа не выполняется полностью, а зацикливается в :

Код:
Config Pinb.4 = Input

$eeprom
Uonn:
Data 1
Uoff:
Data 2
$data

Readeeprom U_on , Uonn
Readeeprom U_off , Uoff

Даже не знаю в чем причина.Где ошибка?

0

2

Пробовал, ничего не меняется.

0

3

Если мы ничего не записали в ячейки 1, 2, то по умолчанию что там будет?

0