MSP430G2转换结果数据类型

发布者:dong125612最新更新时间: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  转换结果  数据类型 引用地址:MSP430G2转换结果数据类型

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

推荐阅读最新更新时间:2024-11-17 10:38

学习STM8 关于数据类型的定义心得
最近一直在学STM8 代码里面一直出现u8 * / u16等等 类似 #include stm8s.h /*芯片唯一的ID地址 96位*/ define UNIQUE_ID_START_ADDR 0x48CD u8 i; s16 temp; s8 t; u8 * pUniqueId; int main( void ) { return 0; } 一直不理解什么是u8 今天再网上好好的找找发现u8 是unsigned int 8的意思。如果是标准的C语言表达方式应该是 unsigned int 8 但是STM就变成了u8 一开始很郁闷不知道是什么意思。但是现在这样一想 volatile signe
[单片机]
PIC8位在PICC中的数据类型
简介:PIC8位MCU的内存都是8位字节结构的,所以PICC中对于数据的划分都是以8位为基础的。 在汇编中,我们对一个地址为0X20的内存附值: movlw 255; movwf 0x20; 但一个内存是8位结构,能表示最大的数是255。要是超过了会怎么样呢? movlw 256; movwf 0x20; 通过DEBUG后,可以看出0X20中的值不是256,而是0了。 这里可以看出PIC处理器计算过程是当计算结果超过内存能容纳的最大数(也就是所谓溢出),则自动抛弃最高位。 如下: 255 - 256 11111111-100000000 256的2进制有9位,于是PIC处理器就自动抛
[单片机]
不同数据类型的延时函数控制LED灯闪烁
//实例8:用不同数据类型控制灯闪烁时间 #include reg51.h //包含单片机寄存器的头文件 /****************************************************** 函数功能:用整形数据延时一段时间 ******************************************************/ void int_delay(void) //延时一段较长的时间 { unsigned int m; //定义无符号整形变量,双字节数据,值域为0~65535 for(m=0;m 36000;m++) ; //空操作 } /*************
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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