TSD.c 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include <MyProject.h>
  2. MCUTemperature xdata TSDTemperature;
  3. uint8 xdata TSD_Tempera[16] = {0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87};
  4. uint8 xdata TSD_ActualTempera[16] = {65, 70, 75, 80, 86, 91, 97, 103, 109, 115, 121, 128, 135, 142, 150, 0xFF}; //芯片温度
  5. /* -------------------------------------------------------------------------------------------------
  6. Function Name : TSD_Init
  7. Description : 温度检测初始化
  8. Date : 2022-02-18
  9. Parameter : None
  10. ------------------------------------------------------------------------------------------------- */
  11. void TSD_Init(void)
  12. {
  13. ClrBit(TSD_CR, TSDEN); //关闭保护使能
  14. TSDIE = 1; //温度保护中断使能
  15. SetBit(TSD_CR, TSDADJ3); //温度保护值设定
  16. SetBit(TSD_CR, TSDADJ2);
  17. ClrBit(TSD_CR, TSDADJ1);
  18. SetBit(TSD_CR, TSDADJ0);
  19. SetBit(IP0, PLVW1); //中断优先级设置
  20. ClrBit(IP0, PLVW0); //
  21. TSDTemperature.CheckCount = 0;
  22. TSDTemperature.ActualTemper = 65;
  23. }
  24. /* -------------------------------------------------------------------------------------------------
  25. Function Name : TEMP_Check
  26. Description : 温度检测
  27. Date : 2022-02-18
  28. Parameter : None
  29. ------------------------------------------------------------------------------------------------- */
  30. void TEMP_Check(void)
  31. {
  32. if (TSDTemperature.TSD_Enable_Flag) //开启温度检测触发
  33. {
  34. if (TSDTemperature.TSD_Trigger_Flag) //上次温度检测触发温度保护
  35. {
  36. if (TSDTemperature.CheckCount < 15)
  37. {
  38. TSDTemperature.CheckCount++;
  39. TSDTemperature.TSD_Trigger_Flag = 0;
  40. }
  41. }
  42. else
  43. {
  44. if (TSDTemperature.CheckCount > 0)
  45. {
  46. TSDTemperature.CheckCount--;
  47. }
  48. }
  49. TSDTemperature.TSD_Enable_Flag = 0;
  50. TSDTemperature.ActualTemper = TSD_ActualTempera[TSDTemperature.CheckCount];
  51. TSD_CR = TSD_Tempera[TSDTemperature.CheckCount]; //使能温度检测,设置温度
  52. }
  53. }