$regfile = "m8def.dat"
$crystal = 8000000
'konfiguracja portow
Config Pinc.0 = Input
Config Pinc.1 = Input
Config Pinc.2 = Output
Config Pinc.3 = Output
Config Pinc.4 = Output
Config Pinc.5 = Output
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Portd = Output
'konfiguracja timerow
Config Timer0 = Timer , Prescale = 256
Config Timer1 = Timer , Prescale = 256
On Timer0 Multi_vfd
On Timer1 Odmierz_1s
'zmienne
Dim Sekundy As Byte
Dim Sekundy1 As Byte
Dim Minuty As Byte
Dim Minuty1 As Byte
Dim Godziny As Byte
Dim Godziny1 As Byte
Dim Nr_wysw As Byte
'przypisanie aliasow
S1 Alias Pinc.0
S2 Alias Pinc.1
W1 Alias Pinc.2
W2 Alias Pinc.3
W3 Alias Pinc.4
W4 Alias Pinc.5
W5 Alias Pinb.0
W6 Alias Pinb.1
Enable Interrupts
Enable Timer1
Counter1 = 34286
Enable Timer0
Load Timer0 , 125
Set Pinc.0
Set Pinc.1
'glowna petla programu
Do
If S1 = 0 Then
Waitms 25
If S1 = 0 Then
Incr Minuty
Sekundy = 0
Sekundy1 = 0
If Minuty = 10 Then
Minuty = 0
Incr Minuty1
If Minuty1 = 6 Then
Minuty1 = 0
End If
End If
End If
End If
If S2 = 0 Then
Waitms 25
If S1 = 0 Then
Incr Godziny
If Godziny = 10 Then
Godziny = 0
Incr Godziny1
If Godziny1 = 2 And Godziny = 4 Then
Godziny = 0
Godziny1 = 0
End If
End If
End If
End If
Loop
End
'koniec glownej petli programu
Odmierz_1s:
Counter1 = Counter1 + 34286
Incr Sekundy
If Sekundy = 10 Then
Sekundy = 0
Incr Sekundy1
If Sekundy1 = 6 Then
Sekundy1 = 0
Incr Minuty
If Minuty = 10 Then
Minuty = 0
Incr Minuty1
If Minuty1 = 6 Then
Minuty1 = 0
Incr Godziny
If Godziny = 10 Then
Godziny = 0
Incr Godziny1
If Godziny1 = 2 And Godziny = 4 Then
Godziny = 0
Godziny1 = 0
End If
End If
End If
End If
End If
End If
Return
Multi_vfd:
Load Timer0 , 125
Set W1
Set W2
Set W3
Set W4
Set W5
Set W6
Select Case Nr_wysw
Case 0:
Portd = Lookup(godziny1 , Kody)
Reset W1
Case 1:
Portd = Lookup(godziny , Kody)
Reset W2
Case 2:
Portd = Lookup(minuty1 , Kody)
Reset W3
Case 3:
Portd = Lookup(minuty , Kody)
Reset W4
Case 4:
Portd = Lookup(sekundy1 , Kody)
Reset W5
Case 5:
Portd = Lookup(sekundy , Kody)
Reset W6
End Select
Incr Nr_wysw
If Nr_wysw = 6 Then
Nr_wysw = 0
End If
Return
Kody:
Data &B00111111 , &B00000110 , &B01011011 , &B01001111 , &B01100110,
Data &B01101101 , &B01111101 , &B00000111 , &B01111111 , &B01101111
Bascom multipleksowe sterowanie
Bascom multipleksowe sterowanie
Witam, ostatnio postanowilem ze zrobie swoj pierwszy uklad elektroniczny zaprojektowany przeze mnie. Padlo na zwykly zegarek z sekundnikiem na mikroprocku AVR. Ponizej przedstawiam listing. Napisalem juz program ale nie wiem czy poprawnie (kompilator nie mial zastrzezen). Nie wiem czy moge uzyc dwa razy timera?
Rany... co to w ogóle za pytanie? Gdzie tkwi problem?... Może tak wyglądać. Załaduj go do proca, pobaw się nim. Jeśli program nie będzie działał spróbuj najpierw zapalić tylko jeden wyświetlacz. I rozwijaj go. Nie możesz przecież wysyłać pytania na forum po każdej zmianie. Aż mnie dziwi, że nie rozsadza Cię ciekawość i czekasz na odpowiedź. Ja bym chyba dawno wpisał program, coś bym popsuł a później zabrał się za czytanie (wybiórczo) instrukcji 
-
Kapitan_Rzbik
- -
- Posty: 97
- Rejestracja: 20 gru 2005, 10:52
Witam wciecia w listingu sa tylko niestety nie wyswietlily sie w poscie. Procedurka nazywa sie multi_vfd bo bedzie to zegarek na vfd'ku dzieki oczywiscie artykulowi Taszy w jednym z EDW:). Pozdrawiam i odezwe sie jak cos ruszy, program mieszka juz w procku tylko nie mam odpowiedniego kwarcu musze jutro zakupic. Pozdrawiam