diff --git a/app/MDK-ARM/app.uvguix.29643 b/app/MDK-ARM/app.uvguix.29643
index d5d497e..acbdca2 100644
--- a/app/MDK-ARM/app.uvguix.29643
+++ b/app/MDK-ARM/app.uvguix.29643
@@ -110,8 +110,8 @@
0
- 60
- 010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000000000000
+ 323
+ 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000079433A5C55736572735C32393634335C4465736B746F705C705F626F6469746563685F76696461735F61383030305C705F626F6469746563685F76696461735F61383030305F496E63756261746F725F636F6E74726F6C5F73797374656D5F636F70795C7372635C626F6172645C68617264776172652E637070000000000C68617264776172652E63707000000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000320900008B000000D00E0000DF020000
@@ -526,7 +526,7 @@
0
32767
0
- 4096
+ 32768
0
16
@@ -1166,7 +1166,7 @@
0
32767
0
- 4096
+ 32768
0
16
@@ -1186,7 +1186,7 @@
0
32767
0
- 4096
+ 32768
0
16
@@ -1246,7 +1246,7 @@
0
32767
0
- 4096
+ 32768
0
16
@@ -1266,7 +1266,7 @@
0
32767
0
- 4096
+ 32768
0
16
@@ -1806,7 +1806,7 @@
File
2537
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000400000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
1423
@@ -1822,7 +1822,7 @@
Build
966
- 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000036170709600000000000000010003617070000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000036170709600000000000000010003617070000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -3598,4 +3598,22 @@
+
+ 1
+ 0
+
+ 100
+ 0
+
+ ..\..\src\board\hardware.cpp
+ 0
+ 1
+ 9
+ 1
+
+ 0
+
+
+
+
diff --git a/src/board/hardware.cpp b/src/board/hardware.cpp
index 7a5c4b4..8ac8639 100644
--- a/src/board/hardware.cpp
+++ b/src/board/hardware.cpp
@@ -15,12 +15,14 @@ void Hardware::hardwareinit() {
debug_light_init();
can_init();
temperature_init();
+ fan_init(1000);
peltier_init();
}
void Hardware::periodicJob() {
debug_light_periodicJob();
can_periodicJob();
temperature_periodicJob();
+ fan_periodicJob();
peltier_periodicJob();
}
@@ -154,6 +156,147 @@ void Hardware::temperature_periodicJob() {
}
/*******************************************************************************
+ * 风扇 *
+ *******************************************************************************/
+void Hardware::fan_init(int freq) {
+ STM32_HAL::setPWMFreq(&htim2, freq); // fan0->fan3
+ STM32_HAL::setPWMFreq(&htim4, freq); // fan4
+ STM32_HAL::setPWMFreq(&htim8, freq); // fan5
+
+ // fan0 fan1 fan2 fan3
+ STM32_HAL::gpioInitAsOutput(GPIOC, GPIO_PIN_0, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
+ // fan4
+ STM32_HAL::gpioInitAsOutput(GPIOC, GPIO_PIN_2, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
+ // fan5
+ STM32_HAL::gpioInitAsOutput(GPIOC, GPIO_PIN_3, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET);
+
+ /**
+ * @brief 风扇反馈初始化
+ *
+ * FAN0_FB_INT PC1
+ * FAN1_FB_INT PC4
+ * FAN2_FB_INT PC5
+ * FAN3_FB_INT PC6
+ * FAN4_FB_INT PC7
+ * FAN5_FB_INT PC10
+ */
+ // m_fan.fanStateMonitor[0].initialize(this, GPIOC, GPIO_PIN_1, fanGetPowerState(0));
+ // m_fan.fanStateMonitor[1].initialize(this, GPIOC, GPIO_PIN_4, fanGetPowerState(1));
+ // m_fan.fanStateMonitor[2].initialize(this, GPIOC, GPIO_PIN_5, fanGetPowerState(2));
+ // m_fan.fanStateMonitor[3].initialize(this, GPIOC, GPIO_PIN_6, fanGetPowerState(3));
+ // m_fan.fanStateMonitor[4].initialize(this, GPIOC, GPIO_PIN_7, fanGetPowerState(4));
+ // m_fan.fanStateMonitor[5].initialize(this, GPIOC, GPIO_PIN_10, fanGetPowerState(5));
+}
+
+void Hardware::fanSetDutyCycle(int fanIndex, uint16_t dutyCycle) {
+ if (fanIndex > 5) {
+ while (1) {
+ ZLOGE(TAG, "fanIndex is out of range!");
+ }
+ }
+
+ if (fanIndex <= 3) {
+ STM32_HAL::setPWMDuty(&htim2, TIM_CHANNEL_2, dutyCycle);
+
+ m_fan.fan0_3duty = dutyCycle;
+
+ m_fan.m_fanState[0] = dutyCycle > 0;
+ m_fan.m_fanState[1] = dutyCycle > 0;
+ m_fan.m_fanState[2] = dutyCycle > 0;
+ m_fan.m_fanState[3] = dutyCycle > 0;
+
+ if (dutyCycle > 0) {
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET);
+ } else {
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET);
+ }
+
+ } else if (fanIndex == 4) {
+ STM32_HAL::setPWMDuty(&htim4, TIM_CHANNEL_3, dutyCycle);
+ m_fan.m_fanState[4] = dutyCycle > 0;
+
+ if (dutyCycle > 0) {
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2, GPIO_PIN_SET);
+ } else {
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2, GPIO_PIN_RESET);
+ }
+ } else if (fanIndex == 5) {
+ STM32_HAL::setPWMDuty(&htim8, TIM_CHANNEL_3, dutyCycle);
+ m_fan.m_fanState[5] = dutyCycle > 0;
+
+ if (dutyCycle > 0) {
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_3, GPIO_PIN_SET);
+ } else {
+ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_3, GPIO_PIN_RESET);
+ }
+ }
+}
+void Hardware::fanSetState0to3(uint16_t dutyCycle) {
+ fanSetDutyCycle(0, dutyCycle);
+ m_fan.fan0_3duty = dutyCycle;
+}
+void Hardware::fanSetState4(uint16_t dutyCycle) {
+ fanSetDutyCycle(4, dutyCycle);
+ m_fan.fan4duty = dutyCycle;
+}
+void Hardware::fanSetState5(uint16_t dutyCycle) {
+ fanSetDutyCycle(5, dutyCycle);
+ m_fan.fan5duty = dutyCycle;
+}
+uint16_t Hardware::fanReadState0to3() { return m_fan.fan0_3duty; }
+uint16_t Hardware::fanReadState4() { return m_fan.fan4duty; }
+uint16_t Hardware::fanReadState5() { return m_fan.fan5duty; }
+bool *Hardware::fanGetPowerState(int fanIndex) {
+ if (fanIndex > 5) {
+ while (1) {
+ ZLOGE(TAG, "fanIndex is out of range!");
+ }
+ }
+ return &m_fan.m_fanState[fanIndex];
+}
+
+void Hardware::fan_periodicJob() {
+ /**
+ * @brief 风扇状态监控服务周期调度
+ */
+ // for (size_t i = 0; i < ZARRAY_SIZE(m_fan.fanStateMonitor); i++) {
+ // m_fan.fanStateMonitor[i].periodicJob();
+ // }
+
+ /**
+ * @brief 风扇测试
+ */
+ if (testHardwareFlag) {
+ static uint32_t lastcall;
+ static int duty = 0;
+ if (hasPassedMS(lastcall) > 1000) {
+ lastcall = getTicket();
+ duty += 10;
+ if (duty > 100) duty = 0;
+ fanSetState0to3(duty);
+ fanSetState4(duty);
+ fanSetState5(duty);
+ /**
+ * @brief DUYT大于零 FANPowerState为1
+ */
+ ZLOGI(TAG, "Duty:%d,FANState:%d,%d,%d,%d,%d,%d", duty, *fanGetPowerState(0), //
+ *fanGetPowerState(1), //
+ *fanGetPowerState(2), //
+ *fanGetPowerState(3), //
+ *fanGetPowerState(4), //
+ *fanGetPowerState(5)); //
+
+ // ZLOGI(TAG, "FANCount:%d,%d,%d,%d,%d,%d", m_fan.fanStateMonitor[0].getCount(), //
+ // m_fan.fanStateMonitor[1].getCount(), //
+ // m_fan.fanStateMonitor[2].getCount(), //
+ // m_fan.fanStateMonitor[3].getCount(), //
+ // m_fan.fanStateMonitor[4].getCount(), //
+ // m_fan.fanStateMonitor[5].getCount());
+ }
+ }
+}
+
+/*******************************************************************************
* 帕尔贴 *
*******************************************************************************/
void Hardware::peltier_cold_ctr_pwm(int pwm) { STM32_HAL::setPWMDuty(&htim1, TIM_CHANNEL_1, pwm); }
diff --git a/src/board/hardware.hpp b/src/board/hardware.hpp
index 759745b..12e6b98 100644
--- a/src/board/hardware.hpp
+++ b/src/board/hardware.hpp
@@ -36,6 +36,14 @@ class Hardware {
struct peltier_res_t {
int32_t pwm;
};
+ struct fan_res_t {
+ // FanStateMonitor fanStateMonitor[6];
+ bool m_fanState[6];
+ uint16_t fan0_3duty;
+ uint16_t fan4duty;
+ uint16_t fan5duty;
+ };
+ fan_res_t m_fan;
can_res_t m_can;
temperature_res_t m_temperature;
peltier_res_t m_peltier;
@@ -71,13 +79,18 @@ class Hardware {
void temperature_periodicJob();
/*******************************************************************************
- * OVERRIDE IflytopMicroOS *
+ * 风扇 *
*******************************************************************************/
- virtual void sleepMS(int ms) { HAL_Delay(ms); };
- virtual uint32_t hasPassedMS(uint32_t ticket) { return sys_haspassedms(ticket); };
- virtual uint32_t getTicket() { return HAL_GetTick(); };
- virtual uint32_t getNowMS() { return HAL_GetTick(); };
- virtual void sleepus(uint32_t us) { sys_delay_us(&DELAY_US_TIMER, us); }
+ void fan_init(int freq);
+ void fanSetDutyCycle(int fanIndex, uint16_t dutyCycle);
+ void fanSetState0to3(uint16_t dutyCycle);
+ void fanSetState4(uint16_t dutyCycle);
+ void fanSetState5(uint16_t dutyCycle);
+ uint16_t fanReadState0to3();
+ uint16_t fanReadState4();
+ uint16_t fanReadState5();
+ bool *fanGetPowerState(int fanIndex);
+ void fan_periodicJob();
/*******************************************************************************
* 帕尔贴 *
@@ -88,6 +101,15 @@ class Hardware {
void peltier_set_pwm(int pwm);
int peltier_get_pwm();
void peltier_periodicJob();
+
+ /*******************************************************************************
+ * OVERRIDE IflytopMicroOS *
+ *******************************************************************************/
+ virtual void sleepMS(int ms) { HAL_Delay(ms); };
+ virtual uint32_t hasPassedMS(uint32_t ticket) { return sys_haspassedms(ticket); };
+ virtual uint32_t getTicket() { return HAL_GetTick(); };
+ virtual uint32_t getNowMS() { return HAL_GetTick(); };
+ virtual void sleepus(uint32_t us) { sys_delay_us(&DELAY_US_TIMER, us); }
};
} // namespace iflytop