Witam
Czujnik MPL115A1 jest czujnikiem ciśnienia absolutnego z magistralą SPI, próbuję go obsłużyć z poziomu Bascoma, ale niestety bez sukcesu. podstawowe dane dotyczące tego czujnika można znaleźć na stronie producenta http://cache.freescale.com/files/sensors/doc/app_note/AN3785.pdf?fpsp=1 Próbowałem w Bascomie różnych kombinacji z komendami Spiin Spiout, Spimove, próbowałem połączyć się z czujnikiem poprzez Spi=Hard jak i Spi=Soft, niestety bez rezultatu.
Procesor jakiego używałem to Atmega16, clock 4Mhz
Znalazłem kod w C na Atmege328, ale niestety nie znam tego języka aby przerobić to na Atmego16 z obsługa LCD.
Jeżeli ktoś ma jakieś doświadczenia z obsługa tego czujnika przy pomocy Bascoma proszę o pomoc.
Link do kodu w C http://www.sparkfun.com/datasheets/BreakoutBoards/MPL115A1-ATmega328Code-8-9-10.zip
Przykładowy kod z Bascoma z instrukcją Spimove
Czujnik MPL115A1 jest czujnikiem ciśnienia absolutnego z magistralą SPI, próbuję go obsłużyć z poziomu Bascoma, ale niestety bez sukcesu. podstawowe dane dotyczące tego czujnika można znaleźć na stronie producenta http://cache.freescale.com/files/sensors/doc/app_note/AN3785.pdf?fpsp=1 Próbowałem w Bascomie różnych kombinacji z komendami Spiin Spiout, Spimove, próbowałem połączyć się z czujnikiem poprzez Spi=Hard jak i Spi=Soft, niestety bez rezultatu.
Procesor jakiego używałem to Atmega16, clock 4Mhz
Znalazłem kod w C na Atmege328, ale niestety nie znam tego języka aby przerobić to na Atmego16 z obsługa LCD.
Jeżeli ktoś ma jakieś doświadczenia z obsługa tego czujnika przy pomocy Bascoma proszę o pomoc.
Link do kodu w C http://www.sparkfun.com/datasheets/BreakoutBoards/MPL115A1-ATmega328Code-8-9-10.zip
Przykładowy kod z Bascoma z instrukcją Spimove
$regfile = "m16def.dat" ' CPU clock
$crystal = 4000000 '$sim
'-----------------LCD--------------------------------
Config Lcd = 24 * 2
'Testowa
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
Config Lcd = 24 * 2
Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = High , Phase = 0 , Clockrate = 128 , Noss = 0
Dim P1 As Bit
Dim Phigh As Byte
Dim Plow As Byte
Dim Thigh As Byte
Dim Tlow As Byte
Dim Adres As Byte
Dim Rb1 As Byte
Dim Rb2 As Byte
Dim Rb3 As Byte
Dim Rb4 As Byte
Dim Rb5 As Byte
Config Portb.7 = Output 'CLOCK
Portb.7 = 0
Config Portb.6 = Output 'DOut
Portb.6 = 0
Config Pinb.5 = Input 'DIn
Portb.5 = 0
Config Portb.4 = Output 'Cs
Portb.4 = 1
Spiinit
Cursor Off
Cls
Lcd "START"
Wait 1
Do
Cls
Reset Portb.4
Adres = &H24
Rb1 = Spimove(adres)
Rb1 = Spimove(&H00)
Waitms 10
Phigh = Spimove(&H80)
Rb2 = Spimove(&H00)
Plow = Spimove(&H82)
Rb3 = Spimove(&H00)
Thigh = Spimove(&H84)
Rb4 = Spimove(&H00)
Tlow = Spimove(&H86)
Rb1 = Spimove(&H00)
Rb5 = Spimove(&H00)
Set Portb.4
Toggle P1
If P1 = 0 Then
Locate 2 , 23
Lcd "*"
End If
If P1 = 1 Then
Locate 2 , 23
Lcd " "
End If
Home
Lcd "Ph=" ; Phigh ; " Pl=" ; Plow ; " Rb1=" ; Rb1 ; " Rb2=" ; Rb2;
Lowerline
Lcd "Th=" ; Thigh ; " Tl=" ; Tlow ; " Rb3=" ; Rb3 ; " Rb4=" ; Rb4;
Wait 2
Loop