From 039b18ba3e936ea20addf21db6a8a6635b3785b5 Mon Sep 17 00:00:00 2001 From: ian Date: Thu, 29 Dec 2005 13:30:39 +0000 Subject: [PATCH] support 32MHz clock; do morse clock with make-clocks rather than clockvaries.inc --- detpic/panic.asm | 19 +++++++++++++++++-- detpic/program.clocks | 5 ++++- iwjpictest/clockvaries.inc | 39 ++++---------------------------------- iwjpictest/copybits.asm | 2 +- iwjpictest/serialloop.asm | 2 +- pic.make | 2 +- 6 files changed, 28 insertions(+), 41 deletions(-) diff --git a/detpic/panic.asm b/detpic/panic.asm index 2e70a5a..ec1721a 100644 --- a/detpic/panic.asm +++ b/detpic/panic.asm @@ -106,16 +106,31 @@ stacksave_loop ; re-initialise timer0 config, etc. call read_pic_no bra_z panic_setup_if_master + ; must be slave: + panic_setup_if_slave - morse_t0setup sclock, (1<_{master,slave}_t[13]cycles # then time to overflow will be specified time -#morse MS T0ov16 66ms points MS T3ov 10ms tick MS T2period 1ms + +; we do morse at 18wpm according to the PARIS standard +; (ie a unit time of 66ms) using timer0 (DS p108) +morse MS T0ov16 66ms diff --git a/iwjpictest/clockvaries.inc b/iwjpictest/clockvaries.inc index 2a5cfaa..dfefe58 100644 --- a/iwjpictest/clockvaries.inc +++ b/iwjpictest/clockvaries.inc @@ -7,6 +7,10 @@ ; for serial port at 9600 ; according to table in datasheet top right p186 + if mclock==32000 +serial_brgh equ (1< 1.6us -t0cycles equ 41250 ; * 1.6us = 66ms - endif - if clock==5000 ; Fosc=5MHz ie 200ns, Fcy=800ns -t0scale equ 0000b ; 1:2 => 1.6us -t0cycles equ 41250 ; * 1.6us = 66ms - endif - if clock<=3900 -t0scale equ 1000b ; do not use prescaler ; cycle is 4/clock ms -t0cycles equ (33 * clock) / 2 ; (4/clock) * (33*clock)/2 = 2*33 = 66ms - endif - if t0cycles > 0 - else - error "unsupported clock speed (t0cycles)" - endif - movlw t0con_other | t0scale - movwf T0CON - if hcount>=0 - movlw (65535-t0cycles) / 256 - movwf hcount - endif - if lcount>=0 - movlw (65535-t0cycles) & 0xff - movwf lcount - endif - endm - ;---------------------------------------------------------------------- ; busy-wait delay loop, originally from flasher.asm diff --git a/iwjpictest/copybits.asm b/iwjpictest/copybits.asm index c1c3eb6..4444265 100644 --- a/iwjpictest/copybits.asm +++ b/iwjpictest/copybits.asm @@ -18,7 +18,7 @@ ACCSFR equ 0x0f00 COUNTINNER equ 0x00 COUNTOUTER equ 0x02 - if mclock==20000 + if mclock>=20000 OUTEREXP equ 7 ; 2^7 * 2.6ms = 332ms else if mclock==1000 diff --git a/iwjpictest/serialloop.asm b/iwjpictest/serialloop.asm index 64a4cd4..9b139fc 100644 --- a/iwjpictest/serialloop.asm +++ b/iwjpictest/serialloop.asm @@ -15,7 +15,7 @@ COUNTINNER equ 0x00 COUNTOUTER equ 0x02 - if mclock==20000 + if mclock>=20000 OUTEREXP equ 7 ; 2^7 * 1.4ms = 177ms else if mclock==1000 diff --git a/pic.make b/pic.make index e843dbc..e3639eb 100644 --- a/pic.make +++ b/pic.make @@ -15,7 +15,7 @@ # perpicNUMBER.hex idlocsNUMBER.o config.o #ASFLAGS= -Dmclock=20000 -Dsclock=20000 -CLOCKS= -Dmclock=20000 -Dsclock=5000 +CLOCKS= -Dmclock=32000 -Dsclock=4000 ASFLAGS= $(CLOCKS) HEXMERGER= $(CEBPIC)merge-hex -- 2.30.2