MSP430 C Code Examples from Class: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 24: | Line 24: | ||
return 0; |
return 0; |
||
} |
} |
||
</nowiki> |
|||
Recursion Example (Fibonacci Numbers) |
|||
<nowiki> |
|||
#include <msp430.h> |
|||
int Fibonacci(int); |
|||
/* |
|||
* main.c |
|||
*/ |
|||
int main(void) { |
|||
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer |
|||
int n, i = 0, c, F[10]; |
|||
n=4; |
|||
for ( c = 1 ; c <= n ; c++ ) |
|||
{ |
|||
F[i] = Fibonacci(i); |
|||
i++; |
|||
} |
|||
return 0; |
|||
} |
|||
int Fibonacci(int n) |
|||
{ |
|||
if ( n == 0 ) |
|||
return 0; |
|||
else if ( n == 1 ) |
|||
return 1; |
|||
else |
|||
return ( Fibonacci(n-1) + Fibonacci(n-2) ); |
|||
} |
|||
</nowiki> |
Revision as of 11:09, 11 November 2015
MSP430 Assembly Code Examples from Class
Addressing Modes Demo from Class
#include <msp430.h> /* * Copy this program, debug it, view the disassembly, and note how the addressing modes work. * main.c */ int dog = 2; int cat; char table[4] = {119,120,121,122}; // 'w','x','y','z' is 119(0x77),120 (0x78), 121 (0x79), 122(0x7A) in ascii char* cow; int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer cat = dog; cat = table[dog]; cow = table; cat = *cow++; cat = *cow; return 0; }
Recursion Example (Fibonacci Numbers)
#include <msp430.h> int Fibonacci(int); /* * main.c */ int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer int n, i = 0, c, F[10]; n=4; for ( c = 1 ; c <= n ; c++ ) { F[i] = Fibonacci(i); i++; } return 0; } int Fibonacci(int n) { if ( n == 0 ) return 0; else if ( n == 1 ) return 1; else return ( Fibonacci(n-1) + Fibonacci(n-2) ); }