diff options
author | Christian Pointner <equinox@mur.at> | 2012-06-20 00:34:41 +0000 |
---|---|---|
committer | Christian Pointner <equinox@mur.at> | 2012-06-20 00:34:41 +0000 |
commit | bb53e1f4c48a062d822aecbe02694dc5959faa30 (patch) | |
tree | d93e3edc1ca4d807605ed5e75b8abe8949076974 /software/idm/idm.asm | |
parent | added check for CMD_READ (diff) |
adc sampling starts now via timer1 and ccp4 (less jitter)
some cleanup
git-svn-id: https://svn.spreadspace.org/mur.sat@541 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'software/idm/idm.asm')
-rw-r--r-- | software/idm/idm.asm | 81 |
1 files changed, 48 insertions, 33 deletions
diff --git a/software/idm/idm.asm b/software/idm/idm.asm index b0bce9a..9cbaf41 100644 --- a/software/idm/idm.asm +++ b/software/idm/idm.asm @@ -67,6 +67,7 @@ BUF_ENDL EQU H'00BF' ;; variables ;; all Pages CMD EQU H'0070' +TMP EQU H'0071' FLAGS EQU H'007F' @@ -115,13 +116,16 @@ inc_fsr_end ;; Interrupts org .4 movlb b'00000000' - btfsc PIR1,TMR2IF - goto int_tmr2 +if DEBUG == 1 + bsf SPEAKER +endif btfsc PIR1,SSP1IF goto int_spi + btfsc PIR1,ADIF + goto int_adc retfie - ;; void timer2Interrupt() + ;; void adcInterrupt() ;; { ;; static char value = 0; ;; if (!overrun) { @@ -129,20 +133,17 @@ inc_fsr_end ;; wbuf_next(); ;; } ;; } -int_tmr2 - bcf PIR1,TMR2IF +int_adc + bcf PIR1,ADIF btfsc OVERRUN - goto int_end - movlb b'00000001' - bsf ADCON0,GO - -int_tmr2_adcon - btfsc ADCON0,GO - goto int_tmr2_adcon - movf ADRESH,w + retfie + ;; movlb b'00000001' + ;; movf ADRESH,w + movf TMP,w movwf INDFW + incf TMP,f call wbuf_next - goto int_end + goto int_fsr_norestore ;; void sspInterrupt() ;; { @@ -171,25 +172,25 @@ int_spi goto int_spi_r ;; other commands bcf CMD_READ - goto int_end + retfie int_spi_0 btfss CMD_READ - goto int_end + retfie call rbuf_next movf INDFR,w btfss UNDERRUN movwf SSP1BUF - goto int_end + goto int_fsr_norestore int_spi_r movf INDFR,w btfss UNDERRUN movwf SSP1BUF bsf CMD_READ - ;; goto int_end - -int_end + retfie + +int_fsr_norestore movlb .31 movf FSR0H,w movwf FSR0H_SHAD @@ -321,6 +322,14 @@ endif ;; ------------------------------------- ;; INIT init + ;; BANK 6 + movlb b'00000110' + clrf CCPR4H + movlw .124 + movwf CCPR4L + movlw b'00001011' + movwf CCP4CON + ;; BANK 4 movlb b'00000100' movlw b'01000000' @@ -352,17 +361,20 @@ endif movwf ADCON1 movlw b'00001101' ; AN3, ADC On movwf ADCON0 - movlw b'00001010' ; SSPIE,TMR2IE + movlw b'01001000' ; ADIE,SSPIE movwf PIE1 - bcf OPTION_REG,NOT_WPUEN - + movlw b'01011111' ; Enable Pull UPs, disable T0CKI + movwf OPTION_REG + ;; BANK 0 movlb b'00000000' movlw .124 ; 8 kHz @ 16MHz movwf PR2 - clrf TMR2 ; reset TMR2 - movlw b'00000101' ; Postscaler 1:1,Timer Off,Prescaler 1:4 - movwf T2CON + clrf TMR1H ; reset TMR1 + clrf TMR1L + movlw b'00100000' ; Source Fosc/4, Prescaler 1:4, LP-Osc off, Sync, Timer off + movwf T1CON + clrf T1GCON clrf PIR1 ; reset all used interupt flags movlw b'01000000' ; PEIE movwf INTCON @@ -370,22 +382,25 @@ endif bcf FILTER_EN call buf_init + clrf TMP + bsf INTCON,GIE ;; ------------------------------------- ;; MAINLOOP main if DEBUG == 1 + bcf SPEAKER btfss DBG0 - goto enable_t2 + goto enable_t1 - btfsc T2CON,TMR2ON - bcf T2CON,TMR2ON + btfsc T1CON,TMR1ON + bcf T1CON,TMR1ON goto main - -enable_t2 - btfss T2CON,TMR2ON - bsf T2CON,TMR2ON + +enable_t1 + btfss T1CON,TMR1ON + bsf T1CON,TMR1ON endif goto main |