Hi,
This morning has been a bit of a blur!
It's possible, I've got something to work, I'll have a break, then re-check
I searched for BMP280 Burst READ, but couldn't find much about it, does this look like BURST READ?
Here is a section of CODE and the Terminal view.
C
This morning has been a bit of a blur!
It's possible, I've got something to work, I'll have a break, then re-check
I searched for BMP280 Burst READ, but couldn't find much about it, does this look like BURST READ?
Here is a section of CODE and the Terminal view.
C
Code:
main: '/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
rd_adr = 0xf7 '0xF7 press_msb_adr
press_msb_dta = read_dta(rd_adr)
rd_adr = 0xf8 '0xF8 press_msb_adr
press_lsb_dta = read_dta(rd_adr)
rd_adr = 0xf9 '0xF9 press_msb_adr
press_xlsb_dta = read_dta(rd_adr)
rd_adr = 0xfa '0xFA press_msb_adr
temp_msb_dta = read_dta(rd_adr)
rd_adr = 0xfb '0xFB press_msb_adr
temp_lsb_dta = read_dta(rd_adr)
rd_adr = 0xfc '0xFC press_msb_adr
temp_xlsb_dta = read_dta(rd_adr)
Toggle rled
WaitMs 100
Hserout "press_msb_dta ", #press_msb_dta, CrLf
Hserout "press_lsb_dta ", #press_lsb_dta, CrLf
Hserout "press_xlsb_dta ", #press_xlsb_dta, CrLf, CrLf
Hserout "temp_msb_dta ", #temp_msb_dta, CrLf
Hserout "temp_lsb_dta ", #temp_lsb_dta, CrLf
Hserout "temp_xlsb_dta ", #temp_xlsb_dta, CrLf, CrLf
Goto main
End
'----------- PERIPHERAL UTILITIES -------------
'HC-12 INITIALISATION
init_HC12:
'PRESS BUTTON (OR RADSET)
radset = RADIO_COMMAND_MODE 'SET HC-12 COMMAND ON
Hserout "AT+C002", CrLf '433.800
radset = RADIO_DATA_MODE 'SET HC-12 RUN ON
Return
'------------------
Proc spi_init() 'looks like straight from the datasheet
'4620
TRISC.3 = 0 'SCK to Slave
TRISC.4 = 1 'MISO
TRISC.5 = 0 'MOSI
'MODE 0,0
SSPSTAT.SMP = 0 'Input data sampled at middle of data output time
SSPSTAT.CKE = 0 '1 Output data changes on clock transition from idle to active
SSPSTAT.5 = 0 'I2C only
SSPSTAT.4 = 0 'I2C only
SSPSTAT.3 = 0 'I2C only
SSPSTAT.2 = 0 'I2C only
SSPSTAT.1 = 0 'I2C only
SSPSTAT.BF = 0 'If SSPBUF=1=Full
SSPCON1.WCOL = 0 'Collision detect
SSPCON1.SSPOV = 0 'Overflow
SSPCON1.SSPEN = 1 'Configure SCK,SD0,SDI,/SS
SSPCON1.CKP = 1 '[1] 'Clock Idle high, Active low [Clock Idle Low, Active High]
SSPCON1.SSPM3 = 0 '0010 = SPI Master mode, clock = FOSC/64
SSPCON1.SSPM2 = 0
SSPCON1.SSPM1 = 1
SSPCON1.SSPM0 = 0
End Proc
Proc write_dta()
altmtr_cs = 0
WaitUs 1
SSPBUF = wr_adr
While Not SSPSTAT.BF
Wend
WaitUs 1
SSPBUF = wr_byte
While Not SSPSTAT.BF
Wend
altmtr_cs = 1
End Proc
Function read_dta(rd_adr As Byte) As Byte
altmtr_cs = 0
WaitUs 1
SSPBUF = rd_adr
While Not SSPSTAT.BF
Wend
WaitUs 1
SSPBUF = rd_byte
While Not SSPSTAT.BF
Wend
read_dta = SSPBUF
altmtr_cs = 1
End Function
Attachments
-
155.9 KB Views: 3