嵌入式linux实验报告,嵌入式实验报告.doc

#include #include "s3c2410-adc.h"

#define ADC_DEV "/dev/adc/0raw"

static int adc_fd = -1;

static int init_ADdevice(void)

{

if((adc_fd=open(ADC_DEV, O_RDWR))<0){

printf("Error opening %s adc device\n", ADC_DEV);

return -1;

}

}

static int GetADresult(int channel)

{

int PRESCALE=0XFF;

int data=ADC_WRITE(channel, PRESCALE);

write(adc_fd, &data, sizeof(data));

read(adc_fd, &data, sizeof(data));

return data;

}

static int stop=0;

static void* comMonitor(void* data)

{

getchar();

stop=1;

return NULL;

}

int main(void)

{

int i;

float d;

pthread_t th_com;

void * retval;

//set s3c44b0 AD register and start AD

if(init_ADdevice()<0)

return -1;

/* Create the threads */

pthread_create(&th_com, NULL, comMonitor, 0);

printf("\nPress Enter key exit!\n");

while( stop==0 ){

for(i=0; i<=2; i++){//采样0~2 路A/D 值

d=((float)GetADresult(i)*3.3)/1024.0;

printf("a%d=%8.4f\t",i,d);

}

usleep(1);

printf("\r");

}

/* Wait until producer and consumer finish. */

pthread_join(th_com, &retval);

printf("\n");

return 0;

}

六、实验步骤

1、阅读理解源码

进入/arm2410cl/exp/basic/04_ad 目录,使用vi 编辑器或其他编辑器阅读理解源代码。

2、编译应用程序

运行make 产生ad 可执行文件

3、下载调试

换到minicom 终端窗口,使用NFS mount 开发主机的/arm2410cl 到/host 目录。

我们可以通过调节开发板上的三个黄色的电位器,来查看a0、a1、a2 的变化。

7、 实验心得:

通过本次实验,我学习了A/D接口原理,了解实现A/D系统对于系统的软件和硬件要求。掌握了linux下A/D设备驱动程序设计的基本方法;掌握了ARM的A/D相关寄存器的功能,熟悉ARM系统硬件的A/D相关电工工作总结接口。还掌握了S3C2410芯片上的8通道10位AD换器的工作原理;熟悉了各种A/D转换器原理和性能指标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值