📄 ezkitbf537_led.asm
字号:
/****************************************************************************
Include Section
*****************************************************************************/
#include "global.h"
/*****************************************************************************
Symbolic constants / definitions
******************************************************************************/
#define LED1 PF6 /* SPI SSEL4 */
#define LED2 PF7
#define LED3 PF8
#define LED4 PF9
#define LED5 PF10 /* SPI SSEL1 */
#define LED6 PF11 /* SPI MOSI */
#define SETUP_LED LED2 | LED3 | LED4
#define ALL_LED SETUP_LED
/*****************************************************************************
Prototypes
******************************************************************************/
.GLOBAL __led_all_turn_off;
.GLOBAL __led_all_turn_on;
.GLOBAL __led_all_blink_inf;
//.GLOBAL __led1_toggle; /* SPI SSEL4 */
.GLOBAL __led2_toggle;
.GLOBAL __led3_toggle;
.GLOBAL __led4_toggle;
//.GLOBAL __led5_toggle; /* SPI SSEL1 */
//.GLOBAL __led6_toggle; /* SPI MOSI */
/*****************************************************************************
Functions
******************************************************************************/
.SECTION L1_code;
/*****************************************************************************
Function: __led_all_turn_off
Description: turn off EZ-KIT Lite LEDs
Input Parameters: none
Return Parameters: none
Registers Used: R7:6,P5
Global Variables Used: none
C-Callable : no
*****************************************************************************/
__led_all_turn_off:
link 0;
[--SP] = (R7:6,P5:5);
IMM32(P5,SYS_MMR_BASE);
R7 = ALL_LED (z);
R6 = w[P5 + lo(PORTFIO_DIR)] (z);
R7 = R7 | R6;
w[P5 + lo(PORTFIO_DIR)] = R7;
ssync;
w[P5 + lo(PORTFIO_CLEAR)] = R7;
ssync;
(R7:6,P5:5) = [SP++];
unlink;
rts;
__led_all_turn_off.END:
/*****************************************************************************
Function: __led_all_turn_on
Description: turn on all EZ-KIT Lite LEDs
Input Parameters: none
Return Parameters: none
Registers Used: R7:6,P5
Global Variables Used: none
C-Callable : no
*****************************************************************************/
__led_all_turn_on:
link 0;
[--SP] = (R7:6,P5:5);
IMM32(P5,SYS_MMR_BASE);
R7 = ALL_LED (z);
R6 = w[P5 + lo(PORTFIO_DIR)] (z);
R7 = R7 | R6;
w[P5 + lo(PORTFIO_DIR)] = R7;
ssync;
w[P5 + lo(PORTFIO_SET)] = R7;
ssync;
(R7:6,P5:5) = [SP++];
unlink;
rts;
__led_all_turn_on.END:
/*****************************************************************************
Function: __led_all_blink_inf
Description: blink all EZ-KIT Lite LEDs
endless loop
Input Parameters: none
Return Parameters: none
Registers Used: R7,R0,P5:4
Global Variables Used: none
C-Callable : no
*****************************************************************************/
__led_all_blink_inf:
link 0;
[--SP] = (R7:7,P5:4);
[--SP] = R0;
PUSH_LOOP_REGx(0);
IMM32(P5,SYS_MMR_BASE);
call __get_cclk_hz;
P4 = R0;
nop;nop;nop;nop;
__led_all_blink_inf.stay:
lsetup(__led_all_blink_inf.lp,__led_all_blink_inf.lp) LC0 = P4;
__led_all_blink_inf.lp: nop;
R7 = ALL_LED (z);
w[P5 + lo(PORTFIO_TOGGLE)] = R7;
ssync;
jump __led_all_blink_inf.stay;
POP_LOOP_REGx(0);
R0 = [SP++];
(R7:7,P5:4) = [SP++];
unlink;
rts;
__led_all_blink_inf.END:
/*****************************************************************************
Function: __led1_toggle
Description: toggle EZ-KIT Lite LED1
Input Parameters: none
Return Parameters: none
Registers Used: R7,P5
Global Variables Used: none
C-Callable : no
*****************************************************************************/
__led1_toggle:
link 0;
[--SP] = (R7:7,P5:5);
IMM32(P5,SYS_MMR_BASE);
R7 = LED1 (z);
w[P5 + lo(PORTFIO_TOGGLE)] = R7;
ssync;
(R7:7,P5:5) = [SP++];
unlink;
rts;
__led1_toggle.END:
/*****************************************************************************
Function: __led1_toggle
Description: toggle EZ-KIT Lite LED2
Input Parameters: none
Return Parameters: none
Registers Used: R7,P5
Global Variables Used: none
C-Callable : no
*****************************************************************************/
__led2_toggle:
link 0;
[--SP] = (R7:7,P5:5);
IMM32(P5,SYS_MMR_BASE);
R7 = LED2 (z);
w[P5 + lo(PORTFIO_TOGGLE)] = R7;
ssync;
(R7:7,P5:5) = [SP++];
unlink;
rts;
__led2_toggle.END:
/*****************************************************************************
Function: __led1_toggle
Description: toggle EZ-KIT Lite LED3
Input Parameters: none
Return Parameters: none
Registers Used: R7,P5
Global Variables Used: none
C-Callable : no
*****************************************************************************/
__led3_toggle:
link 0;
[--SP] = (R7:7,P5:5);
IMM32(P5,SYS_MMR_BASE);
R7 = LED3 (z);
w[P5 + lo(PORTFIO_TOGGLE)] = R7;
ssync;
(R7:7,P5:5) = [SP++];
unlink;
rts;
__led3_toggle.END:
/*****************************************************************************
Function: __led1_toggle
Description: toggle EZ-KIT Lite LED4
Input Parameters: none
Return Parameters: none
Registers Used: R7,P5
Global Variables Used: none
C-Callable : no
*****************************************************************************/
__led4_toggle:
link 0;
[--SP] = (R7:7,P5:5);
IMM32(P5,SYS_MMR_BASE);
R7 = LED4 (z);
w[P5 + lo(PORTFIO_TOGGLE)] = R7;
ssync;
(R7:7,P5:5) = [SP++];
unlink;
rts;
__led4_toggle.END:
/*****************************************************************************
Function: __led1_toggle
Description: toggle EZ-KIT Lite LED5
Input Parameters: none
Return Parameters: none
Registers Used: R7,P5
Global Variables Used: none
C-Callable : no
*****************************************************************************/
__led5_toggle:
link 0;
[--SP] = (R7:7,P5:5);
IMM32(P5,SYS_MMR_BASE);
R7 = LED5 (z);
w[P5 + lo(PORTFIO_TOGGLE)] = R7;
ssync;
(R7:7,P5:5) = [SP++];
unlink;
rts;
__led5_toggle.END:
/*****************************************************************************
Function: __led1_toggle
Description: toggle EZ-KIT Lite LED6
Input Parameters: none
Return Parameters: none
Registers Used: R7,P5
Global Variables Used: none
C-Callable : no
*****************************************************************************/
__led6_toggle:
link 0;
[--SP] = (R7:7,P5:5);
IMM32(P5,SYS_MMR_BASE);
R7 = LED6 (z);
w[P5 + lo(PORTFIO_TOGGLE)] = R7;
ssync;
(R7:7,P5:5) = [SP++];
unlink;
rts;
__led6_toggle.END:
/*****************************************************************************
EOF
******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -