MSP430 C Code Examples from Class

From Class Wiki
Revision as of 12:09, 11 November 2015 by Frohro (talk | contribs)
Jump to navigation Jump to search

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