summaryrefslogtreecommitdiff
path: root/bootloader/com-16f887-spi.inc
diff options
context:
space:
mode:
Diffstat (limited to 'bootloader/com-16f887-spi.inc')
-rw-r--r--bootloader/com-16f887-spi.inc16
1 files changed, 14 insertions, 2 deletions
diff --git a/bootloader/com-16f887-spi.inc b/bootloader/com-16f887-spi.inc
index 7f501cf..e4b8d2a 100644
--- a/bootloader/com-16f887-spi.inc
+++ b/bootloader/com-16f887-spi.inc
@@ -20,10 +20,20 @@
;; along with spreadspace pic utils. If not, see <http://www.gnu.org/licenses/>.
;;
+#define INTPIN PORTA,4
+
;; --- transmit byte and add it to csum
com_tx_byte
- ;; TODO add write
+ movwf SSPBUF
+ bcf INTPIN
xorwf csum,f
+ bsf STATUS,RP0
+com_tx_byte_wait
+ btfss SSPSTAT,BF
+ goto com_tx_byte_wait
+ bcf STATUS,RP0
+ movf SSPBUF,w
+ bsf INTPIN
return
;; ---- wait for byte to be received
@@ -57,8 +67,10 @@ com_init
movlw b'01000000' ; SMP=0,CKE=1
movwf SSPSTAT
bcf TRISC,5 ; RC5(SDO) = out
-
+ bcf INTPIN ; interrupt line to master
+
;; bank 0
bcf STATUS,RP0
movlw b'00100100' ; SSPEN=1,CKP=0,SSPM=0100(SPI Slave with SS)
movwf SSPCON
+ bsf INTPIN