串口输入两个数A,B,新建一个含B个A的数的数组,请问在430的编程里怎么实现呢?谢谢大家?
int x;
int y[x]这样的我试了,编译没有错误,烧写进单片机里就卡死在这里了。谢谢
串口输入两个数A,B,新建一个含B个A的数的数组,请问在430的编程里怎么实现呢?谢谢大家?
int x;
int y[x]这样的我试了,编译没有错误,烧写进单片机里就卡死在这里了。谢谢
MSP430G2744新申请的样品 出现一个很奇怪的问题,当配置修改了主频时钟 出现串口波特率变化,之前一直使用的这个芯片没有这个问题,那位大神知道啥原因啊 ?串口用的外部32.768晶振,新样品如下:默认时钟ok,
配置时钟后:
波特率变成8千多了
之前的提供的样品又是ok的:如下是换成之前的芯片的测试:
都是正规渠道拿到货,难道这次拿到是次品????????
demo程序中数字滤波器由 “#define USS_ALG_FILT_IS_FILTER_ENABLED false ”来控制,默认为false关闭。此时测量到的静态时间差为-50~10ps,但当打开数字滤波后,时差变的很大,达到ns级别。USS_SW_LIB_APP_FILTER_COEFFICIENTS如下数组。
/* USS_filterCoeffs_4000000Hz */ \
{ 0x0000, 0xF68E, 0x0000, 0x037C, \
0x0000, 0x1714, 0x0000, 0xE229, \
0x0000, 0x2D64, 0x0000, 0xE229, \
0x0000, 0x1714, 0x0000, 0x037C, \
0x0000, 0xF68E, 0x0000, 0x0000 \
},
请问这个数组是如何计算得到的?是不是跟声道长度有关系?能不能提供一下打开数字滤波的demo程序。
当前无磁水表方案采用MSP430FR6989或MSP430FR5989,实际测试检测距离在4-5mm,通过什么样的方式可以增大检测距离至10mm?
1、超声波水表方案采用MSP430FR6047,其量程比R值是多少?
2、在测试MSP430FR6047官方DEMO板,DEMO程序里有滤波但是未开启,自己开启后发现效果不如未开启好,查了很多文献,建议超声水表方案要采用滤波,如下为滤波参数,需要如何设置或是否要开启?
现在使用TI的MSP-TS430PZ板子进行测试.发现AUXVCC3连接VCC的情况下,XT1(ACLK测)能够持续发振
.如果AUXVCC3不连接VCC情况下, XT1(ACLK测)起振DCO稳定后, XT1就消失了,MCLK的频率也降下来了。
请问,XT1是必须由C供电的么?有没有什么地方可以设定不用AUXVCC3供电,只要有VCC就可以呢 ?
请问我的电脑上安装了EIS终端(绿盾加密软件),对CCS 8.2.0的安装和使用有什么影响吗?
我在工程中新添加一个.c和.h文件后,打开所有的内容都是乱码,并且编译不通过,bug信息是打不开源文件。请问有什么解决办法吗?
谢谢!
TI 达人:
刚开始学习CCS 8,其中一个参考设计上用到#pragma DATA_SECTION(G_FIRMWARE_VERSION,".mysect01"),看Code Composer Studio™ IDE v8.x for MSP430™ MCUs手册中描述要对IPE窗口进行设置,按照文档要求Project → Properties → General → IPE. 但是我的CCS8.2中怎么也找不到!重新全部安装CCS8,后还是没有对应的窗口!CCS App Center 也找不到对应软件!我改如何处理呢?目前编译后一直有警告!写入和读取的数据也不对。
工程为TIDA-00830_Software
两种结构方式,从稳定性方面考虑,哪种更好一些?
1. PCB+2.4mm背光板+1.5mm钢化玻璃
2. 带LED的PCB + 弹簧 + 1.5mm钢化玻璃 (LED在弹簧中间)
最近在使用MSP430FR5969时,采用ADC进行采样,将ADC12_B_MEMORY_0设置为ADC12_B_MEMORY_1时无法进入终端,采用ADC12_B_MEMORY_0对采样通道进行切换测试均正常,请问对于多ADC采样应该怎样进行修改,程序如下:
采用官方例程进行了一些修改
//If ref generator busy, WAIT
while (Ref_A_isRefGenBusy(REF_A_BASE)) ;
//Select internal ref = 1.2V
Ref_A_setReferenceVoltage(REF_A_BASE,
REF_A_VREF1_2V);
//Turn on Reference Voltage
Ref_A_enableReferenceVoltage(REF_A_BASE);
//Initialize the ADC12B Module
/*
* Base address of ADC12B Module
* Use internal ADC12B bit as sample/hold signal to start conversion
* USE MODOSC 5MHZ Digital Oscillator as clock source
* Use default clock divider/pre-divider of 1
* Not use internal channel
*/
ADC12_B_initParam initParam = {0};
initParam.sampleHoldSignalSourceSelect = ADC12_B_SAMPLEHOLDSOURCE_SC;
initParam.clockSourceSelect = ADC12_B_CLOCKSOURCE_ADC12OSC;
initParam.clockSourceDivider = ADC12_B_CLOCKDIVIDER_1;
initParam.clockSourcePredivider = ADC12_B_CLOCKPREDIVIDER__1;
initParam.internalChannelMap = ADC12_B_NOINTCH;
ADC12_B_init(ADC12_B_BASE, &initParam);
//Enable the ADC12B module
ADC12_B_enable(ADC12_B_BASE);
/*
* Base address of ADC12B Module
* For memory buffers 0-7 sample/hold for 64 clock cycles
* For memory buffers 8-15 sample/hold for 4 clock cycles (default)
* Disable Multiple Sampling
*/
ADC12_B_setupSamplingTimer(ADC12_B_BASE,
ADC12_B_CYCLEHOLD_16_CYCLES,
ADC12_B_CYCLEHOLD_4_CYCLES,
ADC12_B_MULTIPLESAMPLESENABLE);
//Configure Memory Buffer
/*
* Base address of the ADC12B Module
* Configure memory buffer 0
* Map input A1 to memory buffer 0
* Vref+ = IntBuffer
* Vref- = AVss
* Memory buffer 0 is not the end of a sequence
*/
ADC12_B_configureMemoryParam configureMemoryParam = {0};
configureMemoryParam.memoryBufferControlIndex = ADC12_B_MEMORY_1;
configureMemoryParam.inputSourceSelect = ADC12_B_INPUT_A7;
configureMemoryParam.refVoltageSourceSelect = ADC12_B_VREFPOS_INTBUF_VREFNEG_VSS;
configureMemoryParam.endOfSequence = ADC12_B_NOTENDOFSEQUENCE;
configureMemoryParam.windowComparatorSelect = ADC12_B_WINDOW_COMPARATOR_DISABLE;
configureMemoryParam.differentialModeSelect = ADC12_B_DIFFERENTIAL_MODE_DISABLE;
ADC12_B_configureMemory(ADC12_B_BASE, &configureMemoryParam);
configureMemoryParam.memoryBufferControlIndex = ADC12_B_MEMORY_0;
configureMemoryParam.inputSourceSelect = ADC12_B_INPUT_A1;
configureMemoryParam.refVoltageSourceSelect = ADC12_B_VREFPOS_INTBUF_VREFNEG_VSS;
configureMemoryParam.endOfSequence = ADC12_B_NOTENDOFSEQUENCE;
configureMemoryParam.windowComparatorSelect = ADC12_B_WINDOW_COMPARATOR_DISABLE;
configureMemoryParam.differentialModeSelect = ADC12_B_DIFFERENTIAL_MODE_DISABLE;
ADC12_B_configureMemory(ADC12_B_BASE, &configureMemoryParam);
ADC12_B_clearInterrupt(ADC12_B_BASE,
0,
ADC12_B_IFG0|ADC12_B_IFG1
);
//Enable memory buffer 0 interrupt
ADC12_B_enableInterrupt(ADC12_B_BASE,
ADC12_B_IE0|ADC12_B_IE0,
0,
0);
__delay_cycles(75); // reference settling ~75us
while(1)
{
__delay_cycles(5000); // Delay between conversions
//Enable/Start sampling and conversion
/*
* Base address of ADC12B Module
* Start the conversion into memory buffer 0
* Use the single-channel, single-conversion mode
*/
ADC12_B_startConversion(ADC12_B_BASE,
ADC12_B_MEMORY_0 ,
ADC12_B_SINGLECHANNEL);
//LPM0, ADC10_ISR will force exit
__bis_SR_register(CPUOFF + GIE);
//For debug only
__no_operation();
}
}
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=ADC12_VECTOR
__interrupt
#elif defined(__GNUC__)
__attribute__((interrupt(ADC12_VECTOR)))
#endif
void ADC12_ISR(void)
{
switch(__even_in_range(ADC12IV,12))
{
case 0: break; // Vector 0: No interrupt
case 2: break; // Vector 2: ADC12BMEMx Overflow
case 4: break; // Vector 4: Conversion time overflow
case 6: break; // Vector 6: ADC12BHI
case 8: break; // Vector 8: ADC12BLO
case 10: break; // Vector 10: ADC12BIN
case 14: // Vector 12: ADC12BMEM0 Interrupt
break; // Clear CPUOFF bit from 0(SR)
case 12: // Vector 14: ADC12BMEM1
Read_ADCValue[1] = ADC12_B_getResults(ADC12_B_BASE, ADC12_B_MEMORY_0);
Read_ADCValue[0] = ADC12_B_getResults(ADC12_B_BASE, ADC12_B_MEMORY_1);
__delay_cycles(1);
//Clear CPUOFF bit from 0(SR)
//Breakpoint here and watch ADC_Result
__bic_SR_register_on_exit(CPUOFF);
break;
case 16: break; // Vector 16: ADC12BMEM2
case 18: break; // Vector 18: ADC12BMEM3
case 20: break; // Vector 20: ADC12BMEM4
case 22: break; // Vector 22: ADC12BMEM5
case 24: break; // Vector 24: ADC12BMEM6
case 26: break; // Vector 26: ADC12BMEM7
case 28: break; // Vector 28: ADC12BMEM8
case 30: break; // Vector 30: ADC12BMEM9
case 32: break; // Vector 32: ADC12BMEM10
case 34: break; // Vector 34: ADC12BMEM11
case 36: break; // Vector 36: ADC12BMEM12
case 38: break; // Vector 38: ADC12BMEM13
case 40: break; // Vector 40: ADC12BMEM14
case 42: break; // Vector 42: ADC12BMEM15
case 44: break; // Vector 44: ADC12BMEM16
case 46: break; // Vector 46: ADC12BMEM17
case 48: break; // Vector 48: ADC12BMEM18
case 50: break; // Vector 50: ADC12BMEM19
case 52: break; // Vector 52: ADC12BMEM20
case 54: break; // Vector 54: ADC12BMEM21
case 56: break; // Vector 56: ADC12BMEM22
case 58: break; // Vector 58: ADC12BMEM23
case 60: break; // Vector 60: ADC12BMEM24
case 62: break; // Vector 62: ADC12BMEM25
case 64: break; // Vector 64: ADC12BMEM26
case 66: break; // Vector 66: ADC12BMEM27
case 68: break; // Vector 68: ADC12BMEM28
case 70: break; // Vector 70: ADC12BMEM29
case 72: break; // Vector 72: ADC12BMEM30
case 74: break; // Vector 74: ADC12BMEM31
case 76: break; // Vector 76: ADC12BRDY
default: break;
}
}
DMA0的配置
dmaAddr = (unsigned int) &CCR0Time[ChN];
DMA0SZ = CCRX_NUM;
__data16_write_addr((unsigned short) &DMA0SA,TA0CCR0_);
__data16_write_addr((unsigned short) &DMA0DA,dmaAddr);
DMACTL0 = DMA0TSEL_1; //(Ta0CCR0.IFG)
DMACTL4 = DMARMWDIS ;
DMA0CTL = DMAEN + DMADT_0 + DMADSTINCR_3;
定时器配置
TA0CCTL0 = CM_3 + CCIS_0 + SCS + CAP; //TA0.0捕获
TA0CCTL0 &=~(COV + CCIFG);
P1SEL |= BIT1;
MCLK = 20M,SMCLK = 20M,捕获间断的信号,信号周期1us
现象:有时可以实现捕获,有时无法实现,没有任何捕获值。没有捕获值的情况往往伴随着cov的置位,请大家帮忙分析一下,谢谢!
使用的是MSP432工程, build setting中已经做了更改但是还是没有生成bin 文件,请问我是少了哪里的设置么?
"$[CCS_INSTALL_ROOT]/utils/tiobj2bin/tiobj2bin" "${ProjName}" "${ProjName}.bin" "$[CG_TOOL_ROOT]/bin/armofd" "$[CG_TOOL_ROOT]/bin/armhex" "$[CCS_INSTALL_ROOT]/utils/tiobj2bin/mkhex4bin"
各位大神好
我用MSP430FR4133IPMR驱动LCD时,发现选用 internal charge pump时LCDCAP0和LCDCAP1之间的电容,电容按照数据手册推荐值0.1uF时,LCD出现屏目一直闪烁;当把这个LCDCAP0和LCDCAP1之间的电容增加到1uF时,闪屏问题消失。
问题如下:
1、在internal charge pump模式下LCDCAP0和LCDCAP1之间的电容的电源来源是什么?比如:DVCC或者external reference voltage VREF,EXT
2、将LCDCAP0和LCDCAP1之间的电容值由0.1uF增加到1uF,可以解决闪屏问题的原因是什么?
3、MSP430的LCD_C和LCD_E 的区别是什么?
芯片:MSP430FR6972
IDE:IARforMSP6.30
问题:手动复位失败。
描述:
1.我把RST引脚短接到地发现程序没有复位,郁闷啊,为什么我强制复位不理我呀!!可能是什么原因啊!!!
2.RST复位电路按照手册上拉47K电阻下拉一个2.2nF电容,我照着做发现程序下载不进去呀,是因为FET不是正版的原因吗?后面没办法换成R=10K,C=0.1uF,能下载但是出现复位不管用的情况。这又是什么原因呢?
相关电路:
VDD_MSP=3.0V
EV2400使用3个,其中2个可以正常使用,1个无法正常使用,正常连电脑使用,指示灯不亮,连板子无法通讯,另外两个盒子可以正常通讯,检查接线没有问题就是指示灯不亮,是什么原因导致的
芯片:MSP430FR6972
问题:
1.手动焊接了三块板子,烧写同一个程序,三块板子的功耗都不一样(25,35,45),一致性太差了,想知道这个能确定是PCB设计或者焊接问题吗?
2.两块板子都存在这样一个问题:刚开始功耗能降到8uA以下,但是过个1分钟的样子功耗上升到18uA之后就一直是这么多,这情况可能是什么原因导致的呢?
这情况是在没开射频模块功能的情况下产生的,开了射频模块程序也存在则个问题,刚复位时功耗能到25ua,但是过会也会上升上升到40ua左右。
射频模块接收过程:
程序:
1. 在官网上面有找到MSP430 SMBUS Library(msp430_smbuslib_1_10_00_00),但研究了一下发现里面主要是给MSP430FR5xx_6xx和MSP430G2xx3使用,请问可以提供MSP430f5172 SMBUS libray吗?感谢!
2. msp430f5172i2c 上接了一颗sensor, 如果再接上 bq40z50, 请问下SMbus和I2C设备同时使用是否会造成干扰?谢谢!!