From a140af99c9a96d3e6a5ac73ba3d9c26c2ab540ee Mon Sep 17 00:00:00 2001 From: ian Date: Fri, 30 Dec 2005 04:06:45 +0000 Subject: [PATCH] yet better handling of sudden panics vis-a-vis i2c on master --- detpic/crashread | 2 +- detpic/panic.asm | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/detpic/crashread b/detpic/crashread index 7507732..95fa725 100755 --- a/detpic/crashread +++ b/detpic/crashread @@ -201,7 +201,7 @@ proc pause {t} { } proc setup_m {} { xmit 0; xmit 0; xmit 0; pause 250; junkrecv } -proc setup_s {} { setup_m; xmit_s 0; xmit_s 0 } +proc setup_s {} { setup_m; xmit 128; pause 256; junkrecv; xmit_s 0; xmit_s 0 } proc setup_t {} { } proc selectaddr_ms {xmit a} { diff --git a/detpic/panic.asm b/detpic/panic.asm index 550aa4c..829de2a 100644 --- a/detpic/panic.asm +++ b/detpic/panic.asm @@ -20,7 +20,8 @@ panicst_restart_i2c equ 7 panicst_acked equ 5 panicst_ferroerr equ 4 panicst_writeslave equ 3 -panicst_onlyourwrite equ 2 +panicst_i2cmours equ 2 +panicst_i2cmenable equ 2 panic_valcount res 1 @@ -366,6 +367,9 @@ waiting_master bra waiting_loop ; master, i2c enabled: + bt_f_if0 panicst, panicst_i2cmenable + bra waiting_loop + bt_f_if1 PIR1, SSPIF rcall pan_i2cm_interrupt @@ -464,7 +468,7 @@ write_if_setbytetowrite bc_w 7 mov_wf panic_valcount bs_f panicst, panicst_writeslave - bs_f panicst, panicst_onlyourwrite + bs_f panicst, panicst_i2cmenable return ;---------- @@ -477,6 +481,7 @@ write_if_master_slaveread write_if_master_slaveselect bc_w 5 btg_w 4 + bs_f panicst, panicst_i2cmours bt_f_if1 panicst, panicst_writeslave bra pan_i2cm_write_start bra pan_i2cm_read_start @@ -494,6 +499,8 @@ write_if_master_masterread_loop ;---------- pan_i2cmu_read_got_byte + bt_f_if0 panicst, panicst_i2cmours + return call serial_write_char dec_f_ifnz panic_valcount bra pan_i2cm_read_another @@ -503,7 +510,7 @@ pan_i2cmu_read_got_byte pan_i2cmu_write_next_byte mov_fw panic_valcount bc_f STATUS, Z - bt_f_if0 panicst, panicst_onlyourwrite + bt_f_if0 panicst, panicst_i2cmours retlw 0x00 bt_f_if0 panicst, panicst_writeslave bs_f STATUS, Z -- 2.30.2