历史上的今天
今天是:2025年05月20日(星期二)
2020年05月20日 | MSP430G2转换结果数据类型
2020-05-20 来源:eefocus
以下是程序,软件用的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位,软件没报错。
上一篇:2.0 MSP430的IO配置
下一篇:MSP430--UART模块
史海拾趣
|
昨晚,我去北京东四环的燕莎奥特莱斯买东西时,在C座,有两个男人引起了我的注意。起初是因为俩个男人一起搭伴儿逛街的太少,我不禁多看了几眼,发现他们竟然还有收获,手里拎着纸袋。这是俩个戴着眼镜的中年男人,没啥特别的,但当我注意到纸袋时 ...… 查看全部问答> |
|
wince 6下在eboot中把flash分成了两个分区,一个给bin镜像: BP_OpenPartition(NEXT_FREE_LOC, ( g_burnSize + sector_size) / sector_size, PART_BINFS, TRUE, PART_CREATE_NEW); 一个分成fat供用户使用: BP_OpenPartition(NEXT_FREE_LOC, USE ...… 查看全部问答> |
|
本人做一个linux 图象采集,然后全速写入优盘的小系统,现在的问题是,在图片采 集存储的前20秒可以以每帧8秒的速度写(每张图片约150K) ,但是超过20秒后,速度明 显下降(摄像头和优盘通过了一个usb hub 1.1连接到开发板同一usb口),基本为每秒 一帧, ...… 查看全部问答> |
|
联腾叶志锋 我们认为国内电子围栏产品、行业的发展市场巨大,方兴未艾,前景广阔。一到二年后又会进入一个动态平衡期,平衡期内电子围栏市场将趋于稳定发展。 (1)市场前景分析: 自2000年起,我 ...… 查看全部问答> |
|
请教各位大侠:我是2407的初学者,用的是AHDX510仿真器,硬件连接都显示正常,但是打开CCS时显示 NOT CONNECTED 请问这是什么原因啊?怎么解决呢? 谢谢各位!… 查看全部问答> |
|
求助各位大神回答...在处理多个中断响应时,是按优先级去响应每个中断还是只响应优先级最高的中断呢? 或者说在处理一个中断(中断A)时,别的中断(中断B)发生了,它完成这个中断(中断A)后会不会去处理另一个中断(中断B)呢?… 查看全部问答> |




