Advertisement
jh_elec

Untitled

Jan 9th, 2022
804
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.67 KB | None | 0 0
  1. TIM_TypeDef *TimList0[] = { TIM1 ,  TIM3  ,  TIM6  ,  TIM14 ,  TIM15 ,  TIM16 ,  TIM17  };
  2. TIM_TypeDef *TimList1[] = { TIM1 ,  TIM3  ,  TIM14 ,  TIM15 ,  TIM16 ,  TIM17           };
  3. TIM_TypeDef *TimList2[] = { TIM1 ,  TIM3  ,  TIM15                                      };
  4. TIM_TypeDef *TimList3[] = { TIM1 ,  TIM3                                                };
  5. TIM_TypeDef *TimList4[] = { TIM1 ,  TIM3                                                };
  6. TIM_TypeDef *TimList5[] = { TIM1 ,  TIM15 ,  TIM16 ,  TIM17                             };
  7. TIM_TypeDef *TimList6[] = { TIM1 ,  TIM3  ,  TIM15                                      };
  8. TIM_TypeDef *TimList7[] = { TIM1 ,  TIM15 ,  TIM16 ,  TIM17                             };
  9.  
  10. TIMER_Irq_Cfg_t sTimIRQnCfg[] =
  11. {
  12.     { TIMER_UPDATE_IRQ,              TIM_DIER_UIE,      7, ( TIM_TypeDef* )TimList0 },
  13.     { TIMER_CAPTURE_COMPARE_1_IRQ,   TIM_DIER_CC1IE,    6, ( TIM_TypeDef* )TimList1 },
  14.     { TIMER_CAPTURE_COMPARE_2_IRQ,   TIM_DIER_CC2IE,    3, ( TIM_TypeDef* )TimList2 },
  15.     { TIMER_CAPTURE_COMPARE_3_IRQ,   TIM_DIER_CC3IE,    2, ( TIM_TypeDef* )TimList3 },
  16.     { TIMER_CAPTURE_COMPARE_4_IRQ,   TIM_DIER_CC4IE,    2, ( TIM_TypeDef* )TimList4 },
  17.     { TIMER_COM_IRQ,                 TIM_DIER_COMIE,    4, ( TIM_TypeDef* )TimList5 },
  18.     { TIMER_TRIGGER_IRQ,             TIM_DIER_TIE,      3, ( TIM_TypeDef* )TimList6 },
  19.     { TIMER_BREAK_IRQ,               TIM_DIER_BIE,      4, ( TIM_TypeDef* )TimList7 },
  20. };
  21.  
  22. void TIMEREnableInterrupt( TIM_TypeDef *pTim, TIMER_IRQ_t Irq )
  23. {
  24.     for ( uint8_t Index = 0; Index < 8; Index++ )
  25.     {
  26.         if ( Irq == sTimIRQnCfg[Index].IRQn ) // Interrupt suchen..
  27.         {
  28.             for ( uint8_t IndexTimList = 0; IndexTimList < sTimIRQnCfg[Index].uiSizeOfTims; IndexTimList++ ) // Timer durchgehen..
  29.             {
  30.                 if ( pTim == ( TIM_TypeDef* ) sTimIRQnCfg[Index].pTim + IndexTimList )
  31.                 {
  32.                     pTim->DIER |= sTimIRQnCfg[Index].uiRQn;
  33.                 }
  34.             }
  35.             break;
  36.         }
  37.     }
  38. }
  39.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement