Advertisement
hussamaldean

Untitled

Apr 4th, 2020
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.13 KB | None | 0 0
  1. #include "stm32f4xx.h"                  // Device header
  2. void delay(int delayms);
  3. int counter=0;
  4. int main(void)
  5. {
  6. __disable_irq();
  7. RCC->AHB1ENR |=RCC_AHB1ENR_GPIOAEN ;
  8. RCC->AHB1ENR |=RCC_AHB1ENR_GPIOCEN;
  9. GPIOC->PUPDR|=0x4002000;
  10. //RCC->AHB1ENR |=4;//enable gpio a clock
  11. GPIOA->MODER|= GPIO_MODER_MODER5_0; //PA5 as output
  12. GPIOA->MODER|= GPIO_MODER_MODER6_0; //PA6 as output
  13. RCC->APB2ENR|=RCC_APB2ENR_SYSCFGEN ;
  14. SYSCFG->EXTICR[3]|=SYSCFG_EXTICR4_EXTI13_PC;
  15. EXTI->IMR|=EXTI_IMR_MR13;
  16. //EXTI->IMR|=0x2000;
  17. EXTI->FTSR|=EXTI_RTSR_TR13;
  18. //EXTI->FTSR|=0x2000;
  19. NVIC_EnableIRQ(EXTI15_10_IRQn);
  20. __enable_irq();
  21. while(1)
  22. {
  23. GPIOA->BSRR|=GPIO_BSRR_BS6;
  24. delay(300);
  25. GPIOA->BSRR|=GPIO_BSRR_BR6;
  26. delay(300);
  27. counter++; 
  28. }
  29. }
  30.  
  31. void EXTI15_10_IRQHandler(void){
  32.  
  33. GPIOA->BSRR|=GPIO_BSRR_BS5;
  34.     delay(300);
  35. GPIOA->BSRR|=GPIO_BSRR_BR5;
  36. delay(300);
  37. GPIOA->BSRR|=GPIO_BSRR_BS5;
  38.     delay(300);
  39. GPIOA->BSRR|=GPIO_BSRR_BR5;
  40. delay(300);
  41. EXTI->PR=EXTI_PR_PR13;
  42. }
  43. void delay(int ms)
  44. {
  45.     SysTick->LOAD=16000-1;
  46.     SysTick->VAL=0;
  47.     SysTick->CTRL=0x5;
  48.         for (int i=0;i<ms;i++)
  49.         {
  50.             while(!(SysTick->CTRL &0x10000)){}
  51.         }
  52.     SysTick->CTRL=0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement