https://cxem.net/mc/mc235.php
Урок 9. Работа с АЦП на примере ATtiny13 в BASCOM-AVR
https://cxem.net/mc/mc128.php
изучив эти уроки решиль объединить их в один проект и сделать индикатор уровня
т.е 9 градаций заданного напряжения.
поставил Bascom avr, Написал программу (скорее объединил код с двух уроков)
Но что-то у меня не выходит ни черта. Хочу попросить знатоков посмотреть код на наличие
грубых логических ошибок. Код комплируется отлично но толком не работает.
Код: Выделить всё
$regfile = "attiny13.dat"
$crystal = 9600000
$HWSTACK=40
$SWSTACK=8
$FRAMESIZE =8
Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Ds Alias Portb.2
Sh_cp Alias Portb.0
Const St_cp = 1
Dim Level As Integer
Start Adc
Do
If Getadc(2) >= 100 and Getadc(2) < 200 Then
R1 = Lookup(1 , Numbers)
End If
If Getadc(2) >= 200 and Getadc(2) < 300 Then
R1 = Lookup(2 , Numbers)
End If
If Getadc(2) >= 300 and Getadc(2) < 400 Then
R1 = Lookup(3 , Numbers)
End If
If Getadc(2) >= 400 and Getadc(2) < 500 Then
R1 = Lookup(4 , Numbers)
End If
If Getadc(2) >= 600 and Getadc(2) < 700 Then
R1 = Lookup(5 , Numbers)
End If
If Getadc(2) >= 800 and Getadc(2) < 900 Then
R1 = Lookup(6 , Numbers)
End If
If Getadc(2) >= 900 and Getadc(2) <1000 Then
R1 = Lookup(7 , Numbers)
End If
If Getadc(2) >= 1000 Then
R1 = Lookup(8 , Numbers)
End If
Shiftout Ds , Sh_cp , R1 , 1
Pulseout Portb , St_cp , 5
Loop
End
Numbers:
Data &B10000001 '0
Data &B11110011 '1
Data &B01001001 '2
Data &B01100001 '3
Data &B00110011 '4
Data &B00100101 '5
Data &B00000101 '6
Data &B10110001 '7
Data &B00000001 '8
Data &B00100001 '9


