msp430g2-MSP430G2转换结果数据类型

问题描述

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位,软件没报错。

解决方案

补充:我改一点程序后,可以定义为全局变量了,以下是程序。但是还有一个不懂的地方就是unsigned char 是8位的,而转换结果是10位,软件没报错。求大神指导呀,,,

#include "io430.h"
#define CPU_F ((double)1000000)
#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 check_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()
{

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<200;k++)
{
ADC10CTL0 |=ENC+ADC10SC; //开始转换
while((ADC10CTL0 &ADC10IFG)==0); //等待ADC10IFG标志变高(转换完成)
ADC10_Result[k]=ADC10MEM; //读取采样结果
delay_ms(1);
P1SEL&=~BIT1;//关P1.1第二功能。

}

int i,j;
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];

}

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;
check_clock();
P2DIR|=0xff;

while(1)
{
dataout&=~BIT2;
zzzz();
beishu();
delay_us(10);
}

}

时间: 2024-08-04 18:16:51

msp430g2-MSP430G2转换结果数据类型的相关文章

在将 varchar 值 &amp;amp;#39;JAZZ&amp;amp;#39; 转换成数据类型 int 时失败。

问题描述 在将 varchar 值 'JAZZ' 转换成数据类型 int 时失败. 代码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web

dll调用-关于C++ 调用C# dll 出现无法转换的数据类型。。

问题描述 关于C++ 调用C# dll 出现无法转换的数据类型.. C# 这个函数是这样定义的:Collection EnumerateUsb(); 现在VC中可以正常调用C#的dll,包括需要的Namespace等, CollectionSystem::string str = ls->EnumerateUsb(UsbDeviceType::AnyMasterEmulator); 现在用在这个方法获取出现如下错误:请问这个应该如何修改??如何做到数据的转换.. 1> CTestDlgDlg.

java tring 数据类型-Java关于String转换其他数据类型的问题

问题描述 Java关于String转换其他数据类型的问题 小弟有个关于String转换其他数据类型的问题想请教各位大大,新手未有悬赏币,见谅.下面贴代码,问题在最后. person类 package com.local.person.bean;public class Person { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id

在将 varchar 值 &amp;amp;#x27;KC01003&amp;amp;#x27; 转换成数据类型 int 时失败。

问题描述 说明:执行当前Web请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.Data.SqlClient.SqlException:在将varchar值'KC01003'转换成数据类型int时失败.源错误:行42://OleDbCommandcmd=newOleDbCommand(sql,conn);行43:SqlCommandcmd=newSqlCommand(sql,conn);行44:cmd.Execute

求大神帮助啊-android Studio打包报错,不能转换的数据类型

问题描述 android Studio打包报错,不能转换的数据类型

sql server-sqlserver 查询条件为nvarchar类型缺报“转换成数据类型 int 时失败”

问题描述 sqlserver 查询条件为nvarchar类型缺报"转换成数据类型 int 时失败" 解决方案 OrderId这一列类型是不是int类型 解决方案二: 直接在外面select * from 表 where OrderId = ' 11db...'试试看,报错了没 解决方案三: 是不是视图内容定义本身有问题

在将 nvarchar 值 &amp;amp;#x27;合格&amp;amp;#x27; 转换成数据类型 int 时失败。

问题描述 setANSI_NULLSONsetQUOTED_IDENTIFIERONgoALTERPROCEDURE[dbo].[TeacherSchedule]@TeacherIdint,@CourseTypenvarchar(200),@Begindatetime,@EnddatetimeASdeclare@KpjsScheduleDateTimedatetime,@KpjsTimeIdint;declare@datetimedatetime,@weeknvarchar(250),@clas

在将 varchar 值 &amp;amp;#x27;请选择&amp;amp;#x27; 转换成数据类型 int 时失败。

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.Data.SqlClient;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Data;publicpartialclass_963:System.Web.UI.Page{protectedvoidPage_Load(objectsen

asp数据强制转换的方法

asp数据强制转换  CBool(expression) CByte(expression) CCur(expression) CDate(expression) CDbl(expression) (保留小数) CDec(expression) CInt(expression) (不保留小数) CLng(expression) (不保留小数) CSng(expression) CStr(expression) CVar(expression) CStr(expression) Vbscript类