⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avrx_testsemaphore.s

📁 血凝仪检测系统,硬件电路部分由正弦波产生模块、前级放大与滤波模块、检测线圈、锁相环同步检波模块、后级平滑滤波与放大模块、AD转换器、线圈驱动模块、单片机模块等部分组成。
💻 S
字号:
#include        "avrx.inc"
/*
        Copyright 1999-2000, Larry Barello
        larry@barello.net

*/
        _MODULE(avrx_testsemaphore)
        _CODESECTION

/*+
;-----------------------------------------------
; AvrXTestSemaphore
; AvrXTIntTestSemaphore
;
; Non blocking call to check state of the Semaphore.
;
; AvrXTestObjectSemaphore
; AvrXTestTimer
; AvrXTestPid
; AvrXTestMessageAck
;
; Non blocking version of AvrXWaitObjectSemaphore
;
; PASSED:       R25:R24 = Semaphore/Object
; RETURNS:      R25:R24 = 0 - _PEND
;                       = 1 - _DONE
;                       = 2 - something is waiting on it.
; USES:         Z, X
; STACK:
; SIDE EFFECTS: 
; NOTES:        Since we don't block, the only valid
;               condition is _DONE.  So, reset to 
;               _PEND and return.
-*/
        _FUNCTION(AvrXTestTimer)
        _PUBLIC(AvrXTestPid)
        _PUBLIC(AvrXTestMessageAck)
        _PUBLIC(AvrXTestObjectSemaphore)
AvrXTestTimer:
AvrXTestPid:
AvrXTestMessageAck:
AvrXTestObjectSemaphore:
        subi    p1l, lo8(-2)
        sbci    p1h, hi8(-2)
        _ENDFUNC
        
        _FUNCTION(AvrXIntTestSemaphore)
        _PUBLIC(AvrXTestSemaphore)
AvrXIntTestSemaphore:
AvrXTestSemaphore:
        mov     Zh, p1h
        mov     Zl, p1l
        ldi     p1l, lo8(_DONE)     ; Preload _DONE return
        ldi     p1h, hi8(_DONE)
        
        BeginCritical
        ldd     tmp0, Z+NextL
        ldd     tmp1, Z+NextH
        sub     tmp0, p1l
        sbc     tmp1, p1h
        breq    aits01
        
        brlo    aits00          ; if > _DONE return 2
        subi    r1l, lo8(-2)
;        sbci    r1h, hi8(-2)
aits00:
        subi    r1l, lo8(1)
;        sbci    r1h, hi8(1)    ; if < _DONE return 0
        EndCriticalReturn
aits01:
        std     Z+NextH, tmp0    ; Store _PEND (0)
        std     Z+NextL, tmp1    ; Return _DONE (R25:R24)
        EndCriticalReturn

        _ENDFUNC
        _END
        

⌨️ 快捷键说明

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