mam taki programik:
Cursor Off Noblink ' Kursor
Cls ' LCD Clean
Declare Sub Odczyt_pcf8591(kanal As Byte )
Dim Pomiar As Byte , Pomiar1 As Integer
Dim Kanal As Byte
'Dim Read_ad As Const 145 , Write_ad As Const 144
Const Read_ad = 145
Const Write_ad = 144
Dim U0 As Integer , U1 As Integer , U2 As Integer , U3 As Integer
Do
Call Odczyt_pcf8591(0) 'Kanał 0
U0 = Pomiar1
Call Odczyt_pcf8591(1) 'Kanał 1
U1 = Pomiar1
Call Odczyt_pcf8591(2) 'Kanał 2
U2 = Pomiar1
Call Odczyt_pcf8591(3) 'Kanał 3
U3 = Pomiar1
Waitms 200
Cls
Upperline
Lcd "U0= " ; U0 'U 0
Locate 1 , 10
Lcd "U1= " ; U1 'U 1
Lowerline
Lcd "U2= " ; U2 'U 2
Locate 2 , 10
Lcd "U3= " ; U3 'U 3
Loop
End
Sub Odczyt_pcf8591(kanal As Byte)
Dim Kanal1 As Byte
I2cstart ' I2C start
I2cwbyte Write_ad ' Wpis adresu PCF8591
I2cwbyte Kanal1 ' Kanał
I2cstart
I2cwbyte Read_ad ' Odczyt adresu PCF8591
I2crbyte Pomiar , Ack ' Odczyt kilku bajtów
I2crbyte Pomiar , Nack ' Odczyt ostatniego bajtu
I2cstop
Pomiar1 = Pomiar
Pomiar1 = Pomiar1 * 128
Pomiar1 = Pomiar1 / 133
End Sub
I niebardzo rozumiem dlaczego jak niemam zadnego napiecia podlaczonego na wejscie przetwornika wyswietla jakies wartosci. A tak naprawde to chce zrobic bardzo prosty woltomierz z dokladnoscia do 2 miejsc po przecinku. Prosze o pomoc
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ępcf8591 odczyt wejsc
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Sam się wpuściłeś w "kanał"
Piotrek
Masz na myśli chyba rozdzielczośćmam taki programik:... A tak naprawde to chce zrobic bardzo prosty woltomierz z dokladnoscia do 2 miejsc po przecinku. Prosze o pomocKod: Zaznacz cały
... Sub Odczyt_pcf8591(kanal As Byte) Dim Kanal1 As Byte 'ta zmienna , jest Ci raczej zbędna I2cstart ' I2C start I2cwbyte Write_ad ' Wpis adresu PCF8591 I2cwbyte Kanal1 ' Kanał w który właśnie wpadłeś ;) 'informacja , o n-rze kanału do odczytu znajduje się, ' w zmiennaj "kanal" , a "kanal1" zapewne równy jest "0" ...
Piotrek
Witam
Chciałbym wiedziec, czy procedura zastosowana przez ciebie działała w twoim układzie.
Zmodyfikowałem ją dla odczytu jednego kanału i nic. Ani w symulacji (avr bascom 4.12),
ani na uruchomieniówce(LCD pokazuje U0=0)
Chciałbym wiedziec, czy procedura zastosowana przez ciebie działała w twoim układzie.
Zmodyfikowałem ją dla odczytu jednego kanału i nic. Ani w symulacji (avr bascom 4.12),
ani na uruchomieniówce(LCD pokazuje U0=0)
Kod: Zaznacz cały
Cursor Off Noblink ' Kursor
Cls ' LCD Clean
Declare Sub Odczyt_pcf8591
Dim Pomiar As Byte , Pomiar1 As Integer
Dim Kanal As Byte
Const Read_ad = 145
Const Write_ad = 144
Dim U0 As Byte ,
Do
Call Odczyt_pcf8591
U0 = Pomiar1
Waitms 200
Cls
Upperline
Lcd "U0= " ; U0 'U 0
Loop
End
Sub Odczyt_pcf8591
I2cstart ' I2C start
I2cwbyte Write_ad ' Wpis adresu PCF8591
I2cwbyte Kanal ' Kanał
I2cstart
I2cwbyte Read_ad ' Odczyt adresu PCF8591
I2crbyte Pomiar , Ack ' Odczyt ostatniego bajtu
I2cstop
End Sub
[code]
Daj znać jak ci poszło :564:
Powodzenia
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości