- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello
In my application I want to use CyU3PGpifSMSwitch():
CyU3PGpifSMSwitch (
uint16_t fromState, /* The state from which to do the switch to the desired state. */
uint16_t toState, /* The state to which to transition from fromState. */
uint16_t endState, /* The end state for this execution path. */
uint8_t initialAlpha, /* Initial Alpha values to use when switching states. */
uint32_t switchTimeout /* Timeout setting for the switch operation in GPIF clock cycles. */
);
According to the API documentation state switching is only carried out if the state machine is in "fromState" or "fromState" is not a valid state (>255). In my application I would like to define "fromState" larger than 255 to force state switching all the time. However, there is different behaviour between using the values 257, 0xFFF and 10 (which is the actual state derived from CyU3PGpifGetSMState()). When using 257, the state machine crashes after stepping trough this instruction around 1-10 times. If 0xFFFF is used, then I can reset the state machine up to 32'0000 times. When using 10, which is the actual state, commiting DMA buffer fails afterwards with error message 71 (CY_U3P_ERROR_INVALID_SEQUENCE).
Has anyone a good explanation for this behaviour? Thanks for help.
-Silvio
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Are you seeing the same behavior with the latest SDK 1.1.1.
Thanks,
sai krishna.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
But sometimes I still see by calling CyU3PGpifGetSMState() that the state machine ends up in a state "129" that does not even exist in my design. What does this mean?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Going to try and resurrect this thread since I am currently having the same issue as Sil was 4 years ago.
I'm developing firmware for the FX3 explorer kit. I start the state machine successfully, then call CyU3PGpifGetSMState() to check which state it has started in. For some reason this always returns 36, even though this state does not exist in my state machine header file. I have been ignoring this up till now since I can apparently still use the state machine as designed without any issue, and later calls to GetSMState() return the expected values.
Does anyone know what could cause this function to return a seemingly random value?
Thanks