Advertisement
Guest User

Untitled

a guest
Apr 14th, 2020
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. #include "stm32f1xx.h"
  2.  
  3. //GPIO_InitTypeDef GPIO_InitStructure;
  4. unsigned int delayer = 100000;
  5.  
  6. void delay(unsigned long p)
  7. {
  8. unsigned long i;
  9. for(i = 0; i < p ; i++);
  10. }
  11.  
  12. int main()
  13. {
  14. RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_TIM1EN | RCC_APB2ENR_AFIOEN;
  15. //PAx push-pull
  16. GPIOA->CRH &= ~GPIO_CRH_CNF9;
  17. GPIOA->CRH |= GPIO_CRH_CNF9_1;
  18. GPIOA->CRH &= ~GPIO_CRH_MODE9;
  19. GPIOA->CRH |= GPIO_CRH_MODE9_1;
  20.  
  21. GPIOA->CRH &= ~GPIO_CRH_CNF10;
  22. GPIOA->CRH |= GPIO_CRH_CNF10_1;
  23. GPIOA->CRH &= ~GPIO_CRH_MODE10;
  24. GPIOA->CRH |= GPIO_CRH_MODE10_1;
  25.  
  26. GPIOA->CRH &= ~GPIO_CRH_CNF11;
  27. GPIOA->CRH |= GPIO_CRH_CNF11_1;
  28. GPIOA->CRH &= ~GPIO_CRH_MODE11;
  29. GPIOA->CRH |= GPIO_CRH_MODE11_1;
  30.  
  31. TIM1->PSC = 72;
  32. TIM1->ARR = 255;
  33.  
  34. TIM1->CCR2 = 0;
  35. TIM1->CCR3 = 0;
  36. TIM1->CCR4 = 0;
  37.  
  38. TIM1->CCER |= TIM_CCER_CC4E | TIM_CCER_CC4P;
  39. TIM1->CCER |= TIM_CCER_CC3E | TIM_CCER_CC3P;
  40. TIM1->CCER |= TIM_CCER_CC2E | TIM_CCER_CC2P;
  41.  
  42. TIM1->BDTR |= TIM_BDTR_MOE;
  43.  
  44. TIM1->CCMR2 |= TIM_CCMR2_OC4M_2 | TIM_CCMR2_OC4M_1;
  45. TIM1->CCMR2 |= TIM_CCMR2_OC3M_2 | TIM_CCMR2_OC3M_1;
  46. TIM1->CCMR1 |= TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2M_1;
  47.  
  48. TIM1->CR1 &= ~TIM_CR1_DIR;
  49. TIM1->CR1 &= ~TIM_CR1_CMS;
  50. TIM1->CR1 |= TIM_CR1_CEN;
  51.  
  52. unsigned int r = 0, g = 0, b = 0;
  53.  
  54. while(1)
  55. {
  56. while (r < 255)
  57. {
  58. r += 5;
  59. delay(delayer);
  60. TIM1->CCR2 = r;
  61. }
  62. while (g < 255)
  63. {
  64. g += 5;
  65. delay(delayer);
  66. TIM1->CCR3 = g;
  67. }
  68. while (b < 255)
  69. {
  70. b += 5;
  71. delay(delayer);
  72. TIM1->CCR4 = b;
  73. }
  74.  
  75. while (r > 0)
  76. {
  77. r -=5;
  78. delay(delayer);
  79. TIM1->CCR2 = r;
  80. }
  81. while (g > 0)
  82. {
  83. g -=5;
  84. delay(delayer);
  85. TIM1->CCR3 = g;
  86. }
  87. while (b > 0)
  88. {
  89. b -=5;
  90. delay(delayer);
  91. TIM1->CCR4 = b;
  92. }
  93. }
  94.  
  95. return 0;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement