summaryrefslogtreecommitdiff
path: root/software/ihu
diff options
context:
space:
mode:
authorChristian Pointner <equinox@mur.at>2011-09-27 20:51:43 +0000
committerChristian Pointner <equinox@mur.at>2011-09-27 20:51:43 +0000
commitbaeab66226c203843204f2901691ecc4728635e9 (patch)
tree770dea5012a84115ea45d8f0a5c759fa55c09943 /software/ihu
parentadded FreeRTOS and CMSIS (diff)
ihu: dtmf inbuf (not finished)
ihu: pin doc -> uart to mpu (no spi) git-svn-id: https://svn.spreadspace.org/mur.sat@176 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'software/ihu')
-rw-r--r--software/ihu/ihu.asm45
1 files changed, 30 insertions, 15 deletions
diff --git a/software/ihu/ihu.asm b/software/ihu/ihu.asm
index f763407..0a8e907 100644
--- a/software/ihu/ihu.asm
+++ b/software/ihu/ihu.asm
@@ -55,16 +55,16 @@ BAT_C EQU 3
RTC_SDA EQU 4
RTC_SCL EQU 5
RTC_INT EQU 6
-MPU_INT EQU 7
+UNDEF_B7 EQU 7
;; PortC
MPU_PWRDWN EQU 0
MPU_RESET EQU 1
-MPU_CS EQU 2
-MPU_SCK EQU 3
-MPU_SDI EQU 4
-MPU_SDO EQU 5
-ICOM_TX EQU 6
-ICOM_RX EQU 7
+UNDEF_C2 EQU 2
+UNDEF_C3 EQU 3
+UNDEF_C4 EQU 4
+UNDEF_C5 EQU 5
+MPU_TX EQU 6
+MPU_RX EQU 7
;; PortD
DTMF_D0 EQU 0
DTMF_D1 EQU 1
@@ -78,7 +78,7 @@ TTX_SDA EQU 7
SOLAR_C5 EQU 0
SOLAR_C6 EQU 1
SOLAR_C7 EQU 2
-
+
;; variables
;; page 0 only
TMP EQU H'0020'
@@ -89,8 +89,12 @@ TTX_CSUM EQU H'0024'
RTC_BYTE_CNT EQU H'0028'
-WAIT_CNT EQU H'0030'
+WAIT_CNT EQU H'002F'
+DTMF_BUF EQU H'0030' ; 5Bytes for incoming DTMF commands
+DTMF_BUF_END EQU H'0034'
+DTMF_BUF_PTR EQU H'0035'
+
BUF EQU H'0040'
BUF_END EQU H'004F'
@@ -112,7 +116,8 @@ RTC_BIT_CNT EQU H'0071'
OWIRE_BYTE EQU H'0072'
OWIRE_BIT_CNT EQU H'0073'
OWIRE_CNT EQU H'0074'
-
+
+FSR_TEMP EQU H'007D'
W_TEMP EQU H'007E'
STATUS_TEMP EQU H'007F'
@@ -130,10 +135,13 @@ STATUS_TEMP EQU H'007F'
movwf W_TEMP
swapf STATUS,W
movwf STATUS_TEMP
-
+ movf FSR,w
+ movwf FSR_TEMP
+
bcf STATUS,RP0
bcf STATUS,RP1
+ ;; dispatch interrupt sources
btfsc INTCON,INTF
goto int_dtmf
btfsc PIR1,RCIF
@@ -141,10 +149,12 @@ STATUS_TEMP EQU H'007F'
goto interrupt_end
int_dtmf
+ movf DTMF_BUF_PTR,w
+ movwf FSR
movf PORTD,w
andlw b'00001111'
call dtmfSign
- movwf TXREG
+ movwf INDF
bcf INTCON,INTF
goto interrupt_end
@@ -162,6 +172,8 @@ int_uart_rx_oe
interrupt_end
;; restore context
+ movf FSR_TEMP,w
+ movwf FSR
swapf STATUS_TEMP,W
movwf STATUS
swapf W_TEMP,F
@@ -182,9 +194,9 @@ init
;; bank 1
bsf STATUS,RP0
bcf STATUS,RP1
- movlw b'11110000'
+ movlw b'01110000'
movwf WPUB
- movlw b'11000000'
+ movlw b'01000000'
movwf IOCB
movlw b'01000001'
movwf OPTION_REG
@@ -195,7 +207,7 @@ init
movwf TRISA
movlw b'11111111'
movwf TRISB
- movlw b'11111000'
+ movlw b'11111100'
movwf TRISC
movlw b'10001111'
movwf TRISD
@@ -219,6 +231,9 @@ init
clrf PORTB
bcf PORTD,DTMF_PWRDWN
+ movlw DTMF_BUF
+ movwf DTMF_BUF_PTR
+
bcf PORTD,TTX_RESET ;reset TTX
bcf PORTD,TTX_SCL
bcf PORTD,TTX_SDA