Witam
Potrzebuje pomocy tym razem w ulepszeniu zegarka http://www.daqq.eu/index.php?show=prj_avr_clock_1. W związku z tym iż uruchomiłem go chciałem polepszyć jego dokładność a nie znam języka c napisałem program w bascomie wzorując się na koledze https://www.elektroda.pl/rtvforum/topic1770011.html powstało takie coś
Tylko jest jeden mały problem za nic w świecie nie chce wyświetlić godziny. Nie rozumiem tutaj tych kodów wyświetlanych cyfr. Proszę o pomoc
Potrzebuje pomocy tym razem w ulepszeniu zegarka http://www.daqq.eu/index.php?show=prj_avr_clock_1. W związku z tym iż uruchomiłem go chciałem polepszyć jego dokładność a nie znam języka c napisałem program w bascomie wzorując się na koledze https://www.elektroda.pl/rtvforum/topic1770011.html powstało takie coś
$regfile = "m8def.dat"
$crystal = 8000000
Dim Cyfra1 As Byte
Dim Cyfra2 As Byte
Dim Cyfra3 As Byte
Dim Cyfra4 As Byte
Dim Nr_wysw As Byte
Dim Wyjscie As Byte , Wys_on As Bit
Config Portc = Output
Set Portc.5
Set Portc.4
Set Portc.3
Set Portc.2
Set Portc.7
Config Pind.0 = Output
Config Pind.1 = Output
Config Pind.2 = Output
Config Pind.3 = Output
Config Pind.4 = Output
Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.7 = Output
Portd = &HFF
Config Pinb.3 = Input
Config Pinb.4 = Input
S1 Alias Pinb.4
S2 Alias Pinb.3
Config Clock = Soft ,
Config Timer1 = Timer , Prescale = 256
On Timer1 Wyswietlacz
Enable Interrupts
Enable Timer1
Enable Timer0
Load Timer1 , 65
Do
If Wys_on = 1 Then
Cyfra1 = _hour / 10
Cyfra2 = _hour Mod 10
Cyfra3 = _min / 10
Cyfra4 = _min Mod 10
End If
If S1 = 0 Then
Waitms 25
If S1 = 0 Then 'zwiększ godziny
Incr _hour
If _hour = 24 Then
_hour = 0
End If
End If
End If
If S2 = 0 Then
Waitms 25
If S2 = 0 Then 'zwiększ minuty
Incr _min
_sec = 0
If _min = 60 Then
_min = 0
End If
End If
End If
Wyswietlacz:
Load Timer1 , 125
Set Portc.5
Set Portc.4
Set Portc.3
Set Portc.2
Select Case Nr_wysw
Case 0:
If Cyfra1 = 0 Then
Cyfra1 = 11
Else
Portd = Lookup(cyfra1 , Segmenty )
Reset Portc.5
End If
Case 1:
Portd = Lookup(cyfra2 , Segmenty )
Reset Portc.4
Case 2:
Portd = Lookup(cyfra3 , Segmenty )
Reset Portc.3
Case 3:
Portd = Lookup(cyfra4 , Segmenty )
Reset Portc.2
End Select
Incr Nr_wysw
If Nr_wysw = 4 Then
Nr_wysw = 0
End If
Return
Loop
Segmenty:
Data &B00111111 , &B00000110 , &B01011011 , &B01001111 , &B01100110 ,
Data &B01101101 , &B01111101 , &B00000111 , &B01111111 , &B01101111 ,Tylko jest jeden mały problem za nic w świecie nie chce wyświetlić godziny. Nie rozumiem tutaj tych kodów wyświetlanych cyfr. Proszę o pomoc
Kod: text
Moderowany przez _Robak_:3.1.17. (10.9, 16) Zabronione jest publikowanie wpisów obniżających ogólny poziom dyskusji, wynikających z lenistwa lub zawierających roszczeniowy charakter wypowiedzi.
