debug macro debugvalue
movlw debugvalue
call debug_serial_transmit
+waitfortsr
+ btfss TXSTA,1,0
+ bra waitfortsr
endm
debug_serial_transmit
-*** check and wait for flag so that it
-*** works if we debug twice in quick succession -iwj
movwf TXREG,0 ; move contents of W (i.e. debugvalue)
; to TXREG for transmission
return
bsf INTCON,6,0 ; enable low-priority interrupts
; interrupt set-up for serial receive
- bsf PIE1,5,0 ; enable USART receive interrupt (p85)
bsf IPR1,5,0 ; set to low-priority interrupt
-*** surely we should set the priority before enabling it, or you might
-*** generate a spurious high-priority interrupt -iwj
+ bsf PIE1,5,0 ; enable USART receive interrupt (p85)
; interrupt set-up for timer0 interrupt p79/80
- bsf INTCON,5,0 ; enable timer0 interrupts
bcf INTCON2,2,0 ; timer0 overflow low priority
-*** surely we should set the priority before enabling it, or you might
-*** generate a spurious high-priority interrupt -iwj
+ bsf INTCON,5,0 ; enable timer0 interrupts
;****************************************************************************
-main_loop_led
call led_green
+main_loop_led
goto main_loop_led
-*** do you really mean to set the led green in a tight loop ?? -iwj
;****************************************************************************
; if currently on bit 7, want to skip to bit 6
;*** wouldn't it be easier to start on bit 6 ? :-) -iwj
-*** have read up to here -iwj
btfss TOTRACKBIT,7,0
rrncf TOTRACKBIT,1,0 ; rotate mask right
debug macro debugvalue
movlw debugvalue
call debug_serial_transmit
+waitfortsr
+ btfss TXSTA,1,0
+ bra waitfortsr
endm
debug_serial_transmit
-*** check and wait for flag so that it
-*** works if we debug twice in quick succession -iwj
movwf TXREG,0 ; move contents of W (i.e. debugvalue)
; to TXREG for transmission
return
bsf INTCON,6,0 ; enable low-priority interrupts
; interrupt set-up for serial receive
- bsf PIE1,5,0 ; enable USART receive interrupt (p85)
bsf IPR1,5,0 ; set to low-priority interrupt
-*** surely we should set the priority before enabling it, or you might
-*** generate a spurious high-priority interrupt -iwj
+ bsf PIE1,5,0 ; enable USART receive interrupt (p85)
; interrupt set-up for timer0 interrupt p79/80
- bsf INTCON,5,0 ; enable timer0 interrupts
bcf INTCON2,2,0 ; timer0 overflow low priority
-*** surely we should set the priority before enabling it, or you might
-*** generate a spurious high-priority interrupt -iwj
+ bsf INTCON,5,0 ; enable timer0 interrupts
;****************************************************************************
-main_loop_led
call led_green
+main_loop_led
goto main_loop_led
-*** do you really mean to set the led green in a tight loop ?? -iwj
;****************************************************************************
; if currently on bit 7, want to skip to bit 6
;*** wouldn't it be easier to start on bit 6 ? :-) -iwj
-*** have read up to here -iwj
btfss TOTRACKBIT,7,0
rrncf TOTRACKBIT,1,0 ; rotate mask right