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

📄 wdt_wakeup.c

📁 em78p156的范例
💻 C
字号:
/***********************************************************
*  Tilte:                                                  *
*  Description:  WDT wake up function                      *
                                                           *
*  Company:     Elan microelectronics (sz) ltd.            *
*  Author:      HongXi.Tang                                *
*  Date:        19/05/2005                                 *
*  Version:     v1.0                                       *
***********************************************************/

#include "EM78x156xx.h"

#define	EWDT	1
#define DWDT	0
#define WDT_STATUS	DWDT

#define WDT_Prescaler	0x8e

void WDT_wakeup(void)
{
	_asm
	{
		mov	a,@WDT_Prescaler
		contw
	}
	WDTCR|=0x80;		//enable WDT
	IMR&=0xfd;			//disable pin change interrupt
	_asm
	{
		disi
		slep
	}
}

void main()
{
	WDT_wakeup();
	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 + -