This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR6989:LCD的浮点值

Guru**** 2540600 points
Other Parts Discussed in Thread: MSP-EXP430FR6989

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/584104/msp430fr6989-float-value-to-lcd

部件号:MSP430FR6989
主题中讨论的其他部件:MSP-EXP430FR6989

我需要获得液晶屏上的电压,但它不起作用。

#include <MSP430-h>
#include <string.h>
#include <stdlib.h>
#include "driverlib.h"
#include "hal_lcd.h"
#define startup模式 0

volatile unsigned char mode = startup模式;

// rezultate ADC - matrice cu 10 masuratori
int ADC_results [10][4];//
index ADC în matricea ADC_resums;initializare cu 0
volatile unsigned short usitton1 = 0;
unsigned int index_adc = 0;
int index_adc;int int ind_adc;
char disp_adc;char_5;sample_adc [50]


char sample3_adc [5];
char sample4_adc [5];
int value=0;

int vol1;

int main(void){
int j,k;


WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
(j= 0;j<10;j++)
(k=0;j<4;j++)
ADC_Results [j][k]= 0;

GPIO_setAsInputPinWithPullUpResister( GPIO端口P1,GPIO PIN1 );



ADC12_B_initParam initParam ={0};
initParam.sampleHoldSignalSourceSelect = ADC12_B_SAMPLEHOLDSOURCE_SC;
initParam.clockSourceSelect = ADC12_B_CLOCKSOURCE_ADC12OSC;
initParam.clockSourceDivider = ADC12_B_CLOCKDIVIDER_1;
initParam.clockSourcePrediver= ADC12_B_CLOCKPREDIER__1;
initParam.internalChannelMap = ADC12_B_NOINTCH;
ADC12_B_INIT(ADC12_B_base,&initParam);


ADC12_B_setupSamplingTimer(ADC12_B_base,
ADC12_B_CYCLEHOLD_64_CYCLES,
ADC12_B_CYCLEHOLD_64_CYCLES,
ADC12_B_MULTIPLESAMPLESENABLE);

//启用ADC12 B模块
ADC12_B_ENABLE (ADC12_B_BASE);

ADC12_B_enableInterrupt (ADC12_B_BASE,ADC12_B_IE0,0,0);
ADC12_B_enableInterrupt (ADC12_B_BASE,ADC12_B_IE1,0,0);
ADC12_B_enableInterrupt (ADC12_B_BASE,ADC12_B_IE2,0,0);
ADC12_B_enableInterrupt (ADC12_B_BASE,ADC12_B_IE3,0,0);

ADC12_B_configureMemoryParam配置MemoryParam ={0};
configureMemoryParam.memoryBufferControlIndex = ADC12_B_memory_0;
configureMemoryParam.inputSourceSelect = ADC12_B_INPUT_A4;
配置内存Param.refVoltageSourceSelect = ADC12_B_VREFPOS_AVCC_VREFNEG_VSS;
configureMemoryParam.endOfSequence = ADC12_B_NOTENDOFENCE;
配置内存Param.windowComparatorSelect = ADC12_B_window_Comparer_disable;
配置内存Param.DifferalModeSelect = ADC12_B_Different_mode_disable;
ADC12_B_configureMemory (ADC12_B_BASE,&configureMemoryParam);

配置内存Param.MemoryBufferControlIndex = ADC12_B_MEMORY_1;
configureMemoryParam.inputSourceSelect = ADC12_B_INPUT_A5;
配置内存Param.refVoltageSourceSelect = ADC12_B_VREFPOS_AVCC_VREFNEG_VSS;
configureMemoryParam.endOfSequence = ADC12_B_NOTENDOFENCE;
配置内存Param.windowComparatorSelect = ADC12_B_window_Comparer_disable;
配置内存Param.DifferalModeSelect = ADC12_B_Different_mode_disable;
ADC12_B_configureMemory (ADC12_B_BASE,&configureMemoryParam);

配置内存Param.MemoryBufferControlIndex = ADC12_B_MEMORY_2;
configureMemoryParam.inputSourceSelect = ADC12_B_Input_A6;
配置内存Param.refVoltageSourceSelect = ADC12_B_VREFPOS_AVCC_VREFNEG_VSS;
configureMemoryParam.endOfSequence = ADC12_B_NOTENDOFENCE;
配置内存Param.windowComparatorSelect = ADC12_B_window_Comparer_disable;
配置内存Param.DifferalModeSelect = ADC12_B_Different_mode_disable;
ADC12_B_configureMemory (ADC12_B_BASE,&configureMemoryParam);

configureMemoryParam.memoryBufferControlIndex = ADC12_B_memory_3;
configureMemoryParam.inputSourceSelect = ADC12_B_INPUT_A7;
配置内存Param.refVoltageSourceSelect = ADC12_B_VREFPOS_AVCC_VREFNEG_VSS;
configureMemoryParam.endOfSequence = ADC12_B_NOTENDOFENCE;
配置内存Param.windowComparatorSelect = ADC12_B_window_Comparer_disable;
配置内存Param.DifferalModeSelect = ADC12_B_Different_mode_disable;
ADC12_B_configureMemory (ADC12_B_BASE,&configureMemoryParam);

ADC12_B_startConversion(ADC12_B_base,
ADC12_B_MEMORY_0,
ADC12_B_REALITED_SEQOFCHANNELS);


Init_LCD ();
pm_unlockLPM5 ();

__BIC_SR_REGISTER (GIE);
__bis_sr_register (GIE);
同时(1)
{
__BIC_SR_REGISTER (GIE);

IF (index_adc == 0)
IND_ADC= 9;
否则
IND_ADC= index_ADC-1;

ltoa (((long) ADC_results[ind_ADC][0],sample1_ADC);
ltoa (((long) ADC_results[ind_ADC][1],sample2_ADC);
ltoa (((long) ADC_results[ind_ADC][2],sample3_adc);
ltoa (((long) ADC_results[ind_ADC][3],sample4_adc);

usiButton1 = gPIO_getInputPinValue ( gPIO_PORT_P1, gPIO_PIN1);

如果( usibutton1 == gPIO_INT_PIN_LOW ){
Value=Value+1;}



IF (Value==1){
strcpy (disp_adc,"1");
strcat (disp_adc,sample1_adc);
DisplayScrollText(disp_adc);

}

IF (Value==2){
strcpy (disp_adc,"2 ");
strcat (disp_adc,sample2_adc);
DisplayScrollText(disp_adc);

}

IF (Value=3){
strcpy (disp_adc,"3");
strcat (disp_adc,sample3_adc);
DisplayScrollText(disp_adc);

}

IF (Value=4){
strcpy (disp_adc,"4 ");
strcat (disp_adc,sample4_adc);
displayScrollText(disp_adc);

}
IF (value=4)
value=0;
__bis_sr_register(GIE);
}



}//


中上行器pt ADC12MEM0 (ADC12_B_MEMORY_0) pana la ADC12MEM3
// cela 4 locatii de mem ociate canalelor ADC 4,5,6,7

#if defined(__TI_Compiler_version__)||defined(___IAR_systems_icc_ prag_
vector =12


void Isr_g_


#endif
{
switch (__偶 数_in_range (ADC12IV,ADC12IV_ADC12RDYIFG))
{
案例ADC12IV_NONE: 中断; //矢量0:无中断
CASE ADC12IV_ADC12OVIFG:中断; //矢量2:ADC12MEMx溢出
CASE ADC12IV_ADC12TOVIFG:中断; //矢量4:转换时间溢出
CASE ADC12IV_ADC12HIIFG:中断; //向量6:ADC12BHI
CASE ADC12IV_ADC12LOIFG:中断; //矢量8:ADC12BLO
CASE ADC12IV_ADC12INIFG:中断; //矢量10:ADC12BIN

Case ADC12IV_ADC12IFG0: //向量12:ADC12MEM0中断
ADC12_B_clearInterrupt (ADC12_B_BASE,0,ADC12_B_IFG0);
index_adc++;
IF (index_adc == 10) //
index_adc=0;
内部电压;
VOLT=(FLOC)(ADC12MEM0*4096)*1000;<xmt-block0>1000 3.3
ADC_Results [index_ADC][0]= volt;
// __BIC_SR_REGISTER_ON_EXIT (LPM0_bits); //退出活动CPU
中断; //从0 (SR)清除CPUOFF位
CASE ADC12IV_ADC12IFG1: //矢量14:ADC12MEM1
ADC12_B_clearInterrupt (ADC12_B_BASE,0,ADC12_B_IFG1);
ADC_Results [index_ADC][1]= ADC12MEM1;
中断;
CASE ADC12IV_ADC12IFG2: //矢量16:ADC12MEM2
ADC12_B_clearInterrupt (ADC12_B_BASE,0,ADC12_B_IFG2);
ADC_Results [index_ADC][2]= ADC12MEM2;
中断;

Case ADC12IV_ADC12IFG3: //向量18:ADC12MEM3
ADC12_B_clearInterrupt (ADC12_B_BASE,0,ADC12_B_IFG3);
ADC_Results [index_ADC][3]= ADC12MEM3;
中断;


默认值:break;
}
}




  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    除Init_lcd之外,我没有看到任何代码,请查看LCD_C DriverLib示例和MSP-EXP430FR6989开箱即用体验代码,并在尝试添加ADC代码之前了解LCD操作的基本知识。

    此致,
    Ryan