Advertisement
Guest User

Untitled

a guest
Sep 11th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. /*napisać program zapalający jedną z dwóch diod w zależności od stanu
  2. przycisku. Jeśli przycisk nie jest wciśnięty pali się pierwsza dioda.
  3. Jeśli jest wciśnięty pali się druga
  4. dioda. Jedną diodę proszę gasić/zapalać nie-atomowo, drugą – atomowo.
  5. Oczywiście najpierw,
  6. minimum 3 dni, bawisz się sam. Dopiero potem można podglądać moje rozwiązanie!*/
  7. #include "stm32f1xx.h"
  8.  
  9. int diody(void)
  10. {
  11.  
  12. RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; //załączenie zegara portu C
  13. RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; //załączenie zegara portu B
  14. //RCC->APB2ENR = 16; analogiczne załączenie portu B
  15.  
  16. //RCC->APB2ENR &= ~RCC_APB2ENR_IOPCEN; //negacja tego bitu
  17.  
  18. //konfiguracja PC13 jako wyjscie - LED
  19. GPIOC->CRH |= GPIO_CRH_MODE13_1;
  20. GPIOC->CRH &= ~GPIO_CRH_CNF13_0;
  21.  
  22. //konfiguracja PB11 jako wejscia - przycisk input with pull-up/pull-down
  23. GPIOB->CRH &= GPIO_CRH_CNF11_0;
  24. GPIOB->CRH |= GPIO_CRH_CNF11_1;
  25.  
  26. SysTick_Config(4000000);
  27.  
  28. while(1){
  29. if (GPIOB->IDR & GPIO_IDR_IDR13){
  30. GPIOC->ODR |= GPIO_ODR_ODR13;
  31. }else{
  32. GPIOC->ODR &= ~GPIO_ODR_ODR13;
  33. }
  34. }
  35.  
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement