Exemple #1
0
/*******************************************
      INITIALIZE
*******************************************/
int main(void)
{
  WDTCTL  = WDTPW + WDTHOLD;                // Stop watchdog timer
  BCSCTL1 = CALBC1_1MHZ;
  DCOCTL  = CALDCO_1MHZ;

  serial_init(9600);

  __dint();                                 // Enable global interrupts

/*******************************************
      MAIN LOOP
*******************************************/
  for(;;)
  {
    int j = 0;                              // Char array counter
    char cmd_line[90] = { 0 };              // Init empty array

    cio_print((char *) "$ ");               // Display prompt
    char c = cio_getc();                    // Wait for a character
    while(c != '\r') {                      // until return sent then ...
      if(c == 0x08) {                       //  was it the delete key?
        if(j != 0) {                        //  cursor NOT at start?
          cmd_line[--j] = 0;                //  delete key logic
          cio_printc(0x08); cio_printc(' '); cio_printc(0x08);
        }
      } else {                              // otherwise ...
        cmd_line[j++] = c; cio_printc(c);   //  echo received char
      }
      c = cio_getc();                       // Wait for another
    }

    cio_print((char *) "\n\n\r");           // Delimit command result

    switch(shell_process(cmd_line))         // Execute specified shell command
    {                                       // and handle any errors
      case SHELL_PROCESS_ERR_CMD_UNKN:
        cio_print((char *) "ERROR, unknown command given\n\r");
        break;
      case SHELL_PROCESS_ERR_ARGS_LEN:
        cio_print((char *) "ERROR, an arguement is too lengthy\n\r");
        break;
      case SHELL_PROCESS_ERR_ARGS_MAX:
        cio_print((char *) "ERROR, too many arguements given\n\r");
        break;
      default:
        break;
    }

    cio_print((char *) "\n");               // Delimit before prompt
  }

  return 0;
}
/*******************************************
			INITIALIZE
*******************************************/
void main(void) {


   	 //Basic prep
    WDTCTL  = WDTPW + WDTHOLD;     //Stop Watchdog TImer
    BCSCTL1 = CALBC1_1MHZ;         //Clocks
    DCOCTL  = CALDCO_1MHZ;
    P1REN = BIT3; //turn on pull-resistor on 0b0001000
	P1OUT |= BIT3; //powers pin3 (button)
	P1IE = BIT3;	//enables p1 interrupt on pin 1.3
	P1IES |= BIT3;	//sets interrupt on high to low
	P1IFG &= ~BIT3;	//clears interrupt flag

		//Prep 1st PWM channel  (X AXIS)
    TA0CCTL1 = OUTMOD_7;            // TA0CCR1 reset/set
    TA0CTL  = TASSEL_2 + MC_1;     // SMCLK + upmode
    //upmode(MC_1): the Timer repeatedly counts from 0 to the value set in register TACCR0)
    TACCR0  = PWM_PRD-1;        //set pwm period
    TACCR1  = 0;                   //set TA0CCR1 PWM Duty Cycle
    P1DIR |= BIT6; //Pin 1.6 set as output
    P1SEL |= BIT6; //Set Pin 1.6 for pwm use

  	  //Prep 2nd PWM channel (Y AXIS)
    TA1CCTL1    = OUTMOD_7; //set/reset mode
    TA1CTL     = TASSEL_2 + MC_1; //SMCLK + upmode
    TA1CCR0     = PWM_PRD-1; //set pwm period
    TA1CCR1     = 0;   //set TA0CCR1_ pwm duty cycle
    P2DIR       |= BIT2 | BIT3;  //set as output
    P2OUT		|= BIT2;
    P2SEL       |= BIT2;  //Set pin 2.2 for pwm use

	serial_init(9600); // set serial clockrate

	__enable_interrupt();									// Enable global interrupts

/*******************************************
			MAIN LOOP
*******************************************/
	for(;;) {
		int j = 0;											// Char array counter
		char cmd_line[255] = {0};							// Init empty array

		cio_print((char *) "$ ");							// Display prompt
		char c = cio_getc();								// Wait for a character
		while(c != '\r') {									// until return sent then ...
			if(c == 0x08) {									//   was it the delete key?
				if(j != 0) {								//   cursor NOT at start?
					cmd_line[--j] = 0; cio_printc(0x08); cio_printc(' '); cio_printc(0x08);
				}											//   delete key logic
			} else {										// otherwise ...
				cmd_line[j++] = c; cio_printc(c);			//   echo received char
			}
			c = cio_getc();									// Wait for another
		}

		cio_print((char *) "\n\n\r");						// Delimit command result

		switch(shell_process(cmd_line))						// Execute specified shell command
		{													// and handle any errors
			case SHELL_PROCESS_ERR_CMD_UNKN:
				cio_print((char *) "ERROR, unknown command given\n\r");
				break;
			case SHELL_PROCESS_ERR_ARGS_LEN:
				cio_print((char *) "ERROR, an arguement is too lengthy\n\r");
				break;
			case SHELL_PROCESS_ERR_ARGS_MAX:
				cio_print((char *) "ERROR, too many arguements given\n\r");
				break;
			default:
				break;
		}

		cio_print((char *) "\n");							// Delimit before prompt
	}
}