przedstawiam poni żej listingf w którym podczas kompilacji wywala mi błąd
o złym typie zmiennej
przy wywołaniu procedury
co i jak żle zrobiłem:
to 1 problem
2 to ten że to program do obsługii 12 bitowego przetwornika a/d
z noty wyczytałem iż odczyt danych następuje wg. schematu:
1 sekwencja startu
2 podanie adresu do zapisu
3 potwierdzenie (slawe)
4 wystawienie bitu o wartości b&000xxxxx=0-31(10) - bit command z aplikacji
ADS 7823
potwierdzenie PRZEZ ADS
5 start
6adres do odczytu
7 potwierdzenie
8 podanie przez slawe starszej części bitu słowa 0
9 ack
10 młodsza część bitu
11 ack
12 powtórka 8-11 x 3 razy
13 nack
14 stop
i tu nic nie pojawia się w wyniku na wyświetlaczu
po wcześniejszych przeróbkach wyświetlał tylko części młodsze bitu.
gdzie tkwi błąd?
Config Scl = P3.5
Config Sda = P3.7
Config Lcd = 16 * 2 ' LCD 16*2
Cursor Off Noblink ' Kursor
Cls ' LCD Clea
Declare Sub Odczytdanych(wynik As Integer)
Dim Z As Byte
Dim Odczyt As Byte
Dim Zapis As Byte
Dim Wynik As Integer
Dim Zmienna As Word
Dim Zmienna1 As Word
Zapis = 144
Odczyt = 145
Do
Call Odczytdanych(wynik As Integer)
Lcd "U=" ; Wynik
Wait 1
Cls
Loop
Sub Odzytdanych(wynik As Integer)
Z = 31
I2cstart
I2cwbyte Zapis
I2cwbyte Z
I2cstart
I2cwbyte Odczyt
I2crbyte Zmienna , Ack
I2crbyte Zmienna , Nack
I2cstop
Zmienna1 = Zmienna
Zmienna1 = Zmienna1 * 20
Zmienna1 = Zmienna1 / 1000
Wynik = Zmienna1
End Sub
o złym typie zmiennej
przy wywołaniu procedury
co i jak żle zrobiłem:
to 1 problem
2 to ten że to program do obsługii 12 bitowego przetwornika a/d
z noty wyczytałem iż odczyt danych następuje wg. schematu:
1 sekwencja startu
2 podanie adresu do zapisu
3 potwierdzenie (slawe)
4 wystawienie bitu o wartości b&000xxxxx=0-31(10) - bit command z aplikacji
ADS 7823
potwierdzenie PRZEZ ADS
5 start
6adres do odczytu
7 potwierdzenie
8 podanie przez slawe starszej części bitu słowa 0
9 ack
10 młodsza część bitu
11 ack
12 powtórka 8-11 x 3 razy
13 nack
14 stop
i tu nic nie pojawia się w wyniku na wyświetlaczu
po wcześniejszych przeróbkach wyświetlał tylko części młodsze bitu.
gdzie tkwi błąd?
Config Scl = P3.5
Config Sda = P3.7
Config Lcd = 16 * 2 ' LCD 16*2
Cursor Off Noblink ' Kursor
Cls ' LCD Clea
Declare Sub Odczytdanych(wynik As Integer)
Dim Z As Byte
Dim Odczyt As Byte
Dim Zapis As Byte
Dim Wynik As Integer
Dim Zmienna As Word
Dim Zmienna1 As Word
Zapis = 144
Odczyt = 145
Do
Call Odczytdanych(wynik As Integer)
Lcd "U=" ; Wynik
Wait 1
Cls
Loop
Sub Odzytdanych(wynik As Integer)
Z = 31
I2cstart
I2cwbyte Zapis
I2cwbyte Z
I2cstart
I2cwbyte Odczyt
I2crbyte Zmienna , Ack
I2crbyte Zmienna , Nack
I2cstop
Zmienna1 = Zmienna
Zmienna1 = Zmienna1 * 20
Zmienna1 = Zmienna1 / 1000
Wynik = Zmienna1
End Sub