Nie wiem czy wybrałem dobry dział na ten problem, ale zapytam.
Ćwicząc multipleksowe sterowanie wyświetlaczem 7 segmentowym, chciałem napisać licznik wciśnięć przycisku. Oto kod:
na początku pętli do loop wstawiłem waitms 50, żeby nie dodawał przez cały czas trzymania palca na przycisku, i wyświetlacz cały czas pokazuje mi 30. Jak wstawiam wait 1 lub więcej to jest wszystko w porządku. Ma ktoś pomysł o co chodzi??
Ćwicząc multipleksowe sterowanie wyświetlaczem 7 segmentowym, chciałem napisać licznik wciśnięć przycisku. Oto kod:
$regfile = "m32def.dat"
$crystal = 16000000
Config Portb = Output
Config Porta = Output
Config Pinc.0 = Input
Config Timer0 = Timer , Prescale = 256
Declare Sub Wys(cyfra As Byte)
Dim Licz1 As Byte
Dim Licz2 As Byte
Dim Wart As Byte
Dim Nr_wysw As Byte
On Timer0 Multi
Enable Interrupts
Enable Timer0
Load Timer0 , 125
Do
Waitms 50
If Pinc.0 = 0 Then
Licz1 = Licz1 + 1
If Licz1 > 9 Then
Licz1 = 0
Licz2 = Licz2 + 1
If Licz2 > 9 Then
Licz1 = 0
Licz2 = 0
End If
End If
End If
Loop
End
Sub Wys(cyfra As Byte)
Porta = Lookup(cyfra , Kody7seg)
End Sub
Multi:
Load Timer0 , 150
Set Portb.2
Set Portb.3
Select Case Nr_wysw
Case 0:
Call Wys(licz1)
Reset Portb.2
Case 1:
Call Wys(licz2)
Reset Portb.3
End Select
Incr Nr_wysw
If Nr_wysw = 2 Then
Nr_wysw = 0
End If
Return
Kody7seg:
Data &B10000001 , &B11110011 , &B01001001 , &B01100001 , &B00110011 ,
Data &B00100101 , &B00000101 , &B11110001 , &B00000001 , &B00100001
na początku pętli do loop wstawiłem waitms 50, żeby nie dodawał przez cały czas trzymania palca na przycisku, i wyświetlacz cały czas pokazuje mi 30. Jak wstawiam wait 1 lub więcej to jest wszystko w porządku. Ma ktoś pomysł o co chodzi??