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

📄 iostructures.h

📁 无线传感器网络底层驱动程序
💻 H
字号:
/* * $Id: iostructures.h,v 1.7 2004/03/10 12:26:27 diwil Exp $   */#ifndef _GNU_ASSEMBLER_#ifndef  __IOSTRUCTURES_H__#define __IOSTRUCTURES_H__/* * This declares some usefull structures  * which describe IO ports. * (c) 2002, 2003  diwil@mail.ru */#ifdef MSP430_BITFIELDS_UNSIGNED#define __MSP430_UNS__#else#define __MSP430_UNS__ unsigned#endif#ifndef __MSP430_PORT_INIT_#define __VOLATILE volatile#else#define __VOLATILE#endiftypedef union port {  __VOLATILE __MSP430_UNS__ char reg_p;  __VOLATILE struct {    __MSP430_UNS__ char __p0:1,      __p1:1,      __p2:1,      __p3:1,      __p4:1,      __p5:1,      __p6:1,      __p7:1;  } __pin;} __attribute__ ((packed)) ioregister_t;#undef __MSP430_UNS__#define pin0    __pin.__p0#define pin1    __pin.__p1#define pin2    __pin.__p2#define pin3    __pin.__p3#define pin4    __pin.__p4#define pin5    __pin.__p5#define pin6    __pin.__p6#define pin7    __pin.__p7#define inport  in.reg_p#define outport out.reg_p#define dirport dir.reg_p#define ifgport ifg.reg_p#define iesport ies.reg_p#define ieport  ie.reg_p#define IO_DIRPIN_INPUT         0       /* direction input */#define IO_DIRPIN_OUTPUT        1       /* direction output */#define IO_DIRPORT_INPUT        0#define IO_DIRPORT_OUTPUT       0xff#define IO_IESPIN_RISING        0       /* interrupt edge on low-to-high transition (front edge, rising edge) */#define IO_IESPIN_FALLING       1       /* -"- -"- high-to-low */#define IO_IESPORT_RISING       0#define IO_IESPORT_FALLING      0xff#define IO_IRQPIN_DISABLE       0       /* interrupt request disabled */#define IO_IRQPIN_ENABLE        1       /* -"- -"- enabled*/#define IO_IRQPORT_DISABLE      0#define IO_IRQPORT_ENABLE       0xff#define IO_PINPIN_SELECT        0       /* pin 'pin' function select */#define IO_ALTPIN_SELECT        1       /* alternative function select */#define IO_PINPORT_SELECT       0#define IO_ALTPORT_SELECT       0xff#ifdef __cplusplus#define __MSP430_EXTERN__ extern "C"#else#define __MSP430_EXTERN__#endif //__cplusplus/****************************************************************/#ifdef __msp430_have_port0struct port0_t {  ioregister_t	in;	/* Input */  ioregister_t	out;	/* Output */  ioregister_t	dir;	/* Direction */  ioregister_t	ifg;	/* Interrupt Flag */  ioregister_t	ies;	/* Interrupt Edge Select */  ioregister_t	ie;	/* Interrupt Enable */};__MSP430_EXTERN__ struct port0_t port0 asm("0x0010");#endif/****************************************************************/#if defined(__msp430_have_port1) || defined(__msp430_have_port2)struct port_full_t {  ioregister_t	in;	/* Input */  ioregister_t	out;	/* Output */  ioregister_t	dir;	/* Direction */  ioregister_t	ifg;	/* Interrupt Flag */  ioregister_t	ies;	/* Interrupt Edge Select */  ioregister_t	ie;	/* Interrupt Enable */  ioregister_t	sel;	/* Selection */};#endif#if defined(__msp430_have_port3) || defined(__msp430_have_port4) \ || defined(__msp430_have_port5) || defined(__msp430_have_port6)struct port_simple_t {  ioregister_t	in;	/* Input */  ioregister_t	out;	/* Output */  ioregister_t	dir;	/* Direction */  ioregister_t	sel;	/* Selection */};#endif/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */#ifdef __msp430_have_port1__MSP430_EXTERN__ struct port_full_t port1 asm("0x0020");#endif#ifdef __msp430_have_port2__MSP430_EXTERN__ struct port_full_t port2 asm("0x0028");#endif#ifdef __msp430_have_port3__MSP430_EXTERN__ struct port_simple_t port3 asm("0x0018");#endif#ifdef __msp430_have_port4__MSP430_EXTERN__ struct port_simple_t port4 asm("0x001c");#endif#ifdef __msp430_have_port5__MSP430_EXTERN__ struct port_simple_t port5 asm("0x0030");#endif#ifdef __msp430_have_port6__MSP430_EXTERN__ struct port_simple_t port6 asm("0x0034");#endif#undef __MSP430_EXTERN__#ifdef __MSP430_PORT_INIT_#undef __VOLATILE#endif#endif /* __IOSTRUCTURES_H__ */#endif /* GNU_ASSEMBLER */

⌨️ 快捷键说明

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