- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
READ_ START (位1): 通过读取来启动A/D转换 0 = 停止通过读取启动,1 = 使能通过读取启动 ENABLE_ START(位0):通过设置该位来启动A/D操作。如果READ_START是使能的,此位无效。 0=无操作 1 = A/D转换启动,启动后该位被清零。 (四)ADC 转换数据寄存器(ADCDAT0) 地址: 0x5800000C ,可读写。 位9~0为A/D转换的数字值。范围为:0 ~ 3FFH。 思考:设计A/D驱动程序,使之能实现对多路模拟量的采集。 #define DRIVER_NAME????myDriver static int myDriver_Major = 0;????????/* Driver Major Number */ static int AD_READ (void) ?{??int i,j; int val,aa; val=0;????ADCCON |= 0x2; ???????? //ADC转换通过读操作来启动 aa = ADCDAT0 0x03ff; ???????????? //启动ADC转换 ?for(i=0;i16;i++) { ?while(!(ADCCON0x8000));?????? //判断ADC转换是否结束 ?????? val += (ADCDAT0 0x03ff); //取出ADC转换值 ?????? for(j=0;j500;j++); ???? } val=val/16; //计算ADC平均转换值?? ?return val;? } /* Driver Operation Functions */static int myDriver_open(struct inode *inode, struct file *filp) {???MOD_INC_USE_COUNT;???? PRINTK(myDriver open called!\n); /* 进行ADC模块设置,其中xn表示第n位设置为x(若x超过一位,则向高位顺延) */ ?ADCCON = (0 0) |????// ADC转换设置 未设置 ????(0 1) | // 读AD数据触发AD转换 未使用 ????(0 2) | // StandBy模式选择 为普通操作模式 ??(49 6) | ????// CLKDIV = Fpclk /(49+1) ? ?(1 14) ;???? //预分频器使能软件预设值??? ?PRINTK( ADC INIT OK \n); ???????? ????return 0; } static int myDriver_release(struct inode *inode, struct file *filp) {?MOD_DEC_USE_COUNT; ??PRINTK(myDriver release called!\n); return 0; } static ssize_t myDriver_read(struct file *filp, char *adc_value, size_t count, loff_t *f_pos) {?int adc=0; size_t read_size = count; adc= AD_READ();???? copy_to_user(adc_value, adc, sizeof(adc));???? ? PRINTK(adc_vale = %d \n,adc); ? return read_size; } static int myDriver_ioctl(struct inode *inode, struct file *file, unsigned int ch,unsigned long arg) {?PRINTK(myDriver ioctl called!\n); ?? if( (ch7)||(ch0 ) ) ???? {?PRINTK( not a valid parameter,parameter must betwween 0 and 8 \n); ?????? return -1; ???? } ? ?ADCCON |= (ch 3);// channel set ?? PRINTK( ADC INIT OK \n); ???????? ?? return 0; } /* Driver Operation structure */static s
您可能关注的文档
最近下载
- 装饰色彩的魅力小学六年级美术PPT课件.pptx VIP
- 婴幼儿学习与发展 课件 第五章 婴幼儿动作学习与发展.pptx
- 五年级英语上册-Unit-2-Lesson-2-Was-he-happy课件2-鲁科版.ppt VIP
- 第8课 中国古代的法治与教化 课件(共27张PPT)(内嵌音频+视频).pptx VIP
- 第34章 生物与环境.ppt VIP
- 苏教版科学三年级下册全册教案(含反思).docx VIP
- SY/T 6597-2018 油气管道内检测技术规范(标准规范).doc VIP
- 烹饪工艺美术 烹饪图案的类别和基本形式 烹饪图案的类别和基本形式.ppt VIP
- 2025年度济南市专业技术人员继续教育公需科目答案.doc VIP
- 2024年陕西省西安工大附中丘成桐少年班初试数学试卷.pdf VIP
文档评论(0)