In MSP430 assembly code, a conditional branch based on comparing
a variable/register against a non-zero value requires two
instructions: compare and branch. However, when branching &
comparing against zero, a specific instruction, BNE, can be used
to perform both actions. This also holds true for a branch
statement in C. Hence a counting down loop can reduce one
instruction for each iteration of the loop when compared to a loop
counting up.
A counting-up loop consumes one extra instruction for every iteration of the loop.
A loop with an index counting up is detected in the code.
int i; P1OUT |= 0x01; // Set P1.0 LED on for (i = 5000; i>0; i--) // Count down loop // In instead of: (i = 0; i <5000; i++) { /* Execute your application code */ }
See the rest of the code examples for all MSP430 devices here!
Want to squeeze a few more nanoAmps out of your application? Leverage the e2e (Engineer-to-Engineer) online community to get all of your ULP questions answered! Or, if you are an Ultra-Low Power pro, give back to the community with your expertise.
Go to MSP430's e2e online forum!
If you are posting on the forums in relation to this rule, try using the tag "ULP_13.1"
For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Compiler/diagnostic messages/MSP430/1544 here. |