MultitaskOS.c 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //##############################################################################
  2. //
  3. // FILE: MultitaskOS.c
  4. //
  5. // TITLE: Real Time 1ms Generator
  6. //
  7. // - void MultitaskOS_init ( void )
  8. // - void ISR_Timer_OS ( void )
  9. //
  10. //##############################################################################
  11. //
  12. //==============================================================================
  13. // Change History:
  14. //==============================================================================
  15. // Datum: | Name | Version:| Change / Cause: | No
  16. //------------------------------------------------------------------------------
  17. // | | | | 002
  18. //------------------------------------------------------------------------------
  19. // 05.07.13 | VR | 1.1 | Change for ReilingOS | 001
  20. //------------------------------------------------------------------------------
  21. // 02.05.12 | TM | 1.0 | New Build | 000
  22. //==============================================================================
  23. //==============================================================================
  24. // Comment Change / Cause:
  25. //==============================================================================
  26. // Change: 003 // 003
  27. //----------------------
  28. //
  29. //
  30. //==============================================================================
  31. // Change: 002 // 002
  32. //----------------------
  33. //
  34. //
  35. //==============================================================================
  36. // Change: 001 // 001
  37. //----------------------
  38. //
  39. //
  40. //==============================================================================
  41. #include "BMS_Master.h"
  42. // ***** MultitaskOS_init ******************************************************
  43. void MultitaskOS_init( void )
  44. {
  45. PIT.PITMCR.B.MDIS = 0; // Enable Periodic Interrupt Timer
  46. PIT.PITMCR.B.MDIS_RTI = 0; // Enable Real Time Interrupt
  47. PIT.PITMCR.B.FRZ = 1; // Freeze in Debug Mode
  48. PIT.CH[0].LDVAL.R = SYSCLK_KHZ; // Timeout Period 1ms 64MHz/1kHz
  49. PIT.CH[0].TFLG.B.TIF = 1; // Timer Interrupt Request Clear
  50. PIT.CH[0].TCTRL.B.TIE = 1; // Timer Interrupt Enable
  51. PIT.CH[0].TCTRL.B.TEN = 1; // Timer Active
  52. }
  53. // ***** ISR_Timer_OS **********************************************************
  54. void ISR_Timer_OS( void )
  55. {
  56. asm(" wrteei 0"); // disable Interrupts
  57. PIT.CH[0].TFLG.B.TIF = 1; // CLear PIT 1 flag by writing 1
  58. Global_1msCounter++;
  59. asm(" wrteei 1"); // enable Interrupts
  60. }
  61. // ***** End MultitaskOS.c *****************************************************