cyberkyg 发表于 2010-4-21 23:27:23

msp430的端口位操作

这是我自己使用的,很方便

#include "msp430x22x4.h"
//----------------------------------------------------
//Description:msp430系列单片机常用端口位操作
//write by Meredith
//2007.5.1
//email:cyberkyg@163.com
//
//modify at 2010.4.21
//-----------------------------------------------------
#ifndef _MSP430_KYG_H_
#define _MSP430_KYG_H_

#define U8 unsigned char
#define U16 unsigned int
#define uintunsigned int
#define uchar unsigned char

//----------------IO bits Set/Clr---------------------
#define ClrP1(n) P1OUT&=(~n)
#define SetP1(n) P1OUT|=n
#define ClrP2(n) P2OUT&=(~n)
#define SetP2(n) P2OUT|=n
#define ClrP3(n) P3OUT&=(~n)
#define SetP3(n) P3OUT|=n
#define ClrP4(n) P4OUT&=(~n)
#define SetP4(n) P4OUT|=n
#define ClrP5(n) P5OUT&=(~n)
#define SetP5(n) P5OUT|=n
#define ClrP6(n) P6OUT&=(~n)
#define SetP6(n) P6OUT|=n
//--------------------IO bits Input/Output--------------------------
#define SetInP1(n) P1DIR&=(~n)
#define SetOutP1(n) P1DIR|=n
#define SetInP2(n) P2DIR&=(~n)
#define SetOutP2(n) P2DIR|=n
#define SetInP3(n) P3DIR&=(~n)
#define SetOutP3(n) P3DIR|=n
#define SetInP4(n) P4DIR&=(~n)
#define SetOutP4(n) P4DIR|=n
#define SetInP5(n) P5DIR&=(~n)
#define SetOutP5(n) P5DIR|=n
#define SetInP6(n) P6DIR&=(~n)
#define SetOutP6(n) P6DIR|=n
//---------------------IO bits PULL Enabled/Disabled----------------
#define PullEnabledP1(n) P1REN|=n
#define PullDisabledP1(n) P1REN&=(~n)
#define PullEnabledP2(n) P2REN|=n
#define PullDisabledP2(n) P2REN&=(~n)
#define PullEnabledP3(n) P3REN|=n
#define PullDisabledP3(n) P3REN&=(~n)
#define PullEnabledP4(n) P4REN|=n
#define PullDisabledP4(n) P4REN&=(~n)
#define PullEnabledP5(n) P5REN|=n
#define PullDisabledP5(n) P5REN&=(~n)
#define PullEnabledP6(n) P6REN|=n
#define PullDisabledP6(n) P6REN&=(~n)
//---------------------IO bits PullUp/PullDown----------------------
#define PullDownP1(n) P1OUT&=(n)
#define PullUpP1(n) P1OUT|=n
#define PullDownP2(n) P2OUT&=(~n)
#define PullUpP2(n) P2OUT|=n
#define PullDownP3(n) P3OUT&=(~n)
#define PullUpP3(n) P3OUT|=n
#define PullDownP4(n) P4OUT&=(~n)
#define PullUpP4(n) P4OUT|=n
#define PullDownP5(n) P5OUT&=(~n)
#define PullUpP5(n) P5OUT|=n
#define PullDownP6(n) P6OUT&=(~n)
#define PullUpP6(n) P6OUT|=n
//------------------------IO bits Input-----------
#define P1Input(n) P1IN&n?1:0
#define P2Input(n) P2IN&n?1:0
#define P3Input(n) P3IN&n?1:0
#define P4Input(n) P4IN&n?1:0
#define P5Input(n) P5IN&n?1:0
#define P6Input(n) P6IN&n?1:0
//------------------------------------------------------------------------

#define DCO_F 16               //定义主时钟频率,1,8,12,16(MHZ)
#define _delay_us(n) __delay_cycles((float)(n)*DCO_F)   //20us以下误差较大
#define _delay_ms(n) __delay_cycles(n*(1000.0f)*DCO_F)

//----------------------------------------------------------------------------
void Init_CLK(unsigned char nDco);
#endif

cyberkyg 发表于 2010-4-21 23:31:17

使用时只要将n换成相应的位就可以,比如ClrP1(BIT5);即p1.5=0;
再比如i=P1Input(BIT4);即i=p1.4;

Icyan 发表于 2010-4-23 10:07:59

mark一下

kunpeng032 发表于 2010-4-28 13:14:10

学习了~~~顶!!!

lantian0099 发表于 2011-6-16 16:16:09

挺好的

wmyan2010 发表于 2011-8-20 18:21:50

就是做一下变换嘛,还是原型速度会快些把

xjchw1 发表于 2011-8-25 17:18:24

学习了!!!

wl1336412 发表于 2011-9-30 00:19:30

回复【6楼】wmyan2010
就是做一下变换嘛,还是原型速度会快些把
-----------------------------------------------------------------------

做了这个变换会方便很多啊,
宏定义会影响速度么?
页: [1]
查看完整版本: msp430的端口位操作