Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. //PWM
  2. uint16_t czestotliwosc=100;
  3. uint8_t pulse=0;
  4. volatile uint32_t czas=0;
  5. enum zmiana{
  6. UP, DOWN
  7. }
  8. zmiana=UP;
  9.  
  10. enum option {
  11. ON, OFF, BLINK, PULSE
  12. }
  13. option = ON;
  14.  
  15. void set_option(){
  16. switch(option)
  17. {
  18. case OFF:
  19. TIM3->PSC=(64000000/czestotliwosc*TIM3->ARR+1)-1;
  20. TIM3->CNT=0;
  21. TIM3->CCR1=0;
  22. break;
  23.  
  24. case ON:
  25. TIM3->PSC=(64000000/czestotliwosc*TIM3->ARR+1)-1;
  26. TIM3->CNT=0;
  27. TIM3->CCR1=100;
  28. break;
  29.  
  30. case BLINK:
  31. TIM3->PSC=(64000000/czestotliwosc*TIM3->ARR+1)-1;
  32. TIM3->CNT=0;
  33. TIM3->CCR1=pulse;
  34. break;
  35. case PULSE:
  36. TIM3->PSC=(64000000/czestotliwosc*TIM3->ARR+1)-1;
  37. TIM3->CNT=0;
  38. TIM3->CCR1=pulse;
  39. break;
  40. }
  41. }
  42.  
  43. void HAL_Systick_Callback(){
  44. czas++;
  45. if(czas>=1000/czestotliwosc)
  46. {
  47. if(option==PULSE)
  48. {
  49. czas=0;
  50. if(zmiana==UP)
  51. {
  52. pulse++;
  53. if(pulse==100) zmiana=DOWN;
  54. }
  55. else
  56. {
  57. pulse--;
  58. if(pulse==0) zmiana=UP;
  59. }
  60. }
  61. else if(option==BLINK)
  62. {
  63. czas=0;
  64. if(pulse==0) pulse=100;
  65. else pulse=0;
  66. }
  67. }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement