Witam !
Napisałem taki program:
Steruje on matrycą led o organizacji punktów 5 wierszy oraz 8 kolumn.
Mój problem polega na tym, że nie wiem jak przerobić powyższy kod tak aby odczytywał ujemne temperatury.
Chodzi o to, żeby: np. Jak jest -15° to zmienna "znak" przyjmuje wartość 0 a zmienna "I" przyjmuje wartość 15. Z wyświetleniem sobie poradzę.
PS: Jeśli ktoś zauważy jakiś błąd w programie proszę napisać...
Napisałem taki program:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portd = Output : Portd = 255
Config Portb = Output : Portb = 255
K1 Alias Portd.0
K2 Alias Portd.1
K3 Alias Portd.2
K4 Alias Portd.3
K5 Alias Portd.4
K6 Alias Portd.5
K7 Alias Portd.6
K8 Alias Portd.7
Config 1wire = Portc.5
Dim Nr_kol As Byte , A As Byte , B As Byte , Znak As Bit
Dim X As Byte , P As Byte , I As Integer
Config Timer0 = Timer , Prescale = 256
On Timer0 Multi
Load Timer0 , 50
Enable Interrupts
Enable Timer0
Do
1wreset
1wwrite &HCC
1wwrite &H44
Wait 2
1wreset
1wwrite &HCC
1wwrite &HBE
I = 1wread(2)
I = I / 16
If I > 99 Then I = 99
If I < 0 Then I = 0
Loop
Multi:
A = 0
B = 0
X = I
If X > 9 Then
Do
X = X - 10
Incr A
Loop Until X < 10
End If
If X <> 0 Then
Do
X = X - 1
Incr B
Loop Until X =< 0
End If
Load Timer0 , 50
Portd = 255
Select Case Nr_kol
Case 2:
K1 = 0
Portb = Lookup(a , 1kol)
Case 3:
K2 = 0
Portb = Lookup(a , 2kol)
Case 4:
K3 = 0
Portb = Lookup(a , 3kol)
Case 5:
K5 = 0
Portb = Lookup(b , 1kol)
Case 6:
K6 = 0
Portb = Lookup(b , 2kol)
Case 7:
K7 = 0
Portb = Lookup(b , 3kol)
End Select
Incr Nr_kol
If Nr_kol > 7 Then Nr_kol = 0
Return
1kol:
Data &B11100000 , &B11111111 , &B11101000 , &B11101010 , &B11100011 ,
Data &B11100010 , &B11100000 , &B11100111 , &B11100000 , &B11100010
2kol:
Data &B11101110 , &B11110111 , &B11101010 , &B11101010 , &B11111011 ,
Data &B11101010 , &B11101010 , &B11101111 , &B11101010 , &B11101010
3kol:
Data &B11100000 , &B11100000 , &B11100010 , &B11100000 , &B11100000 ,
Data &B11101000 , &B11101000 , &B11100000 , &B11100000 , &B11100000Steruje on matrycą led o organizacji punktów 5 wierszy oraz 8 kolumn.
Mój problem polega na tym, że nie wiem jak przerobić powyższy kod tak aby odczytywał ujemne temperatury.
Chodzi o to, żeby: np. Jak jest -15° to zmienna "znak" przyjmuje wartość 0 a zmienna "I" przyjmuje wartość 15. Z wyświetleniem sobie poradzę.
PS: Jeśli ktoś zauważy jakiś błąd w programie proszę napisać...