📄 tc1_timer.asm
字号:
;---------------------------------------------------------------------
;功能:定时器1初始化
;入口:无
;出口:无
;---------------------------------------------------------------------
;计算公式
;clkT = 7.3728MHZ/8
;T=1/clkT
;C*T=100us
;C=100us*clkT=92
.EQU C_T1_CNT =256-92
TC1_Timer_Initial:
;TC1工作定时模式 溢出周期100us
OUT TCCR1A,R_Value0
LDI temp1,(0<<CS12)|(1<<CS11)|(0<<CS10) ;011=clk/8
OUT TCCR1B,temp1 ;000停 001=clk 010=clk/8 011=clk/64
OUT TCNT1H,R_ValueFFH ;100=clk/256 101=clk/1024 110/111=脚
LDI temp1,C_T1_CNT
OUT TCNT1L,temp1
RET
;---------------------------------------------------------------------
;功能:定时器1中断服务程序
;入口:无
;出口:无
;---------------------------------------------------------------------
Int_TC1_Server: ;4+2
IN int_SREG,SREG ;1
PUSH XL ;2
PUSH XH
PUSH ZL
PUSH ZH
OUT TCNT1H,R_ValueFFH ;100=clk/256 101=clk/1024 110/111=脚
LDI XL,C_T1_CNT
OUT TCNT1L,XL
INC R_PulseWidth ;Ir脉冲宽度记数
;------------------------------------------------------
;Int_TC1_End:
POP ZH
POP ZL
POP XH
POP XL ;2
OUT SREG,int_SREG ;1
RETI ;4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -