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

📄 timer1.asm

📁 C32中C语言中嵌入汇编程序示例.包括中断程序中调用C参数
💻 ASM
字号:
;*****************************************************************************
;  Function:	  timer1.asm         
;  Version :	 1.00
;  Description:  timer
;
;  Copyright Texas instruments Inc, 2000

;*****************************************************************************
.mmregs  

* Maximum Frequency Timer Clock Setup
*
             .data
Timer1       .word 808030h ; Timer1 global control address
TCTRL_RST    .word 303h
TCTRL_GO     .word 3C3h   
;****************************************
;FUNC=1.  TCLK配置为输入输出引脚
;I/0=1	 ,  TCLK配置为通用输出引脚  
;C/P=1,选择时钟模式,信号TSTAT标志和外部输出有50%周期
;CLKSRC=1,内部时钟,频率为H1/2用来计数递增。INV位对内部时钟源无影响  
;INV=0,不反相
;****************************************
TCNT         .word 0 ; Timer counter value
TPRD         .word 2 ; Timer-period value  
	                               

;*****************************************************************************
        .def	_timer1       
 
	.text   

_timer1:	
		;PUSH FP       ;保护旧FP
		;LDI SP,FP     ;设置新FP
		;ADDI 2,SP     ;分配局部帧
		PUSH ST       ;保护ST
		PUSH R0       ;保护R0的低32位
		PUSHF R0      ;保护R0的高32位
        PUSH R1       ;保护R1的低32位  
        PUSHF R1	  ;保护R1的高32位   
		PUSH R2       ;保护R2的低32位
		PUSHF R2      ;保护R2的高32位
        PUSH R3       ;保护R3的低32位  
        PUSHF R3	  ;保护R3的高32位
        PUSH R6       ;保护R6的低32位  
        PUSHF R6	  ;保护R6的高32位           
		PUSH AR0      ;
		PUSH AR1      ;
		PUSH AR2      ;
		PUSH AR3      ;
		PUSH AR4      ;		          
        ;以上为保护寄存器
;********************************************************        
		LDP Timer1
		LDI @Timer1,AR0 ; Load data page pointer
		LDI 0,R0
		STI R0,*AR0 ; Halt timer
		LDI @TCTRL_RST,R0 ; Configure timer
		STI R0,*AR0
		LDI @TCNT,R0
		STI R0,*+AR0(4) ; Load timer counter
		LDI @TPRD,R0
		STI R0,*+AR0(8) ; Load timer period
		LDI @TCTRL_GO,R0
		STI R0,*AR0 ; Start timer 
;********************************************************        
;结束,恢复堆栈        
        POP  AR4      ;	
        POP  AR3      ;	
        POP  AR2      ;
        POP  AR1      ;        
        POP  AR0      ;        
        POPF R6       ;
        POP  R6       ;
        POPF R3       ;
        POP  R3       ;
        POPF R2       ;
        POP  R2       ; 
        POPF R1       ;
        POP  R1       ; 
        POPF R0       ;
        POP  R0       ;  
        POP  ST		  ;   
        ;SUBI 2,SP	  ;
        ;POP  FP		  ;
        RETI          ;函数返回                 

⌨️ 快捷键说明

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