📄 io_fun.c
字号:
/***********************************************************
* Tilte: *
* Description: i/o pull up,pull down,open-drain,R-option *
function *
* Company: Elan microelectronics (sz) ltd. *
* Author: HongXi.Tang *
* Date: 19/05/2005 *
* Version: v1.0 *
***********************************************************/
#include "EM78x156xx.h"
void io_fun_setup(void)
{
PDCR=0; //enable p50~2,p60~3's pull down
ODCR=0xff; //enable port6 open-drain
PHCR=0x0f; //enable p64~7 pull up
WDTCR&=0xef; //"1" enable R-option ,"0" disable R-option
}
void main()
{
io_fun_setup();
while(1);
}
void _intcall interrupt_l(void) @ 0x08:low_int 0
{
_asm
{
//save A --> 0x1F ; R3 --> 0x3E (ram bank 1); R4 --> 0x3F (ram bank 1)
MOV 0X1F,A ;backup A to 0x1F
SWAPA 0X04 ;backup R4 to 0x3F at bank 3
MOV 0X3F,A ;backup R4 to 0x3F at bank 3
SWAPA 0X03
MOV 0X3E,A ;backup R3 to 0x3E at bank 3
}
}
void _intcall interrupt(void) @ int 0
{
//backup C system
/* _asm
{
MOV A,0X10 // USE 1 BYTE C TYPE,C SYSTEM BACKUP
MOV 0X3C+1,A
MOV A,0X14
MOV 0X3B+1,A
MOV A,0X18
MOV 0X3A+1,A
MOV A,0X1B
MOV 0X39+1,A
MOV A,0X1C
MOV 0X38+1,A
}
*/
// Write your code (inline assembly or C) here
//restore C system
/* _asm
{
MOV A,0X3C+1 // USE 1 BYTE C TYPE,C SYSTEM RESTORE
MOV 0X10,A
MOV A,0X3B+1
MOV 0X14,A
MOV A,0X3A+1
MOV 0X18,A
MOV A,0X39+1
MOV 0X1B,A
MOV A,0X38+1
MOV 0X1C,A
}
*/
//restore ACC,R3,R4
_asm
{
SWAPA 0X3E ;restore R3
MOV 0X03,A
SWAPA 0X3F ;restore R4
MOV 0X04,A
SWAP 0X1F ;restore A
SWAPA 0X1F
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -