社区导航

 

搜索
查看: 1101|回复: 5

[讨论] 数据采集

[复制链接]

78

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2014-7-1 11:29 | 显示全部楼层 |阅读模式
本帖最后由 paulhyde 于 2014-9-15 03:10 编辑

最近参加电子竞赛,题目是关于数据采集的,在这方面,我是小白,不知有没哪位高人指点指点,谢谢啦

 

 

此帖出自电子竞赛论坛


回复

使用道具 举报

1380

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2014-7-1 11:58 | 显示全部楼层
本帖最后由 paulhyde 于 2014-9-15 03:10 编辑

或许你可以问的更具体点

 



回复

使用道具 举报

379

TA的帖子

0

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

发表于 2014-7-1 16:12 | 显示全部楼层
本帖最后由 paulhyde 于 2014-9-15 03:10 编辑

你这个问题没办法给你回答啊。不过你可以去把以前几届数据采集类的题目好好看几遍,有条件的话可以动手做一做。

 



回复

使用道具 举报

8

TA的帖子

2

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2014-7-2 21:30 | 显示全部楼层
本帖最后由 paulhyde 于 2014-9-15 03:10 编辑

好人,一生平安!

 



回复

使用道具 举报

11

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2014-7-5 18:05 | 显示全部楼层
本帖最后由 paulhyde 于 2014-9-15 03:10 编辑

信号放大后送入ad,经单片机处理,得到结果,不知道是不是这个效果

 

点评

恩恩,我现在遇到瓶颈就是程序运行没问题,与PC通信也可以实现,但是加入A/D部分,上位机就收不到数据啦。附带程序,求帮助,谢谢。#include"msp430g2553.h" void ADC10_Init(void); void USCI(void); void main  详情 回复 发表于 2014-7-7 17:45


回复

使用道具 举报

78

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2014-7-7 17:45 | 显示全部楼层
ppjanus 发表于 2014-7-5 18:05
信号放大后送入ad,经单片机处理,得到结果,不知道是不是这个效果

恩恩,我现在遇到瓶颈就是程序运行没问题,与PC通信也可以实现,但是加入A/D部分,上位机就收不到数据啦。附带程序,求帮助,谢谢。#include"msp430g2553.h"
void ADC10_Init(void);
void USCI(void);
void main(void)
{
   int ADC10_Result;
   volatile unsigned int i;
   WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
   ADC10_Init();
       for( i=0;i<5;i++)
          {
          ADC10CTL0 |=ENC+ADC10SC; //开始转换
          while((ADC10CTL0 &ADC10IFG)==0); //等待ADC10IFG标志变高(转换完成)
          ADC10_Result+=ADC10MEM; //读取采样结果
          }
          ADC10_Result= ADC10_Result/5;
    USCI();
  while(1)
       {
            if(UCA0RXBUF=='a')
            UCA0TXBUF =ADC10_Result; //发送接收到的数据
                    //UCA0TXBUF ='1';
       }
}

void ADC10_Init(void)
   {

WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
      ADC10CTL1=CONSEQ_2;//单通道多次转换,这句应当写在最前面
      ADC10CTL0 = REFON+SREF_1+REF2_5V; //打开2.5V 正参考,地为负参考
      ADC10CTL0|= ADC10ON+ADC10SHT_3+MSC;//打开ADC10 内核,设定采样保持时间为64个ADC10CLK,使能ADC10 中断
      ADC10CTL1 = INCH_4+SHS_0+ADC10SSEL_1; // input A4,采样保持
      ADC10AE0 |= 0x10; // P1.4 DC option select。A4 模拟信号输入使能

   return;
    }
   void USCI(void)
   {

WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
                   UCA0CTL1 |= UCSWRST; // USCI_A0 进入软件复位状态
                            UCA0CTL1 |= UCSSEL_2; //时钟源选择 SMCLK
                            BCSCTL1 = CALBC1_1MHZ; //设置 DCO 频率为 1MHz
                            DCOCTL = CALDCO_1MHZ;
                            P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
                            P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
                            P1DIR |= BIT0;
                            UCA0BR0 = 0x68; //时钟源 1MHz 时波特率为9600
                            UCA0BR1 = 0x00; //时钟源 1MHz 时波特率为9600
                            UCA0MCTL = UCBRS0; //小数分频器
                            UCA0CTL1 &= ~UCSWRST; //初始化 USCI_A0 状态机
                            IE2 |= UCA0RXIE; //使能 USCI_A0 接收中断
                            _EINT(); //开总中断

}




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /1 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-7-22 11:12 , Processed in 0.213855 second(s), 19 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表