adc12.c
上传用户:yyyd609
上传日期:2022-07-18
资源大小:183k
文件大小:3k
源码类别:

微处理器开发

开发平台:

C/C++

  1. /******************** (C) COPYRIGHT 2003 STMicroelectronics ********************
  2. * File Name          : adc12.c
  3. * Author             : MCD Application Team
  4. * Date First Issued  : 07/31/2003
  5. * Description        : Code sources of ADC12 functions
  6. ********************************************************************************
  7. * History:
  8. *  01/01/2004 : V1.2
  9. *  14/07/2004 : V1.3
  10. *******************************************************************************/
  11. #include "adc12.h"
  12. /*******************************************************************************
  13. * Function Name      : ADC12_Init
  14. * Description        : Initialize the ADC
  15. * Input              : None.
  16. * Return             : None.
  17. *******************************************************************************/
  18. void ADC12_Init(void)
  19. {
  20.   //Initiate ADC12 registers to their reset values
  21.   ADC12->CSR  = 0x00;
  22.   ADC12->CPR = 0x01;
  23. }
  24. /*******************************************************************************
  25. * Function Name      : ADC12_PrescalerConfig
  26. * Description        : Configure the prescaler
  27. * Input              : None.
  28. * Return             : None.
  29. *******************************************************************************/
  30. void ADC12_PrescalerConfig(u32 Adc12_clk)
  31. {
  32.   //Update the Prescaler Register
  33.   ADC12->CPR = (vu16) (RCCU_FrequencyValue(RCCU_PCLK)/(Adc12_clk*512*4));
  34. }
  35. /*******************************************************************************
  36. * Function Name      : ADC12_ITConfig
  37. * Description        : enable or disable the interrupt
  38. * Input              : status=ENABLE=>enable interrupt
  39. *                      status=DISABLE=>disable interrupt
  40. * Return             : None
  41. *******************************************************************************/
  42. void ADC12_ITConfig(FunctionalState NewState)
  43. {
  44.   if (NewState == ENABLE)
  45.   {
  46.     // Test the conversion mode
  47.     if (ADC12->CSR & 0x0040)
  48.     {
  49.       // Set interrupt bit equivalent to the channel selected
  50.       switch (ADC12->CSR & 0x30)
  51.       {
  52.         case 0x00 : ADC12->CSR |= ADC12_IT0_Mask;  break;
  53.         case 0x10 : ADC12->CSR |= ADC12_IT1_Mask;  break;
  54.         case 0x20 : ADC12->CSR |= ADC12_IT2_Mask;  break;
  55.         case 0x30 : ADC12->CSR |= ADC12_IT3_Mask;  break;
  56.       }
  57.     }
  58.     else
  59.       // Set all interrupt bits in case of round robin mode
  60.       ADC12->CSR |= ADC12_IT_Mask;
  61.   }
  62.   else
  63.     // Clear all interrupt bits
  64.     ADC12->CSR &= ~ADC12_IT_Mask;
  65. }
  66. /*********************(c) 2003  STMicroelectronics********************* END OF FILE **/