avrx_generatesinglestepinterrupt.s

来自「血凝仪检测系统,硬件电路部分由正弦波产生模块、前级放大与滤波模块、检测线圈、锁相」· S 代码 · 共 42 行

S
42
字号
#include "avrx.inc"

/*
        Copyright 1999-2001, Larry Barello
        larry@barello.net

*/

/*+
; --------------------------------------------------
; Generate Interrupt (Single Step Support)
;
; PASSED:       Nothing
; USES:         X, Y and R0
; RETURNS:      Nothing
; NOTES:        Generates an interrupt using Timer0.  Assumes global
;               interrupt flag is cleared.
;
;	NB: This routine is called by AvrX in the Epilog code.
;       This routine must be modfied to fit your particular
;	requirements.  The shipped code works with 8515 varients.
; 
;
-*/
        _MODULE(avrx_generatesinglestepinterrupt)
        _CODESECTION
        _FUNCTION(GenerateInterrupt)
        
GenerateInterrupt:
        ldi     Yl, 1<<CS00     ; 1x prescale
        ser     Xh
        in      R0, TCCR0       ; Previous prescaler
        in      Yh, TCNT0       ; Previous count
        out     TCNT0, Xh       ; Set maximum
        out     TCCR0, Yl       ; Interrupt generated NOW
        out     TCCR0, R0       ; Restore orignal prescaler
        out     TCNT0, Yh       ; Restore original count
        ret
        _ENDFUNC
        _END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?