DSP281x_PieCtrl.c
上传用户:qingfan3
上传日期:2014-10-27
资源大小:31439k
文件大小:3k
源码类别:

DSP编程

开发平台:

C/C++

  1. //###########################################################################
  2. //
  3. // FILE: DSP281x_PieCtrl.c
  4. //
  5. // TITLE: DSP281x Device PIE Control Register Initialization Functions.
  6. //
  7. //###########################################################################
  8. //
  9. //  Ver | dd mmm yyyy | Who  | Description of changes
  10. // =====|=============|======|===============================================
  11. //  1.00| 11 Sep 2003 | L.H. | Changes since previous version (v.58 Alpha)
  12. //      |             |      | Added ENPIE = 0 to the IntPieCtrl function
  13. //      |             |      | Removed ENPIE = 1 from the IntPieCtrl function
  14. //      |             |      | Created EnableInterrupts function
  15. //###########################################################################
  16. #include "DSP281x_Device.h"     // DSP281x Headerfile Include File
  17. #include "DSP281x_Examples.h"   // DSP281x Examples Include File
  18. //---------------------------------------------------------------------------
  19. // InitPieCtrl: 
  20. //---------------------------------------------------------------------------
  21. // This function initializes the PIE control registers to a known state.
  22. //
  23. void InitPieCtrl(void)
  24. {
  25.     // Disable Interrupts at the CPU level:
  26.     DINT;
  27.     // Disable the PIE
  28.     PieCtrlRegs.PIECRTL.bit.ENPIE = 0;
  29. // Clear all PIEIER registers:
  30. PieCtrlRegs.PIEIER1.all = 0;
  31. PieCtrlRegs.PIEIER2.all = 0;
  32. PieCtrlRegs.PIEIER3.all = 0;
  33. PieCtrlRegs.PIEIER4.all = 0;
  34. PieCtrlRegs.PIEIER5.all = 0;
  35. PieCtrlRegs.PIEIER6.all = 0;
  36. PieCtrlRegs.PIEIER7.all = 0;
  37. PieCtrlRegs.PIEIER8.all = 0;
  38. PieCtrlRegs.PIEIER9.all = 0;
  39. PieCtrlRegs.PIEIER10.all = 0;
  40. PieCtrlRegs.PIEIER11.all = 0;
  41. PieCtrlRegs.PIEIER12.all = 0;
  42. // Clear all PIEIFR registers:
  43. PieCtrlRegs.PIEIFR1.all = 0;
  44. PieCtrlRegs.PIEIFR2.all = 0;
  45. PieCtrlRegs.PIEIFR3.all = 0;
  46. PieCtrlRegs.PIEIFR4.all = 0;
  47. PieCtrlRegs.PIEIFR5.all = 0;
  48. PieCtrlRegs.PIEIFR6.all = 0;
  49. PieCtrlRegs.PIEIFR7.all = 0;
  50. PieCtrlRegs.PIEIFR8.all = 0;
  51. PieCtrlRegs.PIEIFR9.all = 0;
  52. PieCtrlRegs.PIEIFR10.all = 0;
  53. PieCtrlRegs.PIEIFR11.all = 0;
  54. PieCtrlRegs.PIEIFR12.all = 0;
  55. }
  56. //---------------------------------------------------------------------------
  57. // EnableInterrupts: 
  58. //---------------------------------------------------------------------------
  59. // This function enables the PIE module and CPU interrupts
  60. //
  61. void EnableInterrupts()
  62. {
  63.     // Enable the PIE
  64.     PieCtrlRegs.PIECRTL.bit.ENPIE = 1;
  65.     
  66. // Enables PIE to drive a pulse into the CPU 
  67. PieCtrlRegs.PIEACK.all = 0xFFFF;  
  68. // Enable Interrupts at the CPU level 
  69.     EINT;
  70. }
  71. //===========================================================================
  72. // No more.
  73. //===========================================================================