完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#define ADC_TRIGGERENABLE (0x00 & 0x01)
#define ADC_TRIGGESELECT (0x00 & 0x07) #define ADC_RESOLUtiON (0x00 & 0x01) #define ADC_SLEEPMODE (0x00 & 0x01) #define ADC_PRESCALERATE (0x08 & 0x3F) #define ADC_STARTUPTIME (0x07 & 0x1F) #define ADC_SAMPHOLDTIME (0x03 & 0x0F) /* ADC register access struct for all onboard ADCs */ static AT91PS_ADC pADC = AT91C_BASE_ADC; /* ower management controller register access struct */ static AT91PS_PMC pPMC = AT91C_BASE_PMC; #define MAX_ADC_CHANS 8 void adc_init() { unsigned int adcModeRegVal; /* Enable the ADC clock in the MC */ pPMC->PMC_PCER = 0x10; /* Configure the ADC's by setting up the ADC Mode register */ adcModeRegVal = ADC_TRIGGERENABLE + (ADC_TRIGGESELECT << 1) + (ADC_RESOLUTION << 4) + (ADC_SLEEPMODE << 5) + (ADC_PRESCALERATE << 8) + (ADC_STARTUPTIME << 16) + (ADC_SAMPHOLDTIME << 24); pADC->ADC_MR = adcModeRegVal ; } adc_enablechan(unsigned int chan) { pADC->ADC_CHER = (unsigned int)(1 << chan); } adc_disablechan(unsigned int chan) { pADC->ADC_CHDR = (unsigned int)(1 << chan); } int adc_readchan(unsigned int chan,unsigned int *adcData) { int retVal = 0; adc_init(); // init ADCs; adc_enablechan(chan); // Eneable chenal; pADC->ADC_CR = 0x02; // Start acquisition // Wait for data-ready bit to be set do { ; } while (!(pADC->ADC_SR & ((unsigned int) 0x1 << chan))); switch(chan) { case 6: /* MAC_ADC_AMB_TEMP - ambient temperature of board */ *adcData = pADC->ADC_CDR6; retVal=*adcData; break; default: retVal = -1; } adc_disablechan(chan); return(retVal); } ARM是:AT91SAM7S256 的ADC, 参考电压是2.7v,用的是通道6, 我在通道6上加 2v的 模拟电压 断点看 转换后的寄存器里的值 不对 ,一会是1023,一会是345,一会是429,算出来的值和 2v 差距比较大 是不是初始化 ADC 有问题? 还是其他什么地方有问题谢谢 |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-CAN编程示例之开发板测试
654 浏览 0 评论
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
2242 浏览 1 评论
771 浏览 0 评论
1530 浏览 1 评论
2276 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:47 , Processed in 0.504594 second(s), Total 70, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号