在ADCCON中,最后0位和1位互斥。
如果1位选1的话,0位的值无效。
如果1位选0的话,0位的值才有效。
当1位选1的话:这是应用层的程序
#if ADSTART==0
void niuniu(void)
{
uart_init();
adc_init();
beeper_init();

adc_read();

while(1)
{
itoa(adc_read());
if(adc_read() > 2500)
{
beeper_on();
}
else
{
beeper_off();
}
delay(10000);
}
}
#endif
这里注意while循环的上面必须有adc_read();如果去掉这个adc_read();情况如下:
加一个
uart_init();
adc_init();
beeper_init();
puts("\r\n loudan");
//adc_read();
while(1)
{
itoa(adc_read());
if(adc_read() > 2500)
{
beeper_on();
}
else
{
beeper_off();
}
delay(10000);
}
测试结果如下:
loudan0000
3069
3069
3069
3069
3069
3069
3069
3069
3069
?
loudan0000(这里是我又重启了一次开发版)
3069
3069
3069
3069
3069
3069
3069
3069
3069
3069
3069
3069

loudan0000
3069
3069
*******************************************
如果联系后边的当客户端强求发送一个,ADC转化的数据时,必须每一次都是正确的,但是去掉adc_read();的情况下,第一次的数据就是错误的。
这里是驱动里边的情况:
void adc_init(void)
{
#if ADSTART==0
ADC.ADCCON = 0x1<<1|0xff<<6|0x1<<14;
#elif ADSTART==1
ADC.ADCCON = 0xff<<6|0x1<<14;
#endif
}

#if ADSTART==1
void adc_enable(void)
{
ADC.ADCCON |= 0x1;
}
#endif

int adc_read(void)
{
int result;

#if ADSTART==0(这是我们分析的最开始的ADCCON,如果1位选1的话,0位的值无效。如果result = ADC.ADCDAT0&0x3ff;放到下边则程序无法运行)
result = ADC.ADCDAT0&0x3ff;

while(!(ADC.ADCCON&(0x1<<15)))
{
}
#elif ADSTART==1(这是我们分析的最开始的ADCCON,如果1位选0的话,0位的值有效。这两个while相反,这两个无论哪一个while和result换位置都是不能运行程序的。)
while(!(ADC.ADCCON&(0x1<<15)))
{
}

result = ADC.ADCDAT0&0x3ff;
#endif

return 3300/0x3ff*result;
}
#endif

最新文章

  1. OAF_开发系列19_实现OAF对话框提示dialogPage(案例)
  2. 15系统函数&amp;数据类型转换(必学)-大话数据库视频教程
  3. python_类
  4. Visual Stadio 2015创建WebApplication应用和运行赏析
  5. Java基础知识强化之IO流笔记82:NIO之 Pipe(管道)
  6. 简单加密算法在C#中的实现
  7. MySQL命令使用手记
  8. python socket 编程之一:编写socket的基本步骤
  9. ESFramework 通信框架安全机制的设计与实现
  10. linux服务器对外打包处理
  11. 安装gcc提示no acceptable C compiler found in $PATH
  12. C#___.net经典题
  13. python条件表达式:多项分支,双向分支
  14. NSInvalidArgumentException这个到底是什么意思,我到网上查了下,每个的错误都不同。
  15. Android系统下用js自定义gesture事件(仿ios实现移动端事件一致)
  16. mybatis使用@param(&quot;xxx&quot;)注解传参和不使用的区别
  17. tensorflow中常用学习率更新策略
  18. TensorFlow入门教程集合
  19. 在visual studio中查看源代码
  20. mysql误删表,无备份

热门文章

  1. Windows服务的安装、卸载
  2. HBase在HDFS上的目录树
  3. mysql数据库从删库到跑路之mysql完整性约束
  4. Bootstrap3的输入框数字点击修改效果
  5. vim设置tab键默认为4个空格
  6. Linux系统——Raid磁盘阵列
  7. [Python]返回函数,装饰器拾遗
  8. android 列表图片优化经历
  9. Ubuntu下pycharm设定任务栏图标后打开出现问号图标
  10. a=b=c 连等赋值的分析