Odczyt I bus bas


$regfile = "2313def.dat"
$crystal = 4000000
$baud = 9600

Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.2 , E = Portb.3 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7

Display On
'Cursor Off Noblink
Config Pinb.0 = Output 'podswietlanie wyświetlacza
Portb.0 = 1
'Pinb = Output
'-------------deklaracia zmiennych---------------------------

Dim Os1 As Byte 'tylko 7 bajtów odbieranego sygnału
Dim Os2 As Byte
Dim Os3 As Byte
Dim Os4 As Byte
Dim Os5 As Byte
Dim Os6 As Byte
Dim Os7 As Byte
Dim Kos1 As Byte ' taka kopia tych bajtów
Dim Kos2 As Byte
Dim Kos3 As Byte
Dim Kos4 As Byte
Dim Kos5 As Byte
Dim Kos6 As Byte
Dim Kos7 As Byte
Dim Obr As Byte
Dim Pr As Byte
Dim Obr1 As Integer
Dim Pr1 As Integer
'Dim Channel As Byte
Dim Serial_flag As Byte 'flaga czy coś jest odebranego
Dim Serial_rx(7) As Byte 'tablica do odbierania
'-----------------konfiguracjia seriala----------------------
Config Serialin = Buffered , Size = 34 'STARa wartość 7 działająca a 100 jeszcze nie sprawdzałem


Enable Interrupts 'wł przerwań



Cls
Do 'pętla
Serial_flag = Ischarwaiting() 'jesli znak czeka to ustaw flage


If Serial_flag = 1 Then ' jesli flaga =1
Inputbin Serial_rx(1) ; 1 'przypisz dane z bufora do tablicy startujac od pierwszego byte-u
Os1 = Serial_rx(1) ; 1 'teraz do zmiennych
Os2 = Serial_rx(2) ; 1 ' i do drugiej zmiennnej i tak dalej
Os3 = Serial_rx(3) ; 1
Os4 = Serial_rx(4) ; 1
Os5 = Serial_rx(5) ; 1
Os6 = Serial_rx(6) ; 1
Os7 = Serial_rx(7) ; 1
Kos1 = Os1 'oraz do kopii
Kos2 = Os2
Kos3 = Os3
Kos4 = Os4
Kos5 = Os5
Kos6 = Os6
Kos7 = Os7

'Locate 1 , 1 'na górnej linijce pokazywane są aktualne odebrane znaki
'Lcd Hex(os1) ; " " ; Hex(os2) ; " " ; Hex(os3) ; " " ; Hex(os4) ; " " ; Hex(os5) ; " " ; Hex(os6) ; " " ; Hex(os7)

'Locate 2 , 1 'na dolnej pokazywane są ostatnio odebrane znaki
'Lcd Hex(kos1) ; " " ; Hex(kos2) ; " " ; Hex(kos3) ; " " ; Hex(kos4) ; " " ; Hex(kos5) ; " " ; Hex(kos6) ; " " ; Hex(kos7)

'Clear Serialin 'czyszczenie bufora


Cls
'Locate 2 , 1 'jeszcze raz pokaż po czyszczeniu ekranu ostatnio odebrane znaki
'Lcd Hex(kos1) ; " " ; Hex(kos2) ; " " ; Hex(kos3) ; " " ; Hex(kos4) ; " " ; Hex(kos5) ; " " ; Hex(kos6) ; " " ; Hex(kos7)

End If

If Kos1 = 128 And Kos2 = 5 And Kos3 = 191 And Kos4 = 24 Then 'sprawdza czy pierwszy bajt ramki to 128 hex(80 ) drugi to 5 trzeci 191 i czwarty 24 wtedy
Pr = Kos5 'wpisuje z bajtu 5 do zmiennej prędkosc
Obr = Kos6 'oraz obroty
Pr1 = Pr * 2 'prędkość trzeba pomnożyć przez dwa
Obr1 = Obr * 100 'a obroty przez 100
Cls
Locate 1 , 1 'jeszcze raz pokaż po czyszczeniu ekranu ostatnio odebrane znaki
Lcd Hex(kos1) ; " " ; Hex(kos2) ; " " ; Hex(kos3) ; " " ; Hex(kos4) ; " " ; Hex(kos5) ; " " ; Hex(kos6) ; " " ; Hex(kos7) 'na pierwszej lini tak kontrolnie cała ramka
Locate 2 , 1
Lcd Pr1 ; "km/h" ; Obr1 ; "rpm/min"

Waitms 100
Else
Locate 2 , 1
Lcd Pr1 ; "km/h" ; Obr1 ; "rpm/min"
Waitms 100
End If

Loop 'koniec pętli

End

Wyszukiwarka

Podobne podstrony:
Destiny´s Child Get on the Bus
jak odczytywać informacje nazw Photoshopa
mb bus all
struktury z plikiem DYSKI TWARDE dopis do pliku odczyt więcej niż 120Gb
Restauracja drewnianych elementów hotelu Le Bas de Montagris
Odczytujemy współrzędne geograficzne
Partnerstwo Wschodnie INFOS BAS
04a?5 Power Supply and Bus Systems
02 3 Series Bus Charts
CAN Bus Drivers for Atmel C51 Products

więcej podobnych podstron