Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięKod C na Bascoma??? Czy to możliwe?
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Witam .
Czy da się przerobić kod w języku C na kod Bascoma. Są w ogóle takie kompilatory, a może to nierealne??
Czy da się przerobić kod w języku C na kod Bascoma. Są w ogóle takie kompilatory, a może to nierealne??
Najlepszym do tego celu "kompilatorem" jest mózg. Po prostu naucz się języka C i przełóż sobie dowolny program w C na Bascom. Korzyść będzie podwójna. Po pierwsze poznasz nowy bardzo ciekawy i użyteczny jezyk a po drugie osiągniesz swój zamierzony cel. Chociaż zamiana z C na Basic jest trochę jak przeróbka Mercedesa na Malucha - możliwa, ale czy warto?
Dzięki za tak szybką odpowiedz.
Hmm to będzie trudne nauczyć się w parę dni C, a i bascoma ledwo co znam.
Generalnie zbudowałem układ, który ma obsługiwać LCD 2*16, 2 przekaźniki i jedno piezo. Płytka wytrawione, wszystko zamontowane, tylko że brak programu który by to obsłużył. A termin składania prac tuż tuż. Czy mogę liczyć na pomoc od Was przy pisaniu programu?
Mogę zamieścić zasadę działania i schemat ideowy. Tymczasem biore się za teoretyczne początki.
Hmm to będzie trudne nauczyć się w parę dni C, a i bascoma ledwo co znam.
Generalnie zbudowałem układ, który ma obsługiwać LCD 2*16, 2 przekaźniki i jedno piezo. Płytka wytrawione, wszystko zamontowane, tylko że brak programu który by to obsłużył. A termin składania prac tuż tuż. Czy mogę liczyć na pomoc od Was przy pisaniu programu?
Mogę zamieścić zasadę działania i schemat ideowy. Tymczasem biore się za teoretyczne początki.
Miałem kod w C, i był on trochę nie odpowiedni do mojego zastosowani,to znaczy zamiast LCD były ledy no i generalnie przyciski miały inną funkcję. Mało tego, wszystko było napisane pod układ Tiny2313.
Ja muszę koniecznie napisać wszystko w Baskomie (taki kaprys promotora). Troszkę mi to nie na rękę, ponieważ chciałem się nauczyć programowania w C.
Wydaje mi się że kod do mojego układu nie będzie zbyt skomplikowany.
[ Dodano: 16-01-2007, 17:33 ]
Może wypunktuję:
1. Przy włączeniu zasilania ma być słyszalny podwójny krótki sygnał, no i oczywiście jakiś powitalny napisik np: " DUZE AKWARIUM ".
2. Po 3sek. pokazuje się " NASTAW CZAS"( 1wiersz lcd), " XX MIN " (2 wiersz LCD). XX to ostatnia wybierana wartość czasu.
3. Urządzenie ma 3 przyciski
S1 (UP)- zwiększa stan licznika
S2 (Down)- zmniejsza stan licznika
S3 (Start/Stop)- przyciśnięcie na 0,2 sek - START ; przyciśnięcie na 2 sek - STOP
Poza tym przyciśnięcie równiocześnie Up i Down na 2 sek spowoduje załączenie wyjście PD7
4. Ustawiamy czas. Wciskamy S3 i licznik zlicza w dół (zakres od 1-99min ze skokiem co minutę). W tym czasie na wyświetlaczu widnieje napis " Pozostało" "(czas do końca) MIN. " jw
5. Po upływie czasu widać " Zakoncono" " Odliczanie" jw
6. Program powinien mniej więcej działać tak jak jest narysowane na algorytmie.
Mam nadzieję ze jest jasne to co napisałem do tej poty. Moge jeszcze dopisać parę szczegułów, ale wydaje mi się że z algorytmu można się domyśleć o co chodzi. Poniżej schemat i algorytm działania programu lub tu (www.bascom.jpg.pl)
Ja muszę koniecznie napisać wszystko w Baskomie (taki kaprys promotora). Troszkę mi to nie na rękę, ponieważ chciałem się nauczyć programowania w C.
Wydaje mi się że kod do mojego układu nie będzie zbyt skomplikowany.
[ Dodano: 16-01-2007, 17:33 ]
Może wypunktuję:
1. Przy włączeniu zasilania ma być słyszalny podwójny krótki sygnał, no i oczywiście jakiś powitalny napisik np: " DUZE AKWARIUM ".
2. Po 3sek. pokazuje się " NASTAW CZAS"( 1wiersz lcd), " XX MIN " (2 wiersz LCD). XX to ostatnia wybierana wartość czasu.
3. Urządzenie ma 3 przyciski
S1 (UP)- zwiększa stan licznika
S2 (Down)- zmniejsza stan licznika
S3 (Start/Stop)- przyciśnięcie na 0,2 sek - START ; przyciśnięcie na 2 sek - STOP
Poza tym przyciśnięcie równiocześnie Up i Down na 2 sek spowoduje załączenie wyjście PD7
4. Ustawiamy czas. Wciskamy S3 i licznik zlicza w dół (zakres od 1-99min ze skokiem co minutę). W tym czasie na wyświetlaczu widnieje napis " Pozostało" "(czas do końca) MIN. " jw
5. Po upływie czasu widać " Zakoncono" " Odliczanie" jw
6. Program powinien mniej więcej działać tak jak jest narysowane na algorytmie.
Mam nadzieję ze jest jasne to co napisałem do tej poty. Moge jeszcze dopisać parę szczegułów, ale wydaje mi się że z algorytmu można się domyśleć o co chodzi. Poniżej schemat i algorytm działania programu lub tu (www.bascom.jpg.pl)
Programu który by dokonywał takiej konwersji raczej nie znajdziesz - to jest zadanie bardziej dla człowieka. Ale o wiele łatwiej poszukać czegoś podobnego w Bascomie albo to napisać, jak masz mało czasu to może i lepiej że w Bascomie, on jest prościutki - łatwo załapać. C możesz się nauczyć później sam dla siebie. A Bascom ze swoimi gotowymi procedurami do LCD, 1-wire, SPI, I2C jest całkiem miły jak chce się zrobić coś na szybko żeby działało. Jak chce się zrobić coś porządnie C rzeczywiście zwykle jest lepsze. A co to za praca, bo słowo "promotor" kojarzy mi się z magisterką, no ale zmuszanie do Bascoma i termin już nie.
Witam , zapoznaj się z projektem nr.4 Futrzaczka w dziale DIY, po odchudzeniu bedziesz miał swój timer . http://the-end.ep.com.pl/projekt3/futrzaczek.htm
Dzięki McKEE. Postaram się do tego przyłożyć. Dam znać pojutrze co z tego wyjdzie.
[ Dodano: 20-01-2007, 21:47 ]
Ciężko przez 2 dni nauczyć się Bascoma. Jak narazie improwizuje
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2
Config Lcdpin = Pin , Db6 = Portc.1 , Db7 = Portc.0 ,
Config Lcdpin = Pin , E = Portc.4 , Rs = Portc.5
Config Pind.0 = Input
Config Pind.1 = Input
Config Pind.2 = Input
Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.7 = Output
S1 Alias Pind.0
S2 Alias Pind.1
S3 Alias Pind.2
Piezo Alias Portd.5
Swietlowka Alias Portd.6
Pompa Alias Portd.7
Config Pind.1 = Input
Config Timer1 = Timer , Prescale = 64
Declare Sub Wysw_czas
On Timer1 Odmierz_1s
Enable Interrupts
Enable Timer1
Counter1 = 34286
Dim Sekundy As Byte
Dim Minuty As Byte
Dim Nowa_w As Byte
Dim Wart_bcd As Byte
Set Nowa_w
Set Portd.0
Set Portd.1
Set Portd.3
'---------------------------------------
Cls
Cursor Off Noblink
Locate 1 , 3
Lcd "DUZE"
Locate 2 , 8
Lcd "AKWARIUM"
Waitms 200
Cls
Do
Call Wysw_czas
If S1 = 0 Then
Waitms 10
If S1 = 0 Then
Incr Minuty '
Sekundy = 0
If Minuty = 60 Then
Minuty = 0
End If
Set Nowa_w
Call Wysw_czas
Waitms 20
End If
End If
If S2 = 0 Then
Waitms 25
If S2 = 0 Then
Decr Minuty
Sekundy = 0
If Minuty = 0 Then
Minuty = 60
End If
Set Nowa_w
Call Wysw_czas
Waitms 20
End If
End If
Loop
End
Sub Wysw_czas
If Nowa_w = 1 Then
Cls
Locate 1 , 4
Lcd "POZOSTALO"
Locate 2 , 5
Wart_bcd = Makebcd(minuty)
Lcd Bcd(wart_bcd) ; " MIN"
'Locate 2 , 8
'Wart_bcd = Makebcd(sekundy)
'Lcd Bcd(wart_bcd) ; " MIN"
Reset Nowa_w
End If
End Sub Wysw_czas
Odmierz_1s:
Counter1 = Counter1 + 34286
Incr Sekundy
Set Nowa_w
If Sekundy = 60 Then
Sekundy = 0
Decr Minuty
If Minuty = 60 Then
Minuty = 0
End If
End If
Return
Nie dziła to jeszcze nawet w połowie tak jakbym chciał, no ale jak się nie ma co się lubi, to się lubi co się ma.
[ Dodano: 21-01-2007, 02:35 ]
Ostatnia wersja
Cls
Do
If S3 = 0 Then
Gosub Pr1
End If
Call Wysw_czas
If S1 = 0 Then
Waitms 10
If S1 = 0 Then
Incr Minuty '
End If
Set Nowa_w
Call Wysw_czas
Waitms 20
End If
If S2 = 0 Then
Waitms 25
If S2 = 0 Then
Decr Minuty
End If
Set Nowa_w
Call Wysw_czas
Waitms 20
End If
Loop
Sub Wysw_czas
If Nowa_w = 1 Then
Cls
Locate 1 , 4
Lcd "POZOSTALO"
Locate 2 , 5
Wart_bcd = Makebcd(minuty)
Lcd Bcd(wart_bcd) ; " MIN"
'Locate 2 , 8
' Wart_bcd = Makebcd(sekundy)
' Lcd Bcd(wart_bcd) ; " MIN"
Reset Nowa_w
End If
End Sub Wysw_czas
Pr1:
Enable Timer1
Call Wys_czas
Set Nowa_w
Sub Wys_czas
If Nowa_w = 1 Then
Cls
Locate 1 , 4
Lcd "POZOSTALO"
Locate 2 , 5
Wart_bcd = Makebcd(minuty)
Lcd Bcd(wart_bcd) ; " MIN"
'Locate 2 , 8
'Wart_bcd = Makebcd(sekundy)
'Lcd Bcd(wart_bcd) ; " MIN"
Reset Nowa_w
End If
End Sub Wys_czas
Return
Odmierz_1s:
Counter1 = Counter1 + 34286
Incr Sekundy
Set Nowa_w
If Sekundy = 60 Then
Sekundy = 0
Decr Minuty
End If
Return
End
[ Dodano: 21-01-2007, 18:19 ]
I jak, podoba się?
$regfile = "m8def.dat" 'INFORMUJE KOMPILATOR O PLIKU DYREKTYW MIKROPROCESORA
$crystal = 8000000 'INFORMUJE KOMPILATOR O CZĘSTOTLIWOŚĆI OSCYLATORA TAKTUJĄCEGO MIKROKONTROLER
Config Lcd = 16 * 2 'DEKLARACJA WYŚWIETLACZA LCD
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2
Config Lcdpin = Pin , Db6 = Portc.1 , Db7 = Portc.0 ,
Config Lcdpin = Pin , E = Portc.4 , Rs = Portc.5
Config Pind.0 = Input 'DEKLARACJA PORTÓW WEJŚCIA/WYJŚCIA
Config Pind.1 = Input
Config Pind.2 = Input
Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.7 = Output
S1 Alias Pind.0 'PRZYPISANIE NAZW WEJ/WYJ
S2 Alias Pind.1
S3 Alias Pind.2
Piezo Alias Portd.5
Swietlowka Alias Portd.6
Pompa Alias Portd.7
Config Timer0 = Timer , Prescale = 256 'KONFIGURACJA TIMERA0
On Timer0 Odmierz_1s 'WŁĄCZENIE TIMER0 W PODPROGRAMIE Odmierz_1s
Dim Licz_8ms As Byte 'DEKLARACJA ZMIENNYCH
Dim Sekunda As Byte
Dim Minuta As Byte
Dim Minuta_ust As Byte
Dim Minuta_wys As Byte
Declare Sub Naswietlanie 'DEKLARACJA PODPROGRAMÓW
Declare Sub Pompka
Cursor Off
Cls
Reset Portd.5 'WŁĄCZNIE PIEZA
Waitms 50
Set Portd.5
Waitms 50
Reset Portd.5
Waitms 50
Set Portd.5
Waitms 50
Reset Portd.5
Waitms 50
Set Portd.5
'WYŁĄCZNIE KURSORA
Cls 'CZYSZCZENIE EKRANU
Locate 1 , 1 'POZYCJONOWANIE NAPISÓW
Lcd " Naswietlarka"
Locate 2 , 1
Lcd " UV "
Wait 2
Enable Interrupts 'WŁĄCZNIENIE PRZERWAŃ TIMERA0
Minuta_ust = 0 ' ZEROWANIE MINUTA_UST
Set Portd.0 'USTAWIENIE PORTÓW
Set Portd.1
Set Portd.2
Set Portd.5
Reset Portd.6
Reset Portd.7
Do 'POCZĄTEK GŁ. PĘTLI
If S1 = 0 And S2 = 0 Then 'WŁ/WYŁ POMPKI
Waitms 900
If S1 = 0 And S2 = 0 Then
Call Pompka
End If
End If
Locate 1 , 1 'MENU USTAWIANIA CZASU
Lcd " USTAW CZAS "
Locate 2 , 1
Lcd " " ; Minuta_ust ; " "
Locate 2 , 8
Lcd " MIN "
If S1 = 0 Then ' USTAWIANIE ZEGARA
Waitms 100
If S1 = 0 Then
Incr Minuta_ust
End If
End If
If Minuta_ust = 100 Then
Minuta_ust = 0
End If
If S2 = 0 Then
Waitms 100
If S2 = 0 Then
Decr Minuta_ust
End If
End If
If Minuta_ust = 255 Then
Minuta_ust = 99
End If
If S3 = 0 Then 'WŁ/WYŁ ODLICZANIA
Waitms 100
If S3 = 0 Then
Call Naswietlanie
End If
End If
Loop
Sub Naswietlanie 'PODPROGRAM NAŚWIETLANIA
Cls
Sekunda = 0
Minuta = 0
Do
If S3 = 0 Then
Waitms 100
If S3 = 0 Then
Reset Portd.6
Cls
Exit Sub
End If
End If
Set Portd.6
Enable Timer0
Load Timer0 = 250
'MENU ODLICZANIA I KOŃCA PROGRAMU
If Sekunda = 60 Then
Incr Minuta
Sekunda = 0
End If
If S1 = 0 And S2 = 0 Then
Waitms 500
If S1 = 0 And S2 = 0 Then
Call Pompka
End If
End If
If Minuta_ust > Minuta Then
Set Portd.6
End If
If Minuta_ust = Minuta Then
Reset Portd.5
Locate 1 , 1
Lcd " KONIEC "
Locate 2 , 1
Lcd " NASWIETLANIA "
Wait 2
Set Portd.5
Reset Portd.6
Exit Sub
End If
Minuta_wys = Minuta_ust - Minuta
Locate 1 , 1
Lcd " POZOSTALO "
Locate 2 , 6
Lcd Minuta_wys ; " MIN"
Loop
End Sub
Sub Pompka
Toggle Portd.7
End Sub
Odmierz_1s: 'PODPROGRAM Odmierz_1s
Load Timer0 = 250
Incr Licz_8ms
If Licz_8ms = 125 Then
Licz_8ms = 0
Incr Sekunda
End If
Return
[ Dodano: 21-01-2007, 18:20 ]
KONIEC!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ΣΠΔΘΩµ
[ Dodano: 20-01-2007, 21:47 ]
Ciężko przez 2 dni nauczyć się Bascoma. Jak narazie improwizuje
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2
Config Lcdpin = Pin , Db6 = Portc.1 , Db7 = Portc.0 ,
Config Lcdpin = Pin , E = Portc.4 , Rs = Portc.5
Config Pind.0 = Input
Config Pind.1 = Input
Config Pind.2 = Input
Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.7 = Output
S1 Alias Pind.0
S2 Alias Pind.1
S3 Alias Pind.2
Piezo Alias Portd.5
Swietlowka Alias Portd.6
Pompa Alias Portd.7
Config Pind.1 = Input
Config Timer1 = Timer , Prescale = 64
Declare Sub Wysw_czas
On Timer1 Odmierz_1s
Enable Interrupts
Enable Timer1
Counter1 = 34286
Dim Sekundy As Byte
Dim Minuty As Byte
Dim Nowa_w As Byte
Dim Wart_bcd As Byte
Set Nowa_w
Set Portd.0
Set Portd.1
Set Portd.3
'---------------------------------------
Cls
Cursor Off Noblink
Locate 1 , 3
Lcd "DUZE"
Locate 2 , 8
Lcd "AKWARIUM"
Waitms 200
Cls
Do
Call Wysw_czas
If S1 = 0 Then
Waitms 10
If S1 = 0 Then
Incr Minuty '
Sekundy = 0
If Minuty = 60 Then
Minuty = 0
End If
Set Nowa_w
Call Wysw_czas
Waitms 20
End If
End If
If S2 = 0 Then
Waitms 25
If S2 = 0 Then
Decr Minuty
Sekundy = 0
If Minuty = 0 Then
Minuty = 60
End If
Set Nowa_w
Call Wysw_czas
Waitms 20
End If
End If
Loop
End
Sub Wysw_czas
If Nowa_w = 1 Then
Cls
Locate 1 , 4
Lcd "POZOSTALO"
Locate 2 , 5
Wart_bcd = Makebcd(minuty)
Lcd Bcd(wart_bcd) ; " MIN"
'Locate 2 , 8
'Wart_bcd = Makebcd(sekundy)
'Lcd Bcd(wart_bcd) ; " MIN"
Reset Nowa_w
End If
End Sub Wysw_czas
Odmierz_1s:
Counter1 = Counter1 + 34286
Incr Sekundy
Set Nowa_w
If Sekundy = 60 Then
Sekundy = 0
Decr Minuty
If Minuty = 60 Then
Minuty = 0
End If
End If
Return
Nie dziła to jeszcze nawet w połowie tak jakbym chciał, no ale jak się nie ma co się lubi, to się lubi co się ma.
[ Dodano: 21-01-2007, 02:35 ]
Ostatnia wersja
Cls
Do
If S3 = 0 Then
Gosub Pr1
End If
Call Wysw_czas
If S1 = 0 Then
Waitms 10
If S1 = 0 Then
Incr Minuty '
End If
Set Nowa_w
Call Wysw_czas
Waitms 20
End If
If S2 = 0 Then
Waitms 25
If S2 = 0 Then
Decr Minuty
End If
Set Nowa_w
Call Wysw_czas
Waitms 20
End If
Loop
Sub Wysw_czas
If Nowa_w = 1 Then
Cls
Locate 1 , 4
Lcd "POZOSTALO"
Locate 2 , 5
Wart_bcd = Makebcd(minuty)
Lcd Bcd(wart_bcd) ; " MIN"
'Locate 2 , 8
' Wart_bcd = Makebcd(sekundy)
' Lcd Bcd(wart_bcd) ; " MIN"
Reset Nowa_w
End If
End Sub Wysw_czas
Pr1:
Enable Timer1
Call Wys_czas
Set Nowa_w
Sub Wys_czas
If Nowa_w = 1 Then
Cls
Locate 1 , 4
Lcd "POZOSTALO"
Locate 2 , 5
Wart_bcd = Makebcd(minuty)
Lcd Bcd(wart_bcd) ; " MIN"
'Locate 2 , 8
'Wart_bcd = Makebcd(sekundy)
'Lcd Bcd(wart_bcd) ; " MIN"
Reset Nowa_w
End If
End Sub Wys_czas
Return
Odmierz_1s:
Counter1 = Counter1 + 34286
Incr Sekundy
Set Nowa_w
If Sekundy = 60 Then
Sekundy = 0
Decr Minuty
End If
Return
End
[ Dodano: 21-01-2007, 18:19 ]
I jak, podoba się?
$regfile = "m8def.dat" 'INFORMUJE KOMPILATOR O PLIKU DYREKTYW MIKROPROCESORA
$crystal = 8000000 'INFORMUJE KOMPILATOR O CZĘSTOTLIWOŚĆI OSCYLATORA TAKTUJĄCEGO MIKROKONTROLER
Config Lcd = 16 * 2 'DEKLARACJA WYŚWIETLACZA LCD
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2
Config Lcdpin = Pin , Db6 = Portc.1 , Db7 = Portc.0 ,
Config Lcdpin = Pin , E = Portc.4 , Rs = Portc.5
Config Pind.0 = Input 'DEKLARACJA PORTÓW WEJŚCIA/WYJŚCIA
Config Pind.1 = Input
Config Pind.2 = Input
Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.7 = Output
S1 Alias Pind.0 'PRZYPISANIE NAZW WEJ/WYJ
S2 Alias Pind.1
S3 Alias Pind.2
Piezo Alias Portd.5
Swietlowka Alias Portd.6
Pompa Alias Portd.7
Config Timer0 = Timer , Prescale = 256 'KONFIGURACJA TIMERA0
On Timer0 Odmierz_1s 'WŁĄCZENIE TIMER0 W PODPROGRAMIE Odmierz_1s
Dim Licz_8ms As Byte 'DEKLARACJA ZMIENNYCH
Dim Sekunda As Byte
Dim Minuta As Byte
Dim Minuta_ust As Byte
Dim Minuta_wys As Byte
Declare Sub Naswietlanie 'DEKLARACJA PODPROGRAMÓW
Declare Sub Pompka
Cursor Off
Cls
Reset Portd.5 'WŁĄCZNIE PIEZA
Waitms 50
Set Portd.5
Waitms 50
Reset Portd.5
Waitms 50
Set Portd.5
Waitms 50
Reset Portd.5
Waitms 50
Set Portd.5
'WYŁĄCZNIE KURSORA
Cls 'CZYSZCZENIE EKRANU
Locate 1 , 1 'POZYCJONOWANIE NAPISÓW
Lcd " Naswietlarka"
Locate 2 , 1
Lcd " UV "
Wait 2
Enable Interrupts 'WŁĄCZNIENIE PRZERWAŃ TIMERA0
Minuta_ust = 0 ' ZEROWANIE MINUTA_UST
Set Portd.0 'USTAWIENIE PORTÓW
Set Portd.1
Set Portd.2
Set Portd.5
Reset Portd.6
Reset Portd.7
Do 'POCZĄTEK GŁ. PĘTLI
If S1 = 0 And S2 = 0 Then 'WŁ/WYŁ POMPKI
Waitms 900
If S1 = 0 And S2 = 0 Then
Call Pompka
End If
End If
Locate 1 , 1 'MENU USTAWIANIA CZASU
Lcd " USTAW CZAS "
Locate 2 , 1
Lcd " " ; Minuta_ust ; " "
Locate 2 , 8
Lcd " MIN "
If S1 = 0 Then ' USTAWIANIE ZEGARA
Waitms 100
If S1 = 0 Then
Incr Minuta_ust
End If
End If
If Minuta_ust = 100 Then
Minuta_ust = 0
End If
If S2 = 0 Then
Waitms 100
If S2 = 0 Then
Decr Minuta_ust
End If
End If
If Minuta_ust = 255 Then
Minuta_ust = 99
End If
If S3 = 0 Then 'WŁ/WYŁ ODLICZANIA
Waitms 100
If S3 = 0 Then
Call Naswietlanie
End If
End If
Loop
Sub Naswietlanie 'PODPROGRAM NAŚWIETLANIA
Cls
Sekunda = 0
Minuta = 0
Do
If S3 = 0 Then
Waitms 100
If S3 = 0 Then
Reset Portd.6
Cls
Exit Sub
End If
End If
Set Portd.6
Enable Timer0
Load Timer0 = 250
'MENU ODLICZANIA I KOŃCA PROGRAMU
If Sekunda = 60 Then
Incr Minuta
Sekunda = 0
End If
If S1 = 0 And S2 = 0 Then
Waitms 500
If S1 = 0 And S2 = 0 Then
Call Pompka
End If
End If
If Minuta_ust > Minuta Then
Set Portd.6
End If
If Minuta_ust = Minuta Then
Reset Portd.5
Locate 1 , 1
Lcd " KONIEC "
Locate 2 , 1
Lcd " NASWIETLANIA "
Wait 2
Set Portd.5
Reset Portd.6
Exit Sub
End If
Minuta_wys = Minuta_ust - Minuta
Locate 1 , 1
Lcd " POZOSTALO "
Locate 2 , 6
Lcd Minuta_wys ; " MIN"
Loop
End Sub
Sub Pompka
Toggle Portd.7
End Sub
Odmierz_1s: 'PODPROGRAM Odmierz_1s
Load Timer0 = 250
Incr Licz_8ms
If Licz_8ms = 125 Then
Licz_8ms = 0
Incr Sekunda
End If
Return
[ Dodano: 21-01-2007, 18:20 ]
KONIEC!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ΣΠΔΘΩµ
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 21 gości