diff options
-rw-r--r-- | software/ttx/dottime.calc | 49 | ||||
-rw-r--r-- | software/ttx/nmx-calc.ods | bin | 16807 -> 0 bytes | |||
-rw-r--r-- | software/ttx/ttx.asm | 36 |
3 files changed, 23 insertions, 62 deletions
diff --git a/software/ttx/dottime.calc b/software/ttx/dottime.calc deleted file mode 100644 index 5a793f1..0000000 --- a/software/ttx/dottime.calc +++ /dev/null @@ -1,49 +0,0 @@ - movlw n 1 + - call dottime 2 | ----------------- | -dottime | - movwf DOTCNT1 1 | -dot_outer | - movlw m 1 + | - movwf DOTCNT0 1 | | -dot_inner + | | - x * nop x | y | z | t - decfsz DOTCNT0,f 1 (2) | | | - goto dot_inner 2 + | | - decfsz DOTCNT1,f 1 (2) | | - goto dot_outer 2 + | - return 2 + - - - - y = (x + 1 + 2) * m - 1 = xm + 3m - 1 - z = (1 + 1 + y + 1 + 2) * n - 1 = (4 + xm + 3m) * n - 1 = 4n + 3mn + xmn - 1 - - t = 1 + 2 + 1 + z + 2 = 5 + 4n + 3mn + xmn - = ================== - - @ n = m = 256 (0): tmax = 197637 + 65536x µs - @ n = m = 1: tmin = 12 + x µs - -for x=0: tmin = 12, tmax = 197637 - x=1: tmin = 13, tmax = 263173 - x=2: tmin = 14, tmax = 328709 - x=3: tmin = 15, tmax = 394245 - x=4: tmin = 16, tmax = 459781 - x=5: tmin = 17, tmax = 525317 - x=6: tmin = 18, tmax = 590853 - x=7: tmin = 19, tmax = 656389 - - -m(dot) = m(dot) = 36 -m(dash) = 3*m(dot) = 108 -m(element space) = m(dot) = 36 -m(character space) = 3*m(dot) = 108 -m(word space) = 7*m(dot) = 252 - - @ m = 36; tmax = 5 + 112n + 36xn - @ m = 108: tmax = 5 + 328n + 108xn - @ m = 252: tmax = 5 + 760n + 252xn - - n => CWSPEED - x => nop count
\ No newline at end of file diff --git a/software/ttx/nmx-calc.ods b/software/ttx/nmx-calc.ods Binary files differdeleted file mode 100644 index 8b85fb8..0000000 --- a/software/ttx/nmx-calc.ods +++ /dev/null diff --git a/software/ttx/ttx.asm b/software/ttx/ttx.asm index 38b9254..b6b7bbb 100644 --- a/software/ttx/ttx.asm +++ b/software/ttx/ttx.asm @@ -32,11 +32,11 @@ LIST p=12F635 include "p12f635.inc" - __config _WUREN_ON & _FCMEN_OFF & _IESO_OFF & _BOD_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT + __config _WUREN_OFF & _FCMEN_OFF & _IESO_OFF & _BOD_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT ;; ------------------------------------- ;; DEFINES -BEACON_INT EQU .3 ; *2 = Beacon Interval in seconds +BEACON_INT EQU .21 ; *2 = Beacon Interval in seconds SECCNT EQU H'007D' CHAR EQU H'0041' @@ -60,25 +60,31 @@ STATUS_TEMP EQU H'007F' ;; ------------------------------------- ;; Reset Vector - org 0 + org .0 goto init ;; ------------------------------------- ;; Interrupt Vector - org 4 + org .4 ;; save context movwf W_TEMP swapf STATUS,W movwf STATUS_TEMP - btfss INTCON,INTF + bcf STATUS,RP0 + bcf STATUS,RP1 + + btfsc PIR1,TMR1IF goto tmr1_int ext_int ;; TODO: read bit from GPIO,SDAT and add to received string goto interrupt_end tmr1_int - decf SECCNT,f + bcf PIR1,TMR1IF + movf SECCNT,w + btfss STATUS,Z + decf SECCNT,f interrupt_end ;; restore context @@ -99,7 +105,7 @@ init movwf OPTION_REG movlw b'11111100' movwf TRISIO - movlw b'10000001' + movlw b'00000001' movwf PIE1 movlw b'00000000' movwf OSCCON @@ -107,13 +113,16 @@ init bcf STATUS,RP0 ;; bank 0 - movlw b'01010000' - movwf INTCON + clrf TMR1L + clrf TMR1H movlw b'00000111' movwf T1CON + movlw b'01000000' ; enable external interrupt bit4 + movwf INTCON + movlw b'00000111' movwf CMCON0 - + bcf GPIO,CWOUT bcf GPIO,CWENABLE @@ -329,13 +338,14 @@ main btfss STATUS,Z goto powerdown - ;; this gets called every BEACON_INT*2 seconds + ;; this gets called every 2*BEACON_INT seconds movlw BEACON_INT - movwf SECCNT + movwf SECCNT call send_beacon - + powerdown sleep + nop goto main ;; ------------------------------------- |