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 12: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) );
}