Advertisement
teplofizik

test2.c (SPI)

Jun 1st, 2013
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.25 KB | None | 0 0
  1. // ***********************************************************
  2. //  test2.c
  3. //
  4. // ***********************************************************
  5.  
  6. #include "test.h"
  7. #include "../drivers.h"
  8. #include "../bsp.h"
  9.  
  10. #define PWM_LEFT   TIM4_CH1
  11. #define PWM_TOP    TIM4_CH2
  12. #define PWM_RIGHT  TIM4_CH3
  13. #define PWM_BOTTOM TIM4_CH4
  14.  
  15. static uint16_t Interpolate(int8_t Value)
  16. {
  17.     uint32_t Abs = (Value > 0) ? Value : -Value;
  18.    
  19.     return Abs * 0xFFFF / 128;
  20. }
  21.  
  22. static void test2_onTimer(void)
  23. {
  24.     int8_t X = acc_GetX();
  25.     int8_t Y = acc_GetY();
  26.    
  27.     if(Y > 0)
  28.     {
  29.         pwm_Set(PWM_LEFT, Interpolate(Y));
  30.         pwm_Set(PWM_RIGHT, 0);
  31.     }
  32.     else
  33.     {
  34.         pwm_Set(PWM_LEFT, 0);
  35.         pwm_Set(PWM_RIGHT, Interpolate(Y));
  36.     }
  37.    
  38.     if(X > 0)
  39.     {
  40.         pwm_Set(PWM_TOP, Interpolate(X));
  41.         pwm_Set(PWM_BOTTOM, 0);
  42.     }
  43.     else
  44.     {
  45.         pwm_Set(PWM_TOP, 0);
  46.         pwm_Set(PWM_BOTTOM, Interpolate(X));
  47.     }
  48. }
  49.  
  50. void test2_Init(void)
  51. {
  52.     // Перехватим светодиоды у модуля led.с:
  53.     pwm_Init(PWM_LEFT);
  54.     pwm_Init(PWM_TOP);
  55.  
  56.     pwm_Init(PWM_RIGHT);
  57.  
  58.     pwm_Init(PWM_BOTTOM);
  59.    
  60.     timer_AddFunction(50, &test2_onTimer);
  61. }
  62.  
  63. void test2_Main(void)
  64. {
  65.  
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement