chiark / gitweb /
i2c slave debugging: faff a bit with led settings in slave pic; make master panic...
authorian <ian>
Tue, 22 Feb 2005 22:18:38 +0000 (22:18 +0000)
committerian <ian>
Tue, 22 Feb 2005 22:18:38 +0000 (22:18 +0000)
cebpic/i2c-test.asm

index 20b6ce711b5bf3fbbc5641a944bb94592eab8066..58b6bea2b454b3b39e20fce68c806ed08aa751b8 100644 (file)
@@ -240,8 +240,9 @@ slave_main
 
 slave_main_loop
        call    wait_for_i2c_interrupt  ; wait for 1st (address) byte
+       call    led_green
        call    wait_for_i2c_interrupt  ; wait for 2nd (data) byte
-       btg     TRISD,2,0               ; toggle LED on/off
+       call    led_black
        goto    slave_main_loop
 
 ;----------------------------------------
@@ -255,6 +256,7 @@ serial_rx_isr
        call    wait_for_i2c_interrupt
 
        debug   'e'
+       call    panic
 
        movlw   0x41                    ; transmit address 0100 0001
        movwf   SSPBUF,0
@@ -390,8 +392,8 @@ i2c_setup
        goto    i2c_setup_if_slave
 
 i2c_setup_if_master
-       movlw   0x08
-       movwf   SSPCON1,0       ; set to master mode, clear top 4 bits
+       movlw   0x08            ; clear top 2 status bits; disable SSP;
+       movwf   SSPCON1,0       ;  CKP unused, set to 0; master mode.
 
 ; set baud rate
        movlw   100-1
@@ -402,10 +404,10 @@ i2c_setup_if_master
        goto    i2c_setup_endif_master_slave
 
 i2c_setup_if_slave
-       movlw   0x06
-       movwf   SSPCON1,0       ; set to 7bit slave mode, clear top 4 bits
-                               ; (no extra start/stop interrupts)
-       !!fixme probably want to set SSPCON2:SEN "clock stretching"
+       movlw   0x16            ; clear top 2 status bits; disable SSP;
+       movwf   SSPCON1,0       ;  release clock; 7bit slave mode with
+                               ;  no extra start/stop interrupts.
+;      !!fixme probably want to set SSPCON2:SEN "clock stretching"
 
 ; set slave address
        banksel PIC_NO          ; set BSR=i2c BSR (4)