SWCU191 February 2022 CC1311P3 , CC1311R3 , CC2651P3 , CC2651R3 , CC2651R3SIPA
The execution of a command may be conditional on the result of the previous command. For each command, three results are possible:
The criteria are defined for each command. If not defined, the result is TRUE unless the command ended with an error, in which case the result is ABORT.
Each command structure contains a condition for running the next command. The condition byte is as given in Table 26-7. If the rule is COND_SKIP_ON_FALSE or COND_SKIP_ON_TRUE, the number of commands to skip is signaled in the nSkip field. If the number of skips is zero, rerun the same command. If the number of skips is one, run the next command in the chain. If the number of skips is two, run the command after the next, and so forth. If the rule is COND_NEVER and no previous commands use skipping, the next command pointer is ignored and may be NULL.
Bit Index | Field Name | Description |
---|---|---|
0–3 | rule | Rule for how to proceed, as defined in Table 26-8 |
4–7 | nSkip | Number of skips + 1 if the rule involves skipping 0: Same, 1: next, 2: skip next, ... |
Number | Name | Description |
---|---|---|
0 | COND_ALWAYS | Always run next command (except in case of ABORT). |
1 | COND_NEVER | Never run next command (next command pointer can still be used for skip). |
2 | COND_STOP_ON_FALSE | Run next command if this command returned TRUE, stop if it returned FALSE. |
3 | COND_STOP_ON_TRUE | Stop if this command returned TRUE, run next command if it returned FALSE. |
4 | COND_SKIP_ON_FALSE | Run next command if this command returned TRUE, skip a number of commands if it returned FALSE. |
5 | COND_SKIP_ON_TRUE | Skip a number of commands if this command returned TRUE, run next command if it returned FALSE. |
If execution is stopped, the radio CPU goes back to idle and no further commands are run until a new command is entered through the CMDR register. The LAST_COMMAND_DONE interrupt is raised.
If a command ends with the ABORT result, the execution ends regardless of the condition. The LAST_COMMAND_DONE interrupt is raised. An example of criterion for the ABORT result is that a CMD_ABORT command is issued.