Adc.c 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /************************************************************************
  2. * ---- 居加居 ----
  3. * 文件名: Adc.c
  4. * 编写人员: Kinve JQ
  5. * 说明:
  6. * 版本: V0.1
  7. * 编写日期: 2018-09-30
  8. * 程序维护:
  9. * 维护记录:
  10. * 2018-09-30.Kinve:1.创建文件
  11. * 免责声明:
  12. * (c) Author Kinve JQ. All rights reserved.
  13. **************************************************************************/
  14. #include "Adc.h"
  15. u8 Group_Light;
  16. u8 Adc_read (void)
  17. {
  18. u16 time=0;
  19. u16 Data = 0;
  20. u8 CKDIV_back = CKDIV;
  21. CKDIV = 0x02; // IMPORTANT!! Modify system clock to 4MHz ,then add the ADC sampling clock base to add the sampling timing.
  22. Enable_ADC_AIN0; // 使能 ADC0
  23. clr_ADCF; //清中断
  24. set_ADCS; //ADC开始
  25. while(ADCF == 0){ //等待中断
  26. if(time++>=65535){break;}
  27. };
  28. Data = ADCRH; //读取数据
  29. Data = Data<<8 | ADCRL;
  30. Disable_ADC; //ADC关闭
  31. CKDIV = CKDIV_back; //恢复时钟
  32. Group_Light = Data*1.0/0xffff*100;
  33. return time>=65535?0:1;
  34. }
  35. /*************** (C) COPYRIGHT Kinve JQ *******END OF FILE **************/