Hej. Postanowiłem poskładać kit z Nowego Elektronika "Stop złodzieju" 238-k
Kiedy przyszedł czas na programowanie µprocka okazało się że nie ma wsadu na stonce gazety. Przystąpiłem do przepisywania wszystkiego co było umieszczone w gazecie do Bascoma. Podczas próby kompilacji wywaliło taki błąd:
Wydaje mi się że wywali jeszcze inne błędy więc wrzucam cały program.
Kiedy przyszedł czas na programowanie µprocka okazało się że nie ma wsadu na stonce gazety. Przystąpiłem do przepisywania wszystkiego co było umieszczone w gazecie do Bascoma. Podczas próby kompilacji wywaliło taki błąd:
Error : 31 Line 47 Invalid datatype ,in File ...........Wydaje mi się że wywali jeszcze inne błędy więc wrzucam cały program.
$regfile = "attiny2313.dat"
$crystal = 11059200
$hwstack = 32
$swstack = 10
$framesize = 20
'DEKLARACJA ZMIENNYCH I PROCEDUR
Dim Flaga As Bit , Flaga1 As Bit
Dim Wylacz As Byte , Znak As Byte , Adres As Byte , Licznik As Byte
Dim Znak1 As Byte , Znak2 As Byte , Adres1 As Byte , Adres2 As Byte
Declare Sub Znajdz_numer(byval Adres As Byte)
Declare Sub Kasuj_eeprome(byval Adres As Byte)
Declare Sub Czytaj()
Declare Sub Czysc_bufor()
Declare Sub Porownaj()
Declare Sub Dzwon()
'STAWIENIE BUFORA RS323
Config Serialin = Buffered , Size = 48
Enable Interrupts
'KONFIGURACJA WEJSCIA
Config Pinb.0 = Input
Portb.0 = 1
Config Pinb.1 = Input
Portb.1 = 1
Config Pinb.2 = Input
Portb.2 = 1
Config Pinb.3 = Input
Portb.3 = 1
Config Pind.0 = Input
Portd.0 = 1
'KONFIGURACJA WYJSCIA
Config Pinb.4 = Output
Config Pinb.5 = Output
Config Pinb.6 = Output
Config Pinb.7 = Output
'USTAWIENIE TRANSMISJI RS323
If Sw_1 = 0 Then
$baud = 115200
Elseif Sw_2 = 0 Then
$baud = 57600
Elseif Sw_3 = 0 Then
$baud = 19200
End If
'USTAWIENIA STARTOWE
Pk_1 = 0
Pk_2 = 0
Pk_3 = 0
Pk_4 = 0
Led = 0
Flaga1 = 0
If Sw_4 = 0 Then
Call Kasuj_eeprome(&H7f)
Wait 1
Do
Led = 1
Loop
End If
Readeeprom Wylacz , &H50
If Wylacz = &H01 Then
Do
Pk_1 = 1
Pk_2 = 1
Pk_3 = 1
Pk_4 = 1
Led = 0
Waitims 50
Led = 1
Waitms 50
Loop
End If
Print "ATZ"
Wait 3
Call Czysc_bufor()
Print "ATE0"
Call Czysc_bufor()
Wait 3
'---------------------------------
'POBIERANIE NUMERU TELEFONU
'---------------------------------
Adres = &H70
Readeeprom Znak , Adres
If Znak = &H00 Then
Print "AT+CPBS=" ; Chr(34) ; "M" ; Chr(34)
Wait 3
Call Czysc_bufor()
Print "AT+CPBR=1,1"
'zmienic na 1,1
Wait 3
Call Kasuj_eeprome(&H7f)
Call Czytaj()
Call Znajdz_numer(&H70)
Call Kasur_eeprome(&H6f)
Call Czysc_bufor()
Do
Led = 1
Wait 1
Loop
End If
'---------------------------------
'GLOWNA PETLA PROGRAMU
'---------------------------------
Do
If Ischarwaiting() = &H01 Then
Wait 3
Call Czysc_bufor()
Print "AT+CLCC"
Wait 3
Print "ATH"
Wait 3
Call Czytaj()
Call Znajdz_numer()
Call Kasuj_eeprome()
Call Porownaj()
End If
If Alarm = 0 Then
Led = 0
Call Dzwon
End If
If Wylacz = &H01 Then
Pk_1 = 1
Pk_2 = 1
Pk_3 = 1
Pk_4 = 1
Do
Led = 1
Waitms 50
Led = 0
Loop
End If
Led = 1
Waitms 500
Led = 0
Waitms 500
Loop
'---------------------------------
'PROCEDURA DZWON
'---------------------------------
Sub Dzwon()
Adres = &H00
Print "ATZ"
Wait 3
Call Czysc_bufor()
Print "ATE0"
Call Czysc_bufor()
Wait 3
Print "ATD"
For Adres = &H70 To &H7F
Readeeprome Znak , Adres
If Znak <> &H00 Then
Print Chr(znak)
End If
Next Adres
Print ";"
Flaga1 = 1
Wait 30
Print "ATH"
Wait 3
Call Czysc_bufor()
End Sub
'---------------------------------
'PROCEDURA POROWNAJ
'---------------------------------
Sub Porownaj()
Adres1 = &H60
Adres2 = &H70
Do
Readeeprome Znak1 , Adres1
Readeeprome Znak2 , Adres2
If Znak1 = Znak2 Then
Wylacz = &H01
Exit Do
End If
Incr Adres1
Incr Adres2
Loop Until Adres2 = &H7F
Writeeprom Wylacz , &H50
End Sub
'---------------------------------
'PROCEDURA ZNAJDZ_NUMER
'---------------------------------
Sub Znajdz_numer(byval Adres As Byte)
Flaga = 0
Licznik = &H00
Do
Readeeprome Znak , Licznik
Incr Licznik
If Znak = 34 Then
Flaga = Not Flaga
If Flaga = 0 Then Exit Do
End If
If Flaga = 1 And Znak <> 34 Then
Writeeeprom Znak , Adres
Incr Adres
End If
Loop Until Licznik = &H2F
End Sub
'---------------------------------
'PROCEDURA KASUJ_EEPROM
'---------------------------------
Eeprom
Sub Kasuj_eeprom(byval Adres As Byte)
Licznik = &H00
Znak = &H00
For Licznik = 0 To Adres
Writeeeprom Znak , Licznik
Next Licznik
End Sub
'---------------------------------
'PROCEDURA CZYTAJ
'---------------------------------
Sub Czytaj()
Licznik = &H00
Do
If Ischarwaiting() = &H01 Then
Znak = Inkey()
Writeeeprome Znak , Licznik
Incr Licznik
Else
Exit Do
End If
Loop
End Sub
'---------------------------------
'PROCEDURA CZYSC_BUFOR
'---------------------------------
Sub Czysc_bufor()
Licznik = &H00
Do
If Ischarwaiting() = &H01 Then
Incr Licznik
Else
Exit Do
End If
Loop
End Sub