Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.52 KB | None | 0 0
  1. /**
  2. ******************************************************************************
  3. * @file main.c
  4. * @author Ac6
  5. * @version V1.0
  6. * @date 01-December-2013
  7. * @brief Default main function.
  8. ******************************************************************************
  9. */
  10.  
  11.  
  12. #include "stm32f4xx.h"
  13. #include "stm32f4_discovery.h"
  14.  
  15. double ADC_Result;
  16. double ADC_Result1;
  17. double score1;
  18. double score;
  19. int main(void)
  20. {
  21.  
  22. RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA , ENABLE);
  23. RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
  24. RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC2, ENABLE);
  25. RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
  26.  
  27.  
  28. GPIO_PinAFConfig(GPIOD, GPIO_PinSource13, GPIO_AF_TIM4);
  29. GPIO_PinAFConfig(GPIOD, GPIO_PinSource12, GPIO_AF_TIM4);
  30.  
  31. GPIO_InitTypeDef GPIO_InitStructure1;
  32. GPIO_InitStructure1.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13;
  33. GPIO_InitStructure1.GPIO_Mode = GPIO_Mode_AF;
  34. GPIO_Init(GPIOD, &GPIO_InitStructure1);
  35.  
  36. GPIO_InitTypeDef GPIO_InitStructure;
  37. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
  38. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
  39. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  40. GPIO_Init(GPIOA, &GPIO_InitStructure);
  41.  
  42. GPIO_InitTypeDef GPIO_InitStructure2;
  43. GPIO_InitStructure2.GPIO_Pin = GPIO_Pin_2;
  44. GPIO_InitStructure2.GPIO_Mode = GPIO_Mode_AN;
  45. GPIO_InitStructure2.GPIO_PuPd = GPIO_PuPd_NOPULL;
  46. GPIO_Init(GPIOA, &GPIO_InitStructure2);
  47.  
  48. ADC_CommonInitTypeDef ADC_CommonInitStructure;
  49. ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
  50. ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;
  51. ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
  52. ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
  53. ADC_CommonInit(&ADC_CommonInitStructure);
  54.  
  55.  
  56. ADC_InitTypeDef ADC_InitStructure;
  57. ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
  58. ADC_InitStructure.ADC_ScanConvMode = DISABLE;
  59. ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
  60. ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
  61. ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
  62. ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  63. ADC_InitStructure.ADC_NbrOfConversion = 1;
  64. ADC_Init(ADC1, &ADC_InitStructure);
  65.  
  66. ADC_InitTypeDef ADC_InitStructure2;
  67. ADC_InitStructure2.ADC_Resolution = ADC_Resolution_12b;
  68. ADC_InitStructure2.ADC_ScanConvMode = DISABLE;
  69. ADC_InitStructure2.ADC_ContinuousConvMode = ENABLE;
  70. ADC_InitStructure2.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
  71. ADC_InitStructure2.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
  72. ADC_InitStructure2.ADC_DataAlign = ADC_DataAlign_Right;
  73. ADC_InitStructure2.ADC_NbrOfConversion = 1;
  74. ADC_Init(ADC2, &ADC_InitStructure2);
  75.  
  76. ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_84Cycles);
  77. ADC_RegularChannelConfig(ADC2, ADC_Channel_2, 1, ADC_SampleTime_84Cycles);
  78.  
  79. ADC_Cmd(ADC1, ENABLE);
  80. ADC_Cmd(ADC2, ENABLE);
  81.  
  82. RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
  83. TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
  84. /* Time base configuration */
  85. TIM_TimeBaseStructure.TIM_Period = 3;
  86. TIM_TimeBaseStructure.TIM_Prescaler = 83;
  87. TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  88. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  89. TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
  90.  
  91. TIM_OCInitTypeDef TIM_OCInitStructure;
  92. /* PWM1 Mode configuration: */
  93. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
  94. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  95. TIM_OCInitStructure.TIM_Pulse = 0;
  96. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  97. TIM_OC1Init(TIM4, &TIM_OCInitStructure);
  98. TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);
  99.  
  100.  
  101. TIM_OCInitTypeDef TIM_OCInitStructure2;
  102. /* PWM1 Mode configuration: */
  103. TIM_OCInitStructure2.TIM_OCMode = TIM_OCMode_PWM1;
  104. TIM_OCInitStructure2.TIM_OutputState = TIM_OutputState_Enable;
  105. TIM_OCInitStructure2.TIM_Pulse = 0;
  106. TIM_OCInitStructure2.TIM_OCPolarity = TIM_OCPolarity_High;
  107. TIM_OC2Init(TIM4, &TIM_OCInitStructure2);
  108. TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);
  109.  
  110.  
  111. TIM_Cmd(TIM4, ENABLE);
  112.  
  113.  
  114.  
  115. for(;;)
  116. {
  117. ADC_SoftwareStartConv(ADC1);
  118. ADC_SoftwareStartConv(ADC2);
  119. while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
  120. ADC_Result = ADC_GetConversionValue(ADC1);
  121. score = (ADC_Result*3)/4095;
  122.  
  123. while(ADC_GetFlagStatus(ADC2, ADC_FLAG_EOC) == RESET);
  124. ADC_Result1 = ADC_GetConversionValue(ADC2);
  125. score1= (ADC_Result1*3)/4095;
  126.  
  127. TIM4->CCR1=score;
  128. TIM4->CCR2=score1;
  129.  
  130.  
  131.  
  132. }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement