📄 061reg.h
字号:
#ifndef __061REG_h__
#define __061REG_h__
/*H**************************************************************************
* 文件名: filename.h
*----------------------------------------------------------------------------
* 版权 (c) 2004 TGE.
*----------------------------------------------------------------------------
* 释放: Spce061A
* 版本: 1.13
*----------------------------------------------------------------------------
* 目的:
*
*****************************************************************************/
/*_____ 包括 ________________________________________________________*/
asm(".DEFINE P_IOA_Data 0x7000"); // Write Data into data register and read from IOA pad
asm(".DEFINE P_IOA_Buffer 0x7001"); // Write Data into buffer register and read from buffer register
asm(".DEFINE P_IOA_Dir 0x7002"); // Direction vector for IOA
asm(".DEFINE P_IOA_Attrib 0x7003"); // Attribute vector for IOA
asm(".DEFINE P_IOA_Latch 0x7004"); // Latch PortA data for key change wake-up
asm(".DEFINE P_IOB_Data 0x7005"); // Write Data into the data register and read from IOB pad
asm(".DEFINE P_IOB_Buffer 0x7006"); // Write Data into buffer register and read from buffer register
asm(".DEFINE P_IOB_Dir 0x7007"); // Direction vector for IOB
asm(".DEFINE P_IOB_Attrib 0x7008"); // Attribute vector for IOB
/*_____ 宏 ________________________________________________________*/
#define FIQ_ON() asm("FIQ ON")
#define FIQ_OFF() asm("FIQ OFF")
#define IRQ_ON() asm("IRQ ON")
#define IRQ_OFF() asm("IRQ OFF")
#define INT_FIQ() asm("INT FIQ")
#define INT_IRQ() asm("INT IRQ")
#define INT_FIQ_IRQ() asm("FIQ ON \n\t" "IRQ ON")
#define INT_OFF() asm("FIQ OFF \n\t" "IRQ OFF")
#define GetIOADir asm("%0=[P_IOA_Dir]" :"=r"(PortA))
#define GetIOAAttrib asm("%0=[P_IOA_Attrib]" :"=r"(PortA))
#define GetIOAData asm("%0=[P_IOA_Data]" :"=r"(PortA))
#define GetIOABuffer asm("%0=[P_IOA_Buffer]" :"=r"(PortA))
#define SetIOADir asm("[P_IOA_Dir]=%0" ::"r"(PortA))
#define SetIOAAttrib asm("[P_IOA_Attrib]=%0" ::"r"(PortA))
#define SetIOAData asm("[P_IOA_Data]=%0" ::"r"(PortA))
#define SetIOABuffer asm("[P_IOA_Buffer]=%0" ::"r"(PortA))
//-----------------------------------------------------------------------------------//
#define GetIOBDir asm("%0=[P_IOB_Dir]" :"=r"(PortB))
#define GetIOBAttrib asm("%0=[P_IOB_Attrib]" :"=r"(PortB))
#define GetIOBData asm("%0=[P_IOB_Data]" :"=r"(PortB))
#define GetIOBBuffer asm("%0=[P_IOB_Buffer]" :"=r"(PortB))
#define SetIOBDir asm("[P_IOB_Dir]=%0" ::"r"(PortB))
#define SetIOBAttrib asm("[P_IOB_Attrib]=%0" ::"r"(PortB))
#define SetIOBData asm("[P_IOB_Data]=%0" ::"r"(PortB))
#define SetIOBBuffer asm("[P_IOB_Buffer]=%0" ::"r"(PortB))
/*_____ 定义 ________________________________________________________*/
#define P_IOA_Data (volatile unsigned int *)0x7000
#define P_IOA_Buffer (volatile unsigned int *)0x7001
#define P_IOA_Dir (volatile unsigned int *)0x7002
#define P_IOA_Attrib (volatile unsigned int *)0x7003
#define P_IOA_Latch (volatile unsigned int *)0x7004
//............................................
#define P_IOB_Data (volatile unsigned int *)0x7005
#define P_IOB_Buffer (volatile unsigned int *)0x7006
#define P_IOB_Dir (volatile unsigned int *)0x7007
#define P_IOB_Attrib (volatile unsigned int *)0x7008
//............................................
#define P_FeedBack (volatile unsigned int *)0x7009
#define P_TimerA_Data (volatile unsigned int *)0x700A
#define P_TimerA_Ctrl (volatile unsigned int *)0x700B
#define P_TimerB_Data (volatile unsigned int *)0x700C
#define P_TimerB_Ctrl (volatile unsigned int *)0x700D
#define P_TimeBase_Setup (volatile unsigned int *)0x700E
#define P_TimeBase_Clear (volatile unsigned int *)0x700F
#define P_INT_Ctrl (volatile unsigned int *)0x7010
#define P_INT_Clear (volatile unsigned int *)0x7011
#define P_INT_Mask (volatile unsigned int *)0x702D
#define P_Watchdog_Clear (volatile unsigned int *)0x7012
#define P_SystemClock (volatile unsigned int *)0x7013
//... PA6442 New version MC52A (For EC-03)....
#define P_ADC (volatile unsigned int *)0x7014
#define P_ADC_Ctrl (volatile unsigned int *)0x7015
#define P_ADC_MUX_Ctrl (volatile unsigned int *)0x702B
#define P_ADC_LINEIN_Data (volatile unsigned int *)0x702C
#define P_DAC2 (volatile unsigned int *)0x7016
#define P_DAC1 (volatile unsigned int *)0x7017
#define P_DAC_Ctrl (volatile unsigned int *)0x702A
//............................................
#define P_LVD_Ctrl (volatile unsigned int *)0x7019
//............................................
#define P_SIO_Data (volatile unsigned int *)0x701A
#define P_SIO_Addr_Low (volatile unsigned int *)0x701B
#define P_SIO_Addr_Mid (volatile unsigned int *)0x701C
#define P_SIO_Addr_High (volatile unsigned int *)0x701D
#define P_SIO_Ctrl (volatile unsigned int *)0x701E
#define P_SIO_Start (volatile unsigned int *)0x701F
#define P_SIO_Stop (volatile unsigned int *)0x7020
//............................................
#define P_UART_Command1 (volatile unsigned int *)0x7021
#define P_UART_Command2 (volatile unsigned int *)0x7022
#define P_UART_Data (volatile unsigned int *)0x7023
#define P_UART_BaudScalarLow (volatile unsigned int *)0x7024
#define P_UART_BaudScalarHigh (volatile unsigned int *)0x7025
/*_____ 声明 ________________________________________________________*/
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
void Set_IOA_Dir(unsigned int);
unsigned int Get_IOA_Dir(void);
void Set_IOA_Attrib(unsigned int);
unsigned int Get_IOA_Attrib(void);
void Set_IOA_Data(unsigned int);
unsigned int Get_IOA_Data(void);
void Set_IOA_Buffer(unsigned int);
unsigned int Get_IOA_Buffer(void);
void Get_IOA_Latch(void);
//-----------------------------------------------------------------------------------//
void Set_IOB_Dir(unsigned int);
unsigned int Get_IOB_Dir(void);
void Set_IOB_Attrib(unsigned int);
unsigned int Get_IOB_Attrib(void);
void Set_IOB_Data(unsigned int);
unsigned int Get_IOB_Data(void);
void Set_IOB_Buffer(unsigned int);
unsigned int Get_IOB_Buffer(void);
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
void Set_TimerA_Data(unsigned int);
unsigned int Get_TimerA_Data(void);
void Set_TimerA_Ctrl(unsigned int);
//----------------Default Value-----------------------------//
#define C_TimerADefault 0x0036 //
//----------------TimerA TimeBase---------------------------//
#define C_SourceA_Fosc2 0x0000 //
#define C_SourceA_Fosc256 0x0001 //
#define C_SourceA_32768Hz 0x0002 //
#define C_SourceA_8192Hz 0x0003 //
#define C_SourceA_4096Hz 0x0004 //
#define C_SourceA_1 0x0005 //
#define C_SourceA_0 0x0006 //*
#define C_SourceA_Ext1 0x0007 //
//----------------------------------------------------------//
#define C_SourceB_2048Hz 0x0000 //
#define C_SourceB_1024Hz 0x0008 //
#define C_SourceB_256Hz 0x0010 //
#define C_SourceB_TMB1 0x0018 //
#define C_SourceB_4Hz 0x0020 //
#define C_SourceB_2Hz 0x0028 //
#define C_SourceB_1 0x0030 //*
#define C_SourceB_Ext2 0x0038 //
//-----------------------------------------------------------------------------------//
void Set_TimerB_Data(unsigned int);
unsigned int Get_TimerB_Data(void);
void Set_TimerB_Ctrl(unsigned int);
//----------------Default Value-----------------------------//
#define C_TimerBDefault 0x0006 //
//----------------TimerB TimeBase----------------------------//
#define C_SourceC_Fosc2 0x0000 //
#define C_SourceC_Fosc256 0x0001 //
#define C_SourceC_32768Hz 0x0002 //
#define C_SourceC_8192Hz 0x0003 //
#define C_SourceC_4096Hz 0x0004 //
#define C_SourceC_1 0x0005 //
#define C_SourceC_0 0x0006 //*
#define C_SourceC_Ext1 0x0007 //
//-----------------TimerA TimerB TimeBase--------------------------------------------//
#define C_DutyOff 0x0000 //
#define C_Duty1 0x0040 //
#define C_Duty2 0x0080 //
#define C_Duty3 0x00C0 //
#define C_Duty4 0x0100 //
#define C_Duty5 0x0140 //
#define C_Duty6 0x0180 //
#define C_Duty7 0x01C0 //
#define C_Duty8 0x0200 //
#define C_Duty9 0x0240 //
#define C_Duty10 0x0280 //
#define C_Duty11 0x02C0 //
#define C_Duty12 0x0300 //
#define C_Duty13 0x0340 //
#define C_Duty14 0x0380 //
#define C_Duty_Div_2 0x03C0 // Timer A&B
//----------------Default Value-----------------------------//
#define C_TimeBaseDefault 0x0000 //
//-----------------------------------------------------------------------------------//
void Set_TimeBase(unsigned int);
#define C_TMB1_8Hz 0x0000 //*
#define C_TMB1_16Hz 0x0001 //
#define C_TMB1_32Hz 0x0002 //
#define C_TMB1_64Hz 0x0003 //
#define C_TMB2_128Hz 0x0000 //*
#define C_TMB2_256Hz 0x0004 //
#define C_TMB2_512Hz 0x0008 //
#define C_TMB2_1024Hz 0x000C //
void Clear_TimeBase(void);
#define C_TMBCLR 0x5555 //
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
void Set_FeedBack(unsigned int);
#define C_FBKEN3 0x08 //Enable IOB3 and IOB5 FeedBack2
#define C_FBKEN2 0x04 //Enable IOB2 and IOB4 FeedBack1
#define C_IRTxEN 0x01 //Enable IOB8 and IOB10 IRTx / Tx
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
void Set_INT_Ctrl(unsigned int);
unsigned int Get_INT_Ctrl(void);
void Set_INT_Mask(unsigned int);
unsigned int Get_INT_Mask(void);
void INT_Clear(unsigned int);
#define C_IRQ6_TMB2 0x0001 // Timer B IRQ6
#define C_IRQ6_TMB1 0x0002 // Timer A IRQ6
#define C_IRQ5_2Hz 0x0004 // 2Hz IRQ5
#define C_IRQ5_4Hz 0x0008 // 4Hz IRQ5
#define C_IRQ4_1KHz 0x0010 // 1024Hz IRQ4
#define C_IRQ4_2KHz 0x0020 // 2048Hz IRQ4
#define C_IRQ4_4KHz 0x0040 // 4096Hz IRQ4
#define C_IRQ3_KEY 0x0080 // Key Change IRQ3
#define C_IRQ3_EXT1 0x0100 // Ext1 IRQ3
#define C_IRQ3_EXT2 0x0200 // Ext2 IRQ3
#define C_IRQ2_TMB 0x0400 // Timer B IRQ2
#define C_FIQ_TMB 0x0800 // Timer B FIQ
#define C_IRQ1_TMA 0x1000 // Timer A IRQ1
#define C_FIQ_TMA 0x2000 // Timer A FIQ
#define C_IRQ0_PWM 0x4000 // PWM IRQ0
#define C_FIQ_PWM 0x8000 // PWM FIQ
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
void Watchdog_Clear(void);
#define C_WDTCLR 0x0001 //WDT CLR CMD
//-----------------------------------------------------------------------------------//
void Set_SystemClock(unsigned int); //Std061SYS.asm
//... Definition for P_SystemClock ............
#define C_SystemClockDefalut 0x0013 // (default value)
//B2..B0
#define C_Fosc 0x0000 //
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -