MSP430 C Code Examples from Class: Difference between revisions

From Class Wiki
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) );
}