Всем привет. Тема уже обсуждалась - знаю. Но нигде нет конкретного РАБОТАЮЩЕГО примера. Потому и прощу помощи. Видео снять не получилось. На камеру мерцание не видно. Прилагаю листинг программы.
$regfile = "m8adef.dat"
$crystal = 4000000
Dim N1 As Integer
Dim N2 As Integer
Dim N3 As Integer
Dim N4 As Integer
Dim M2 As Integer
Dim M3 As Integer
Dim K As Integer
Dim S As Integer
Dim T1 As Byte
Dim T2 As Byte
Dim Byte0 As Byte
Dim Byte1 As Byte
Dim Sign As Bit
Dim F As Bit
Dim A As Bit 'флаг запуска преобразования
Dim B As Bit
Config Portd = Output
Config Portc = Output
Config Timer0 = Timer , Prescale = 256
Config Timer1 = Timer , Prescale = 64
Config 1wire = Portb.2
Enable Timer0
Enable Timer1
Enable Interrupts
On Timer0 Led
On Timer1 Dat
Do
Portc = &B0001
Portd = Lookup(n1 , Pattern)
Waitms 3
Portc = &B0010
Portd = Lookup(n2 , Pattern)
Waitms 3
Portc = &B0100
Portd = Lookup(n3 , Pattern)
Waitms 3
Portc = &B1000
Portd = Lookup(n4 , Pattern)
Waitms 3
Loop
Dat:
Gosub Temperatura
Return
Temperatura:
1wreset
1wwrite &HCC
1wwrite &H44
'чтение результата
1wreset
1wwrite &HCC
1wwrite &HBE
Byte0 = 1wread()
Byte1 = 1wread()
If Byte1 >= 248 Then
Byte0 = &HFF - Byte0
Byte1 = &HFF - Byte1
Sign = 0
Else
Sign = 1
End If
T1 = Byte0 / 16
T2 = Byte1 * 16
T1 = T1 + T2
N3 = T1 / 10
N3 = Abs(n3)
N4 = N3 * 10
N4 = T1 - N4
N4 = Abs(n4)
Return
Led:
Return
End
Pattern:
Data &B00111111
Data &B00000110
Data &B01011011
Data &B01001111
Data &B01100110
Data &B01101101
Data &B01111101
Data &B00000111
Data &B01111111
Data &B01101111