MSP430G2转换结果数据类型

2020-05-20来源: eefocus关键字:MSP430G2  转换结果  数据类型

以下是程序,软件用的IAR:

#include "io430.h" #include "dandao_duocai.h" #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) #define dataout P2OUT unsigned int ADC10_Result[100]; int d,c;

void cheek_clock() { BCSCTL3_bit.LFXT1S0 = 0; //配置ACLK为12KHz BCSCTL3_bit.LFXT1S1 = 1;

if(CALBC1_1MHZ==0xFF||CALDCO_1MHZ==0xFF) //配置MCLK为1MHz while(1); //校准数据是否被擦除,若是则CPU挂起。 BCSCTL1=CALBC1_1MHZ; DCOCTL=CALDCO_1MHZ; }

///////----------采集一串数,并取出最大值

void zzzz() { //unsigned int ADC10_Result[100]; int i,j; P1SEL|=BIT1;//P1.1第二功能

ADC10CTL1 |= CONSEQ_2; //单通道重复采样模式 ADC10CTL0 |= SREF_1+REFON+REF2_5V;//选择内部参考源2.5V,打开基准源

ADC10CTL0 |= ADC10SHT_3+MSC; //过采样率设置为64个采样周期,打开AD转换 ADC10CTL1|= ADC10SSEL_1+ADC10DIV_1+SHS_0; //ACLK2分频为采样时钟,用ADC10SC触发采集 ADC10CTL1 |=INCH_1; //选择通道A1

ADC10CTL0 |= ADC10ON; //开启ADC10 ADC10AE0 |= 0x02; //开启外部通道A1

ADC10CTL0&=~ADC10IFG;//清中断标志 for(int k=0;k<100;k++) { ADC10CTL0 |=ENC+ADC10SC; //开始转换 while((ADC10CTL0 &ADC10IFG)==0); //等待ADC10IFG标志变高(转换完成) ADC10_Result[k]=ADC10MEM; //读取采样结果 delay_ms(2); P1SEL&=~BIT1;//关P1.1第二功能。

} ////////--------取ADC10_Result[100] 中的最大数赋值给C for(i=0;i<100;i++) { for(j = i + 1;j<100;j++) if(ADC10_Result[i]<=ADC10_Result[j]) { d=ADC10_Result[i];ADC10_Result[i]=ADC10_Result[j];ADC10_Result[j]=d; } } c=ADC10_Result[99]; /////////--------取ADC10_Result[100] 中的最大数赋值给C }

///////----------采集一串数,并取出最大值

void beishu() {

if(c dataout=0x00; if((c>=45)&&(c dataout=0x01; if((c>=53)&&(c<613)) dataout=0x10; else dataout=0x11; }

int main(void) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; cheek_clock(); P2DIR|=(BIT0+BIT1+BIT2); while(1) { zzzz(); /// ----调用 beishu(); dataout&=~BIT3;/////p1.3外接另一个芯片的使能端。低电平有效, }

问题是:Error[Pe147]: declaration is incompatible with "unsigned char ADC10_Result[100]" (declared at line 6 of "D:workspace_v5_1lianxicaiji_fangdadandao_duocai.h") D:workspace_v5_1lianxicaiji_fangdamain.c 7

补充:当我将unsigned int ADC10_Result[100];设置为局部变量时(也就是zzzz()子程序中的屏蔽部分)就不会有错。或者我把这个数组定义为unsigned char 类型且作为全局变量也可以,但是unsigned char 是8位的,而转换结果是10位,软件没报错。


关键字:MSP430G2  转换结果  数据类型 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic497720.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:2.0 MSP430的IO配置
下一篇:MSP430--UART模块

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

MSP430G2-LaunchPad简明教程02
发环境的准备包括驱动程序与开发工具两部分,本教程以Win7平台为例,Linux平台下的开发也可参考。驱动程序小红板自带一个免驱的USB仿真器供调试与程序烧写用途,以及一个最高支持9600bps波特率的application UART的通信接口。为避免后续开发中的奇怪问题,建议安装针对后者的驱动。驱动的下载地址为MSP-EXP430G2 LaunchPad Driver,解压后可得430cdc.cat(驱动数字签名)、430cdc.inf与LaunchPad_Driver.exe三个文件。将小红板使用USB数据线与PC连接后,在设备管理器中会产生3个新设备,其中的MSP430 Application UART是需要安装上述驱动方可
发表于 2020-03-06
MSP430G2-LaunchPad简明教程02
使用MSP430G2 LaunchPad开发板连接步进电机的方法
在本篇文章中,我们将介绍如何使用MSP430 LaunchPad开发板连接一个步进电机。 MSP-EXP430G2是德州仪器(TI)提供的开发工具,又名LaunchPad,用于学习和练习如何使用他们提供的微控制器。该开发板属于MSP430产品线,我们可以使用它对所有MSP430系列微控制器进行编程。如果您是MSP430的新手,请查看MSP430 LaunchPad的入门教程。所需的材料●    MSP430 LaunchPad开发板●    35BYJ46或28-BYJ48步进电机●    ULN2003驱动芯片●    连接导线● 
发表于 2019-10-23
使用MSP430G2 LaunchPad开发板连接步进电机的方法
使用MSP430G2 LaunchPad开发板驱动伺服电机的方法
在本篇文章中,我们将主要介绍一些有关伺服电机的基础知识以及如何将伺服电机与MSP430G2 LaunchPad开发板进行连接。 MSP-EXP430G2是德州仪器提供的开发工具,也称为LaunchPad,用于学习和实践如何使用其微控制器。该开发板属于MSP430产品线类别,我们可以对所有MSP430系列微控制器进行编程。伺服电机和PWM在详细讨论之前,首先我们应该了解伺服电机。伺服电机包含了直流电机、位置控制系统和转动机构。伺服电机在现代世界有很多应用,因此它们有不同的形状和尺寸。我们将在本篇文章中使用的是SG90伺服电机,它是最流行且最便宜的电机之一。 SG90是一款180度伺服器。所以用这个伺服我们可以将轴从0-180度定位
发表于 2019-10-23
使用MSP430G2 LaunchPad开发板驱动伺服电机的方法
使用MSP430G2单片机的PWM模块控制LED指示灯的亮度
本篇文章是MSP430G2 LaunchPad系列教程的一部分,我们正在学习使用德州仪器的MSP430G2 LaunchPad开发板。到目前为止,我们已经学习了开发板的基础知识,并介绍了如何读取模拟电压以及使用MSP430G2进行连接LCD等。现在我们继续了解MSP430G2单片机中的PWM模块。我们将通过改变电位器来控制LED的亮度,因此,将电位器连接到MSP430的模拟引脚,然后读取其模拟电压,因此建议在继续学习之前先了解ADC的文章。什么是PWM信号?脉宽调制(PWM)是控制电路中最常用的数字信号。该信号以预定的时间和速度设置为高电平(3.3v)和低电平(0v)。信号保持高电平的时间称为“开启时间”,信号保持低电平的时间称为
发表于 2019-10-22
使用MSP430G2单片机的PWM模块控制LED指示灯的亮度
使用MSP430G2 LaunchPad开发板连接LCD液晶显示屏的方法
本篇文章是我们学习使用Energia IDE开发环境编程MSP430G2 LaunchPad的教程系列中的第三篇教程。在上一篇教程中,我们学习了如何控制MSP430G2 LaunchPad开发板上的数字输入和输出引脚。在本教程中,我们将学习如何将LCD与开发板连接,以便我们可以显示一些有用的信息。我们在这个项目中使用的LCD是最常用的16×2点阵式液晶显示器,也就是所谓的字符显示器。我们大多数人都会通过公共PCO或其他电子项目来接触到这一点。像这样的显示对于我们将来的教程中显示数据和其他调试信息将非常方便。由于提供了库,将该LCD与MSP430连接起来非常简单。所以让我们开始学习吧!所需材料●    德州仪器
发表于 2019-10-22
使用MSP430G2 LaunchPad开发板连接LCD液晶显示屏的方法
基于MSP430G2微控制器闪烁LED:使用数字读/写引脚
这是一系列教程的第二篇教程,我们正在使用Energia IDE学习德州仪器的MSP430G2 LaunchPad开发板。在上一篇闪烁LED教程中,我们将介绍了使用Energia IDE开发LaunchPad开发板,同时我们还上传了第一个程序,在固定的时间周期内闪烁板上的LED。在本教程中,我们将学习如何使用数字读取和数字写入选项读取输入设备(如开关)的状态,并控制LED等多个输出。在本教程结束时,您将学会如何使用数字输入和输出,这些输入可用于连接诸如红外传感器、PIR传感器等许多数字传感器,以及点亮或熄灭LED、蜂鸣器等输出。听起来很有趣,对不对!!?让我们开始吧。所需材料●    MSP430G2
发表于 2019-10-22
基于MSP430G2微控制器闪烁LED:使用数字读/写引脚
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved