📄 int_2.lst
字号:
< .EXTERNAL F_SP_ReadQueue_NIC_A2000
< .EXTERNAL F_SP_ReadQueue_NIC_S480
< .EXTERNAL F_SP_ReadQueue_NIC_S240
< .EXTERNAL F_SP_ReadQueue_NIC_MS01
< .EXTERNAL F_SP_ReadQueue_NIC_DVR
<
<
< .EXTERNAL F_SP_SACM_A2000_Init_
< .EXTERNAL F_SP_SACM_S480_Init_
< .EXTERNAL F_SP_SACM_S240_Init_
<
< .EXTERNAL F_SP_SACM_MS01_Init_
< .EXTERNAL F_SP_PlayMode0_
< .EXTERNAL F_SP_PlayMode1_
< .EXTERNAL F_SP_PlayMode2_
< .EXTERNAL F_SP_PlayMode3_
<
< .EXTERNAL F_SP_SACM_DVR_Init_
< .EXTERNAL F_SP_SACM_DVR_Rec_Init_
< .EXTERNAL F_SP_SACM_DVR_Play_Init_
<
< .EXTERNAL F_SP_GetResource
<
< //////////////////////////////////////////////////////////////////
< // Reserve old defintion
< // Note: Some user who use old library may use the old name
< //////////////////////////////////////////////////////////////////
< .EXTERNAL F_SP_Send_PWM // Get RAW data
< .EXTERNAL F_SP_Send_DAC1 //
< .EXTERNAL F_SP_Send_DAC2 //
<
< .EXTERNAL F_STD_Send_DAC1 // reserved old
< .EXTERNAL F_STD_Send_DAC2 // reserved old
<
< .EXTERNAL F_RampUpDAC1 // reserved old
< .EXTERNAL F_RampDnDAC1 // reserved old
< .EXTERNAL F_RampUpDAC2 // reserved old
< .EXTERNAL F_RampDnDAC2 // reserved old
< ///////////////////////////////////////////////////////////////////
<
<
<
< //========================================================================================
< // End of hardware.inc
< //========================================================================================
//扩展的外部变量和外部函数
.external _DeCnt1
.external _DeCnt2
.external _ForTimerA
.external _ForTimerB
.external _ForIRQ5
.external _ForExInt
.external _Out
00000127 .iram
00000127 00 00 .var My_INT_Ctrl=0 //等同于P_INT_Ctrl
00000000 .data
//---------------------------//
0000C93D .code
//======================================================
//函数:Init_IRQ1_TMA
//语法:汇编格式call _Init_IRQ1_TMA
// C格式void Init_IRQ1_TMA()
//描述:初始化内部计数器A(频率:1024Hz 计数初值:DeCnt1)
//参数:无
//返回:无
//======================================================
.public _Init_IRQ1_TMA
_Init_IRQ1_TMA:
0000C93D 88 D2 push r1 to [sp]
0000C93E 11 93 27 01 r1=[My_INT_Ctrl]
0000C940 09 A3 00 10 r1 |= 0x1000
0000C942 19 D3 27 01 [My_INT_Ctrl]=r1
0000C944 19 D3 10 70 [P_INT_Ctrl]=r1
0000C946 71 92 r1=0x0031 //0x000d=1024Hz 0x0031=Fosc/256
0000C947 19 D3 0B 70 [P_TimerA_Ctrl]=r1
0000C949 09 93 FF FF r1=0xffff
0000C94B 11 23 FE 00 r1-=[_DeCnt1]
0000C94D 19 D3 0A 70 [P_TimerA_Data]=r1
0000C94F 49 F1 irq on
0000C950 88 90 pop r1 from [sp]
0000C951 90 9A retf
.public _Init_IRQ2_TMB
_Init_IRQ2_TMB:
0000C952 88 D2 push r1 to [sp]
0000C953 11 93 27 01 r1=[My_INT_Ctrl]
0000C955 09 A3 00 04 r1 |= 0x0400
0000C957 19 D3 27 01 [My_INT_Ctrl]=r1
0000C959 19 D3 10 70 [P_INT_Ctrl]=r1
0000C95B 41 92 r1=0x0001 //0x0001=Fosc/256 0x0004=4096
0000C95C 19 D3 0D 70 [P_TimerB_Ctrl]=r1
0000C95E 09 93 FF FF r1=0xffff
0000C960 11 23 FF 00 r1-=[_DeCnt2]
0000C962 19 D3 0C 70 [P_TimerB_Data]=r1
0000C964 49 F1 irq on
0000C965 88 90 pop r1 from [sp]
0000C966 90 9A retf
//======================================================
//函数:Close_IRQ1_TMA
//语法:汇编格式call _Close_IRQ1_TMA
// C格式void Close_IRQ1_TMA()
//描述:关闭内部计数器A,使电机1停机
//参数:无
//返回:无
//======================================================
.public _Close_IRQ1_TMA
_Close_IRQ1_TMA:
0000C967 88 D2 push r1 to [sp]
0000C968 11 93 27 01 r1=[My_INT_Ctrl]
0000C96A 09 B3 FF EF r1 &= 0xefff
0000C96C 19 D3 27 01 [My_INT_Ctrl]=r1
0000C96E 19 D3 10 70 [P_INT_Ctrl]=r1
0000C970 88 90 pop r1 from [sp]
0000C971 90 9A retf
.public _Close_IRQ2_TMB
_Close_IRQ2_TMB:
0000C972 88 D2 push r1 to [sp]
0000C973 11 93 27 01 r1=[My_INT_Ctrl]
0000C975 09 B3 FF FB r1 &= 0xfbff
0000C977 19 D3 27 01 [My_INT_Ctrl]=r1
0000C979 19 D3 10 70 [P_INT_Ctrl]=r1
0000C97B 88 90 pop r1 from [sp]
0000C97C 90 9A retf
//======================================================
//函数:Init_IRQ3_EXT1
//语法:汇编格式call _Init_IRQ3_EXT1
// C格式void Init_IRQ3_EXT1()
//描述:开外部中断1(IOB2激发的中断),用于检测是否偏离黑线
//参数:无
//返回:无
//======================================================
.public _Init_IRQ3_EXT1
_Init_IRQ3_EXT1:
0000C97D 88 D2 push r1 to [sp]
0000C97E 40 F1 INT OFF
0000C97F 11 93 27 01 r1=[My_INT_Ctrl]
0000C981 09 A3 00 01 r1 |=0x0100
0000C983 19 D3 27 01 [My_INT_Ctrl]=r1
0000C985 19 D3 10 70 [P_INT_Ctrl]=r1
0000C987 88 90 pop r1 from [sp]
0000C988 49 F1 irq on
0000C989 90 9A retf
//======================================================
//函数:Close_IRQ3_EXT1
//语法:汇编格式call _Close_IRQ3_EXT1
// C格式void Close_IRQ3_EXT1()
//描述:关闭外部中断1(IOB2激发的中断),停止检测
//参数:无
//返回:无
//======================================================
.public _Close_IRQ3_EXT1
_Close_IRQ3_EXT1:
0000C98A 88 D2 push r1 to [sp]
0000C98B 11 93 27 01 r1=[My_INT_Ctrl]
0000C98D 09 B3 FF FE r1 &= 0xfeff
0000C98F 19 D3 27 01 [My_INT_Ctrl]=r1
0000C991 19 D3 10 70 [P_INT_Ctrl]=r1
0000C993 88 90 pop r1 from [sp]
0000C994 90 9A retf
//---------------------------//
000085AD .TEXT
//======================================================
//函数:IRQ1
//语法:系统自动调用
//描述:计数中断处理子程序,驱动电机1
//参数:无
//返回:无
//======================================================
.public _IRQ1
_IRQ1:
000085AD 88 D2 push r1 to [sp]
000085AE 09 93 00 10 r1=0x1000
000085B0 19 D3 11 70 [P_INT_Clear]=r1
000085B2 40 F0 0F C1 call _ForTimerA
//改变计数器A的计数初值P_TimerA_Data,以实现电机的变速
000085B4 09 93 FF FF r1=0xffff
000085B6 11 23 FE 00 r1-=[_DeCnt1]
000085B8 19 D3 0A 70 [P_TimerA_Data]=r1
000085BA 88 90 pop r1 from [sp]
000085BB 98 9A reti
.public _IRQ2
_IRQ2:
000085BC 88 D2 push r1 to [sp]
000085BD 09 93 00 04 r1=0x0400
000085BF 19 D3 11 70 [P_INT_Clear]=r1
000085C1 40 F0 34 C1 call _ForTimerB
000085C3 09 93 FF FF r1=0xffff
000085C5 11 23 FF 00 r1-=[_DeCnt2]
000085C7 19 D3 0C 70 [P_TimerB_Data]=r1
000085C9 88 90 pop r1 from [sp]
000085CA 98 9A reti
//========================================================
//函数:IRQ3
//语法:系统自动调用
//描述:外部中断1(IOB2激发的中断)处理子程序
// 物体偏离黑线激发的中断,用于校正运动,使沿黑线运动
//参数:无
//返回:2(使out=2)
//========================================================
.public _IRQ3
_IRQ3:
000085CB 88 D2 push r1 to [sp]
000085CC 09 93 00 01 r1=0x0100
000085CE 19 D3 11 70 [P_INT_Clear]=r1
000085D0 42 92 r1=2
000085D1 19 D3 D6 00 [_Out]=r1
// call _ForExInt
000085D3 88 90 pop r1 from [sp]
000085D4 98 9A reti
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -