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

📄 io652x.h

📁 TDK 6521 SOC 芯片 DEMO程序
💻 H
📖 第 1 页 / 共 2 页
字号:

//==========================A8=CE3 bit definitions===========================//
#define CE_LCTN          0x1F  // CE Program Location. Starting address is CE_LCTN * 0x400.

//==========================A9=WAKE==========================================//
#define WAKE_ARM         BIT7  // Arm the autowake timer.
#define SLEEP            BIT6  // Puts 6520 to sleep.
#define LCD_ONLY         BIT5  // Only power LCD, put rest of 6520 to sleep.
//                       BIT4  // Reserved.
#define WAKE_RES         BIT3  // 1 => 1 minute resolution; 0 => 2.5 seconds.
enum eWAKE_RES { _2P5_SECONDS = 0x00, _1_MINUTE = 0x08 };

#define WAKE_PRD         0x07  // Sleep time = WAKE_PRD * WAKE_RES.



//==========================FD=TRIMSEL=======================================//
#define FOVRIDE          BIT4
#define TRIMSEL_MSK      0x0F
enum eTRIMSEL { _NONE, _TRIMT, _TRIMV, _TRIMI, _TRIMM, _TRIMBGA, _TRIMBGB, _TRIMLVP, _TRIML };

//==========================FF=TRIM==========================================//

//==========================00=Configuration=================================//
struct iConfig_t
{                              // IO Configuration SFRs.
    uint8_t I_CE0;             // Compute Engine Control 0.
    uint8_t I_CE1;             // Compute Engine Control 1.
    uint8_t I_CE2;             // Compute Engine Control 2.
    uint8_t I_COMP0;           // Compare Control 0.
    uint8_t I_CONFIG0;         // Configuration Control 0.
    uint8_t I_CONFIG1;         // Configuration Control 1.
    uint8_t I_VERSION;         // Chip Version.
    uint8_t I_CONFIG2;         // Configuration Control 2.
};

//==========================08=Digital I/O===================================//
struct iDio_t
{                              // IO Digital-IO SFRs.
    uint8_t I_DIO;             // DIO Control.
    uint8_t I_DIO_R[6];        // DIO Resource Assignments.
};

//==========================15=Real Time Clock===============================//
struct iRTC_t                  //
{                              // Real-Time-Clock SFRs.
    uint8_t I_RTC_SEC;         // 00 to 59 seconds.
    uint8_t I_RTC_MIN;         // 00 to 59 minutes.
    uint8_t I_RTC_HR;          // 00 to 23 hours (00=Midnight).
    uint8_t I_RTC_DAY;         // 01 to 07 day-of-week (01=Sunday).
    uint8_t I_RTC_DATE;        // 01 to 31 day-of-month.
    uint8_t I_RTC_MO;          // 01 to 12 month.
    uint8_t I_RTC_YR;          // 00 to 255 year (00 is a leap year).
    uint8_t I_RTC_ADJUST;      // RTC adjust (rtc_sec++ or rtc_sec--).
};

//==========================20=LCD Interface=================================//
struct iLCD_Interface_t
{                              // LCD-Interface SFRs.
    uint8_t I_LCDX;            // LCD Control X.
    uint8_t I_LCDY;            // LCD Control Y.
    uint8_t I_LCDZ;            // LCD Control Z.
};

//==========================30=LCD Segments==================================//
struct iLCD_Segments_t
{                              // IO LCD-Segments SFRs.
    uint8_t I_LCD[39];         // LCD Segments.
};

//==========================60=RTM===========================================//
struct iRTM_t
{                              // IO Real-Time-Monitor SFRs.
    uint8_t I_RTM[4];          // RTM Output Addresses.
};

//==========================80=Pulse Generator===============================//
struct iPulseGenerator_t
{
    uint8_t P_PLS_W;           // Pulse MaxWidth.    
    uint8_t P_PLS_I;           // Pulse Interval.
};

//==========================A8=Configuration=================================//
struct iCE_Lctn_t
{                              // IO Configuration SFRs.
    uint8_t I_CE3;             // Compute Engine Control 3.
    uint8_t I_WAKE;            // Wake.                       
    uint8_t I_TMUX;            // TMux.
};

//==========================FD=TRIM==========================================//
struct iTrim_t
{                              // Trim Sfrs.
    uint8_t I_TRIMSEL;         // Trim Select.
    uint8_t I_TRIMX;           // Trim Control X.
    int8_t I_TRIM;             // Trim Data.
};

extern volatile struct iConfig_t        xdata Configuration;
extern volatile struct iDio_t           xdata Digital_IO;      
extern volatile struct iRTC_t           xdata Real_Time_Clock;
extern volatile struct iLCD_Interface_t xdata Lcd_Interface;
extern volatile struct iLCD_Segments_t  xdata Lcd_Segments;
extern volatile struct iRTM_t           xdata Rtm_Probes;
extern volatile struct iPulseGenerator_t xdata PulseGenerator;   
extern volatile struct iCE_Lctn_t       xdata CE_Location;
extern volatile struct iTrim_t          xdata Trim_Control;

extern volatile uint8x_t CE0;
extern volatile uint8x_t CE1;
extern volatile uint8x_t CE2;
extern volatile uint8x_t COMP0;
extern volatile uint8x_t CONFIG0;
extern volatile uint8x_t CONFIG1;
extern volatile uint8x_t VERSION;
extern volatile uint8x_t CONFIG2;

extern volatile uint8x_t DIO;
extern volatile uint8x_t DIO_R[];

extern volatile uint8x_t RTC[7];   
extern volatile uint8x_t RTC_ADJUST;   
extern volatile uint8x_t WE;
extern volatile uint8x_t LCDX;
extern volatile uint8x_t LCDY;
extern volatile uint8x_t LCD[39];
extern volatile uint8x_t LCD_BLINK;

extern volatile uint8x_t RTM[4];

extern volatile uint8x_t PLS_W;
extern volatile uint8x_t PLS_I;

extern volatile uint8x_t CE3;   
extern volatile uint8x_t WAKE;   
extern volatile uint8x_t TMUX;   

extern volatile uint8x_t TRIMSEL;
extern volatile uint8x_t TRIMX;
extern volatile int8x_t  TRIM;

#define RTC_SEC 	RTC[0]
#define RTC_MIN 	RTC[1]
#define RTC_HR  	RTC[2]
#define RTC_DAY 	RTC[3]
#define RTC_DATE	RTC[4]
#define RTC_MO  	RTC[5]
#define RTC_YEAR	RTC[6]

#define COMPARE_STATUS  (COMP0 & COMP_STAT)

int8_t Read_Trim (enum eTRIMSEL select);   // Read the trim values.

/***************************************************************************
 * History:
 * $Log: io652x.h,v $
 * Revision 1.14  2006/09/09 01:14:06  gmikef
 * *** empty log message ***
 *
 * Revision 1.13  2006/06/24 00:15:56  tvander
 * *** empty log message ***
 *
 * Revision 1.12  2006/03/06 03:39:06  Michael T. Fischer
 * More 6530 prep.
 *
 * Revision 1.11  2006/02/08 03:43:26  tvander
 * Made "import" the default power measurement mode, rather than net-metering
 *
 * Revision 1.10  2006/01/16 20:11:28  tvander
 * Clean Keil build, all versions
 *
 * Revision 1.8  2005/09/22 23:45:17  tvander
 * Clean build all models and unit tests, updated copyright to be fore Teridian
 *
 * Revision 1.7  2005/08/31 05:57:25  gmikef
 * First version w/ LAPIE interface.
 *
 * Revision 1.6  2005/08/30 18:17:19  gmikef
 * *** empty log message ***
 *
 * Revision 1.5  2005/08/20 01:32:48  gmikef
 * *** empty log message ***
 *
 * Revision 1.4  2005/08/19 01:04:44  gmikef
 * *** empty log message ***
 *
 * Revision 1.3  2005/08/16 02:28:32  gmikef
 * Remapped LCD for 6520 Eval Board.
 * Mapped CE code location to address of 'CeCode'.
 *
 * Revision 1.2  2005/08/10 02:02:53  gmikef
 * *** empty log message ***
 *
 * Revision 1.1  2005/05/04 00:59:26  gmikef
 * *** empty log message ***
 *
 * Revision 1.8  2005/05/03 00:39:47  tvander
 * Incorporated event reporting in tmr0,tmr1 and unit tests.
 * Retested stm, trm0, tmr1.
 * Incorporated untested changes in io651x.h
 *
 * Revision 1.7  2005/04/30 02:17:48  gmikef
 * *** empty log message ***
 *
 * Revision 1.6  2005/04/28 19:12:25  tvander
 * Comments only!  Restored history comments.
 *
 * Revision 1.5  2005/04/27 23:46:05  gmikef
 * Some MATH rountines now use 'idata'.
 * Added MATH_FAST flag to 'options.h".
 * Changed "6521B.Uv2" to max optimization.
 *
 * Revision 1.4  2005/04/25 21:30:45  gmikef
 * Current w/ rev 1.6 of design specification.
 *
 * Revision 1.3  2005/04/21 02:06:14  gmikef
 * *** empty log message ***
 *
 * Revision 1.2  2005/04/06 18:09:40  gmikef
 * *** empty log message ***
 *
 * Revision 1.1  2005/03/24 21:44:56  gmikef
 * *** empty log message ***
 *
 * Copyright (C) 2005 Teridian Semiconductor Corp. All Rights Reserved.    *
 * this program is fully protected by the United States copyright          *
 * laws and is the property of Teridian Semiconductor Corporation.         *
 ***************************************************************************/
#endif  /* io652x.h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -