The issue has been resolved. I have four levels of nested states, and the innermost fourth-level state handles TIME_TICK. After processing, it returns to the third level. The third, second, and first levels do not handle TIME_TICK. Therefore, I added a TIME_TICK event in the third level to consume TIME_TICK as quickly as possible, preventing it from reaching the top level and wasting CPU resources. Since the fourth level handles MPG_TICK, and the arrival speed of MPG_TICK is irregular, the QP state...
HI. I am using the QP framework for project development with the STM32F446 chip and the Arduino framework. I am utilizing the SysTick, an encoder (using the encoder mode of the TIM2 timer), and an Ethernet module (SPI Ethernet module with the W5500 chip). I am currently encountering an issue. I found that the w5500 library does not use SPI interrupts but instead uses traditional while loop polling, such as the following code: /** * @brief This function is implemented by user to send/receive data...
The code automatically generated by qm. I also feel strange. This problem appeared in July, but I still remember it because it is so strange that it even makes me doubt my understanding of the qp framework. I will try to reproduce the problem.
HI. Recently, I encountered a strange issue while using the QP state machine. I have three states: State A contains State B, and State B contains State C, forming a simple hierarchical state machine. In State A, there is an internal transition triggered by a timer event named 'SERIAL_BUFF_CHECK_TIMER', which is triggered every 50ms. In the substate C, there is also an internal transition triggered by an event named 'TIME_TICK', which is a system tick triggered every 1ms. When the state machine is...
QM cannot do better. For example, I have a state A, state A contains state B, and state B contains state C. I use the mouse to select all the states, then click paste in another AO. QM can only copy state A, and other states and transitions cannot be copied, they will be lost.
In the file bsp.c.
I am using qm version 6.1.1.
You need to open QM, then use the binky_console example in QM, and then click the button to generate code. Everything is normal now. Then you click the 'external' checkbox in the file, and then click the button to generate code again. Then you open the blinky_console file and go to the very bottom of the file.