I haven't studied your code but here is an example:
The SPI mode allows 8-bits of data to be synchronously
transmitted and received, simultaneously.
Shiftin, Shiftout & their MSSP equivalent.
As a PIC18F452 example see page 130 of 452 data sheet for your SPI configuration ofCode:subREAD: Low CS ''''Shiftout sSI,sCLK,msbfirst,[vOP_READ\8,sDONT_CARE\16,vADDRESS_READ\8,sDONT_CARE\8] SSPBUF = vOP_READ ' SEND DATA BYTE While SSPSTAT.0 = 0: Wend ' WHILE TX/RX COMPLETE vDUMMY = SSPBUF SSPBUF = 0 'DON'T CARE While SSPSTAT.0 = 0: Wend ' WHILE TX/RX COMPLETE vDUMMY = SSPBUF SSPBUF = 0 'DON'T CARE While SSPSTAT.0 = 0: Wend ' WHILE TX/RX COMPLETE vDUMMY = SSPBUF SSPBUF = vADDRESS_READ While SSPSTAT.0 = 0: Wend ' WHILE TX/RX COMPLETE vDUMMY = SSPBUF SSPBUF = 0 'DON'T CARE While SSPSTAT.0 = 0: Wend ' WHILE TX/RX COMPLETE vDUMMY = SSPBUF For z = 1 To 200 ''''Shiftin sSO,sCLK,msbpre,[vREAD\8] SSPBUF = 0 While SSPSTAT.0 = 0: Wend ' WHILE TX/RX COMPLETE vREAD = SSPBUF Next High CS Return
SSPSTAT = %01000000
SSPCON1 = %00100010
Norm




Bookmarks