求助 哪位大侠有 MSP430x2xx 例程 或是资料
本帖最后由 asunders 于 2012-5-5 18:40 编辑用的是MSP430G2553,哪位大侠有 MSP430x2xx 模块例程或是中文手册的能不能发一下?
发到邮箱asunder_love@126.com也可以~
谢谢~~ 还有就是论坛的老资料都不能下载,莫大什么时候能够解决呢。。 样例已经发送。。。 风无痕 发表于 2012-5-5 19:02 static/image/common/back.gif
样例已经发送。。。
已收到,谢谢~~
不过您的是MSPX14XX系列的例程,如果是MSPX2XX或者直接就是MSPG2553的例程就更好了 up...
waiting.. 给你一个闪LED灯的,在launchpad上跑的。用户手册,数据手册到TI网站上下载吧,我就不浪费网站资源了。PS,别说你不读英文的文档
/******************************************************************************
* MSP-EXP430G2-LaunchPad User Experience Application
*
* 1. Device starts up in LPM3 + blinking LED to indicate device is alive
* + Upon first button press, device transitions to application mode
* 2. Application Mode
* + Continuously sample ADC Temp Sensor channel, compare result against
* initial value
* + Set PWM based on measured ADC offset: Red LED for positive offset, Green
* LED for negative offset
* + Transmit temperature value via TimerA UART to PC
* + Button Press --> Calibrate using current temperature
* Send character '? via UART, notifying PC
******************************************************************************/
#include"msp430x20x2.h"
#define LED0 BIT0
#define LED1 BIT6
#define LED_DIR P1DIR
#define LED_OUT P1OUT
#define BUTTON BIT3
#define BUTTON_OUT P1OUT
#define BUTTON_DIR P1DIR
#define BUTTON_IN P1IN
#define BUTTON_IE P1IE
#define BUTTON_IES P1IES
#define BUTTON_IFG P1IFG
#define BUTTON_REN P1REN
#define TXD BIT1 // TXD on P1.1
#define RXD BIT2 // RXD on P1.2
#define APP_STANDBY_MODE 0
#define APP_APPLICATION_MODE1
#define TIMER_PWM_MODE 0
#define TIMER_UART_MODE 1
#define TIMER_PWM_PERIOD 10
#define TIMER_PWM_OFFSET 20
#define TEMP_SAME 0
#define TEMP_HOT 1
#define TEMP_COLD 2
#define TEMP_THRESHOLD 5
// Conditions for 9600/4=2400 Baud SW UART, SMCLK = 1MHz
#define Bitime_5 0x05*4 // ~ 0.5 bit length + small adjustment
#define Bitime 13*4//0x0D
#define UART_UPDATE_INTERVAL1000
unsigned char BitCnt;
unsigned char applicationMode = APP_STANDBY_MODE;
unsigned char timerMode = TIMER_PWM_MODE;
unsigned char tempMode;
unsigned char calibrateUpdate = 0;
unsigned char tempPolarity = TEMP_SAME;
unsigned int TXByte;
/* Using an 8-value moving average filter on sampled ADC values */
long tempMeasured;
unsigned char tempMeasuredPosition=0;
long tempAverage;
long tempCalibrated, tempDifference;
void InitializeLeds(void);
void InitializeButton(void);
void PreApplicationMode(void); // Blinks LED, waits for button press
void ConfigureAdcTempSensor(void);
void ConfigureTimerPwm(void);
void ConfigureTimerUart(void);
void Transmit(void);
void InitializeClocks(void);
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
InitializeClocks();
InitializeButton();
InitializeLeds();
PreApplicationMode(); // Blinks LEDs, waits for button press
/* Application Mode begins */
applicationMode = APP_APPLICATION_MODE;
ConfigureTimerPwm();
__enable_interrupt(); // Enable interrupts.
/* Main Application Loop */
while(1)
{
}
}
void PreApplicationMode(void)
{
LED_DIR |= LED0 + LED1;
LED_OUT |= LED0; // To enable the LED toggling effect
LED_OUT &= ~LED1;
BCSCTL1 |= DIVA_1; // ACLK/2
BCSCTL3 |= LFXT1S_2; // ACLK = VLO
TACCR0 = 1200; //
TACTL = TASSEL_1 | MC_1; // TACLK = SMCLK, Up mode.
TACCTL1 = CCIE + OUTMOD_3; // TACCTL1 Capture Compare
TACCR1 = 600;
__bis_SR_register(LPM3_bits + GIE); // LPM0 with interrupts enabled
}
void ConfigureTimerPwm(void)
{
timerMode = TIMER_PWM_MODE;
TACCR0 = TIMER_PWM_PERIOD; //
TACTL = TASSEL_2 | MC_1; // TACLK = SMCLK, Up mode.
TACCTL0 = CCIE;
TACCTL1 = CCIE + OUTMOD_3; // TACCTL1 Capture Compare
TACCR1 = 1;
}
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
{
if (tempPolarity == TEMP_HOT)
LED_OUT |= LED1;
if (tempPolarity == TEMP_COLD)
LED_OUT |= LED0;
TACCTL0 &= ~CCIFG;
}
}
#pragma vector=TIMERA1_VECTOR
__interrupt void ta1_isr(void)
{
TACCTL1 &= ~CCIFG;
LED_OUT ^= (LED0 + LED1);
}
void InitializeClocks(void)
{
BCSCTL1 = CALBC1_1MHZ; // Set range
DCOCTL = CALDCO_1MHZ;
BCSCTL2 &= ~(DIVS_3); // SMCLK = DCO / 8 = 1MHz
}
void InitializeButton(void) // Configure Push Button
{
BUTTON_DIR &= ~BUTTON;
BUTTON_OUT |= BUTTON;
BUTTON_REN |= BUTTON;
BUTTON_IES |= BUTTON;
BUTTON_IFG &= ~BUTTON;
BUTTON_IE |= BUTTON;
}
void InitializeLeds(void)
{
LED_DIR |= LED0 + LED1;
LED_OUT &= ~(LED0 + LED1);
}
/* *************************************************************
* Port Interrupt for Button Press
* 1. During standby mode: to exit and enter application mode
* 2. During application mode: to recalibrate temp sensor
* *********************************************************** */
#pragma vector=PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{
BUTTON_IFG = 0;
BUTTON_IE &= ~BUTTON; /* Debounce */
WDTCTL = WDT_ADLY_250;
IFG1 &= ~WDTIFG; /* clear interrupt flag */
IE1 |= WDTIE;
if (applicationMode == APP_APPLICATION_MODE)
{
tempCalibrated = tempAverage;
calibrateUpdate= 1;
}
else
{
applicationMode = APP_APPLICATION_MODE; // Switch from STANDBY to APPLICATION MODE
__bic_SR_register_on_exit(LPM3_bits);
}
}
#pragma vector=WDT_VECTOR
__interrupt void WDT_ISR(void)
{
IE1 &= ~WDTIE; /* disable interrupt */
IFG1 &= ~WDTIFG; /* clear interrupt flag */
WDTCTL = WDTPW + WDTHOLD; /* put WDT back in hold state */
BUTTON_IE |= BUTTON; /* Debouncing complete */
}
// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR (void)
{
__bic_SR_register_on_exit(CPUOFF); // Return to active mode
}
在官网上没有l例程么?自己去下载很方便啊! TI官网提供的例程代码:MSP430G2x53, MSP430G2x33, MSP430G2x13, MSP430G2x03 Code Examples
scty 发表于 2012-5-8 16:28 static/image/common/back.gif
TI官网提供的例程代码:MSP430G2x53, MSP430G2x33, MSP430G2x13, MSP430G2x03 Code Examples
...
谢谢~~~~ 137703056 发表于 2012-5-8 09:43 static/image/common/back.gif
在官网上没有l例程么?自己去下载很方便啊!
没去官网看过。。学校发的板子。。 yangsen 发表于 2012-5-8 09:34 static/image/common/back.gif
给你一个闪LED灯的,在launchpad上跑的。用户手册,数据手册到TI网站上下载吧,我就不浪费网站资源了。PS, ...
谢谢~
英文手册也看,一个是MSP430X2XX FAMILY,一个是MSP430G2553。。但是没有例程学起来还是有点慢 scty 发表于 2012-5-8 16:28 static/image/common/back.gif
TI官网提供的例程代码:MSP430G2x53, MSP430G2x33, MSP430G2x13, MSP430G2x03 Code Examples
...
那个,目前有一个小问题,手册上说用PXSEL,PXSEL2选择外围器件,可是我怎么知道那个器件是主外围还是次外围呢?譬如P1.1有一下功能:P1.1/TA0.0/ A1/CA1,这两个寄存器分别设置什么值的时候分别是哪个功能呢? asunders 发表于 2012-5-9 14:37 static/image/common/back.gif
那个,目前有一个小问题,手册上说用PXSEL,PXSEL2选择外围器件,可是我怎么知道那个器件是主外围还是次外 ...
你去看芯片的用户手册,SLAU144,有讲IO的寄存器 asunders 发表于 2012-5-9 14:37 static/image/common/back.gif
那个,目前有一个小问题,手册上说用PXSEL,PXSEL2选择外围器件,可是我怎么知道那个器件是主外围还是次外 ...
DATASHEET的IO口部分。 lcofjp 发表于 2012-5-9 15:15 static/image/common/back.gif
DATASHEET的IO口部分。
我用的是MSP430 G2553,TI 的launch pad.
msp430x2xx family 的手册显示如下
8.2.5 FunctionSelectRegistersPxSELandPxSEL2
Portpinsareoftenmultiplexedwithotherperipheralmodulefunctions. Seethe device-specificdatasheet
to determinepinfunctions. EachPxSELandPxSEL2bitis usedto selectthe pinfunction -I/O portor
peripheralmodulefunction.
Table8-1.PxSELandPxSEL2
PxSEL2 PxSEL PinFunction
0 0 I/O function is selected.
0 1 Primaryperipheralmodulefunction is selected.
1 0 Reserved.Seedevice-specificdatasheet.
1 1 Secondaryperipheralmodulefunction is selected.
SettingPxSELx=1doesnotautomaticallysetthe pindirection.Otherperipheralmodulefunctions may
requirethe PxDIRxbitsto beconfiguredaccordingto the directionneededfor the modulefunction. See
the pinschematicsin the device-specificdatasheet.
然后我就去看msp430g2553的“ device-specificdatasheet”
然后只找到芯片图
yangsen 发表于 2012-5-9 15:06 static/image/common/back.gif
你去看芯片的用户手册,SLAU144,有讲IO的寄存器
于是我还是不明白。。。图片上有的一个管脚有五六个功能,是怎么选择的。。 asunders 发表于 2012-5-9 15:41 static/image/common/back.gif
我用的是MSP430 G2553,TI 的launch pad.
msp430x2xx family 的手册显示如下
8.2.5 FunctionSelectRegist ...
DATASHEET的Port Schematics部分,展开就是详细的引脚说明。 asunders 发表于 2012-5-9 14:37 static/image/common/back.gif
那个,目前有一个小问题,手册上说用PXSEL,PXSEL2选择外围器件,可是我怎么知道那个器件是主外围还是次外 ...
我试用G2433的时候发现的,它与常见的F2132在设置上还是有点小的区别的,就是IO的功能选择设置,多了一个寄存器PxSEL2,例如需要同时设置P2SEL、P2SEL2的值。
具体请仔细看数据手册吧。
其实MSP430有没有像STM32那样的强大的库呢?以前用STM32的时候都是上来改几个参数就可以跑了。。 lcofjp 发表于 2012-5-9 16:00 static/image/common/back.gif
DATASHEET的Port Schematics部分,展开就是详细的引脚说明。
呃。。请问是哪个data sheet?找了半天没找到 lcofjp 发表于 2012-5-9 16:00 static/image/common/back.gif
DATASHEET的Port Schematics部分,展开就是详细的引脚说明。
噢。。找到了 lcofjp 发表于 2012-5-9 16:00 static/image/common/back.gif
DATASHEET的Port Schematics部分,展开就是详细的引脚说明。
看了一下,终于明白了~~
谢谢~~{:handshake:} asunders 发表于 2012-5-9 16:26 static/image/common/back.gif
看了一下,终于明白了~~
谢谢~~
不客气。{:handshake:} int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P1DIR = 0x41; // Set P1.0 to output direction
while(1)
{
volatile unsigned int i;
P1OUT ^= 0x41; // Toggle P1.0 using exclusive-OR
i = 0xf000; // Delay
while (i--);
}
} dianzichina 发表于 2012-5-9 16:38 static/image/common/back.gif
int main( void )
{
// Stop watchdog timer to prevent time out reset
其实我想要的是各模块的程序,组建一个类似STM32的库。。。为啥都给我个LED。。 不是我打击你,你这标题没说清你要干吗啊?连内容也没说要STM32库,,,,小心有人举报你。。。。。。 TI官网上的资料很全的。 dianzichina 发表于 2012-5-11 08:25 static/image/common/back.gif
不是我打击你,你这标题没说清你要干吗啊?连内容也没说要STM32库,,,,小心有人举报你。。。。。。 ...
我的却不要STM32库阿..我就是要我标题写的那些资料.. avrgogo 发表于 2012-5-11 09:10 static/image/common/back.gif
TI官网上的资料很全的。
英文不好上英文网站很头痛.. dianzichina 发表于 2012-5-11 08:25 static/image/common/back.gif
不是我打击你,你这标题没说清你要干吗啊?连内容也没说要STM32库,,,,小心有人举报你。。。。。。 ...
我是要资料,然后资料齐全的话可以自己弄一个齐全的库,然后比喻了一下,"像STM32那样的库".. lcofjp 发表于 2012-5-9 16:35 static/image/common/back.gif
不客气。
那个,看数据手册和Laucnpad的例程研究了半天都没搞懂PWM波是怎么用定时器生成的,大侠能不能解释一下?
void pwm_init(void) //使用定时器1
{
P2DIR |=(BIT2+BIT4); //P2.4和P2.2设置为输出模式
P2SEL |=(BIT2+BIT4); //设置P2.4和P2.2为外围模块使用
TA1CCR0=10000; //设定PWM的周期
TA1CCTL1=OUTMOD_7; //设定CCR1单元为复位/置位模式,第一束PWM波
TA1CCR1=2000; //装入CCR1的占空值
TA1CCTL2=OUTMOD_7; //设定CCR2单元为复位/置位模式,第二束PWM波
TA1CCR2=1000; //装入CCR2的占空值
TA1CTL=TASSEL_2+MC_1; //计数器0的时钟选择为SMCLK,增计数模式
}
我用这个可以使,但是lauchpad 的例程上也说生成了pwm波,就没找到是哪里控制的,也没发现和上面那个小程序类似的控制模块。所以虽然有个能用的小程序,但是一塌糊涂。。 asunders 发表于 2012-5-11 11:05 static/image/common/back.gif
我是要资料,然后资料齐全的话可以自己弄一个齐全的库,然后比喻了一下,"像STM32那样的库".. ...
不要总想着库,你已经走入误区了。
430的外设差别太大,库通用不起来。5和6系列好像有库,这两个系列强大一些。
430对外设操作的语句都很精简,没有有多少条,封装成库反而没啥效率了。
TI已经给出了对各个系列的各种外设操作的基本程序,你可以好好看看,愿意封装的话可以自己封一个。 asunders 发表于 2012-5-11 11:10 static/image/common/back.gif
那个,看数据手册和Laucnpad的例程研究了半天都没搞懂PWM波是怎么用定时器生成的,大侠能不能解释一下?
v ...
仔细看下user's guide的相关部分吧,都有非常详细描述,有很多模式像定时器,输入捕获,比较输出。我对430的外设操作也不是很熟悉。 lcofjp 发表于 2012-5-11 11:23 static/image/common/back.gif
仔细看下user's guide的相关部分吧,都有非常详细描述,有很多模式像定时器,输入捕获,比较输出。我对43 ...
您好,我这几天一直在看User's guide
看到比较器部分的时候有一点点不大理解的地方。
lcofjp 发表于 2012-5-11 11:23 static/image/common/back.gif
仔细看下user's guide的相关部分吧,都有非常详细描述,有很多模式像定时器,输入捕获,比较输出。我对43 ...
就是说,是用来改变采样时间? asunders 发表于 2012-5-15 23:42 static/image/common/back.gif
您好,我这几天一直在看User's guide
看到比较器部分的时候有一点点不大理解的地方。
...
置一和不置一有什么区别呢?上下联通的两端都有CA1,CA2,这两个有什么区别和联系呢?
页:
[1]