⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 MSP430 IAR project with FreeRTOS port.
💻 C
📖 第 1 页 / 共 2 页
字号:
    P1SEL_bit.P1SEL_3 = 0;	// 0 is digital I/O
    P1SEL_bit.P1SEL_4 = 0;	// 0 is digital I/O
    P1SEL_bit.P1SEL_5 = 0;	// 0 is digital I/O
    P1SEL_bit.P1SEL_6 = 0;	// 0 is digital I/O
    P1SEL_bit.P1SEL_7 = 0;	// 0 is digital I/O

    P1DIR_bit.P1DIR_0 = 0;	// 0 is input
    P1DIR_bit.P1DIR_1 = 0;	// 0 is input
    P1DIR_bit.P1DIR_2 = 0;	// 0 is input
    P1DIR_bit.P1DIR_3 = 0;	// 0 is input
    P1DIR_bit.P1DIR_4 = 0;	// 0 is input
    P1DIR_bit.P1DIR_5 = 0;	// 0 is input
    P1DIR_bit.P1DIR_6 = 0;	// 0 is input
    P1DIR_bit.P1DIR_7 = 0;	// 0 is input

    // P2:  
    
    P2SEL_bit.P2SEL_0 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_1 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_2 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_3 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_4 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_5 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_6 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_7 = 0;	// 0 is digital I/O

    P2DIR_bit.P2DIR_0 = 0;	// 0 is input
    P2DIR_bit.P2DIR_1 = 0;	// 0 is input
    P2DIR_bit.P2DIR_2 = 0;	// 0 is input
    P2DIR_bit.P2DIR_3 = 0;	// 0 is input
    P2DIR_bit.P2DIR_4 = 1;	// 1 is output  -- NC
    P2DIR_bit.P2DIR_5 = 0;	// 0 is input
    P2DIR_bit.P2DIR_6 = 1;	// 1 is output  -- NC
    P2DIR_bit.P2DIR_7 = 1;	// 1 is output  -- NC

    // P3:

    P3SEL_bit.P3SEL_0 = 0;	// 0 is digital I/O
    P3SEL_bit.P3SEL_1 = 0;	// 0 is digital I/O
    P3SEL_bit.P3SEL_2 = 0;	// 0 is digital I/O
    P3SEL_bit.P3SEL_3 = 0;	// 0 is digital I/O
	
    P3DIR_bit.P3DIR_0 = 0;	// 1 is input
    P3DIR_bit.P3DIR_1 = 0;	// 1 is input
    P3DIR_bit.P3DIR_2 = 0;	// 1 is input
    P3DIR_bit.P3DIR_3 = 0;	// 1 is input

    // UART PINS
    
    // P4:  LED's are on P4:
    
    // LED4:  P4.0
    // LED3:  P4.1
    // LED2:  P4.2
    // LED1:  P4.3

    P4SEL_bit.P4SEL_0 = 0;	// 0 is digital I/O
    P4SEL_bit.P4SEL_1 = 0;	// 0 is digital I/O
    P4SEL_bit.P4SEL_2 = 0;	// 0 is digital I/O
    P4SEL_bit.P4SEL_3 = 0;	// 0 is digital I/O
    P4SEL_bit.P4SEL_4 = 0;	// 0 is digital I/O
    P4SEL_bit.P4SEL_5 = 0;	// 0 is digital I/O
    P4SEL_bit.P4SEL_6 = 0;	// 0 is digital I/O
    P4SEL_bit.P4SEL_7 = 0;	// 0 is digital I/O

    P4DIR_bit.P4DIR_0 = 1;	// 1 is output
    P4DIR_bit.P4DIR_1 = 1;	// 1 is output
    P4DIR_bit.P4DIR_2 = 1;	// 1 is output
    P4DIR_bit.P4DIR_3 = 1;	// 1 is output
    P4DIR_bit.P4DIR_4 = 1;	// 1 is output  -- NC
    P4DIR_bit.P4DIR_5 = 0;	// 0 is input
    P4DIR_bit.P4DIR_6 = 0;	// 0 is input
    P4DIR_bit.P4DIR_7 = 1;	// 1 is output  -- NC

    // P5:

    P5SEL_bit.P5SEL_0 = 0;	// 0 is digital I/O
    P5SEL_bit.P5SEL_1 = 0;	// 0 is digital I/O
    P5SEL_bit.P5SEL_2 = 0;	// 0 is digital I/O
    P5SEL_bit.P5SEL_3 = 0;	// 0 is digital I/O
    P5SEL_bit.P5SEL_4 = 0;	// 0 is digital I/O
    P5SEL_bit.P5SEL_5 = 0;	// 0 is digital I/O
    P5SEL_bit.P5SEL_6 = 0;	// 0 is digital I/O
    P5SEL_bit.P5SEL_7 = 0;	// 0 is digital I/O

    P5DIR_bit.P5DIR_0 = 0;	// 0 is input
    P5DIR_bit.P5DIR_1 = 0;	// 0 is input
    P5DIR_bit.P5DIR_2 = 0;	// 0 is input
    P5DIR_bit.P5DIR_3 = 0;	// 0 is input
    P5DIR_bit.P5DIR_4 = 0;	// 0 is input  
    P5DIR_bit.P5DIR_5 = 1;	// 1 is output  -- NC
    P5DIR_bit.P5DIR_6 = 1;	// 1 is output  -- NC
    P5DIR_bit.P5DIR_7 = 1;	// 1 is output  -- NC

    // P6:

    P6SEL_bit.P6SEL_0 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_1 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_2 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_3 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_4 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_5 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_6 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_7 = 0;	// 0 is digital I/O

    P6DIR_bit.P6DIR_0 = 1;	// 1 is output -- NC
    P6DIR_bit.P6DIR_1 = 1;	// 1 is output -- NC
    
    P6DIR_bit.P6DIR_2 = 0;	// 0 is input
    P6DIR_bit.P6DIR_3 = 0;	// 0 is input
    P6DIR_bit.P6DIR_4 = 0;	// 0 is input
    P6DIR_bit.P6DIR_5 = 0;	// 0 is input
    P6DIR_bit.P6DIR_6 = 0;	// 0 is input
    P6DIR_bit.P6DIR_7 = 0;	// 0 is input
  

    // P1:
/*
    P1SEL_bit.P1SEL_5 = 0;	// 0 is digital I/O
    P1SEL_bit.P1SEL_6 = 0;	// 0 is digital I/O
    P1SEL_bit.P1SEL_7 = 0;	// 0 is digital I/O

    P1DIR_bit.P1DIR_5 = 1;	// 1 is output
    P1DIR_bit.P1DIR_6 = 1;	// 1 is output
    P1DIR_bit.P1DIR_7 = 1;	// 1 is output

    // P2:

    P2SEL_bit.P2SEL_0 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_1 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_2 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_3 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_4 = 0;	// 0 is digital I/O

    P2SEL_bit.P2SEL_6 = 0;	// 0 is digital I/O
    P2SEL_bit.P2SEL_7 = 0;	// 0 is digital I/O

    P2DIR_bit.P2DIR_0 = 1;	// 1 is output
    P2DIR_bit.P2DIR_1 = 1;	// 1 is output
    P2DIR_bit.P2DIR_2 = 1;	// 1 is output
    P2DIR_bit.P2DIR_3 = 1;	// 1 is output
    P2DIR_bit.P2DIR_4 = 1;	// 1 is output

    P2DIR_bit.P2DIR_6 = 1;	// 1 is output
    P2DIR_bit.P2DIR_7 = 1;	// 1 is output

    // P3:

    P3SEL_bit.P3SEL_0 = 0;	// 0 is digital I/O
    P3SEL_bit.P3SEL_1 = 0;	// 0 is digital I/O
    P3SEL_bit.P3SEL_2 = 0;	// 0 is digital I/O
    P3SEL_bit.P3SEL_3 = 0;	// 0 is digital I/O
	
    P3DIR_bit.P3DIR_0 = 1;	// 1 is output
    P3DIR_bit.P3DIR_1 = 1;	// 1 is output
    P3DIR_bit.P3DIR_2 = 1;	// 1 is output
    P3DIR_bit.P3DIR_3 = 1;	// 1 is output

    // P4:

    P4SEL_bit.P4SEL_7 = 0;	// 0 is digital I/O
    P4DIR_bit.P4DIR_7 = 1;	// 1 is output

    // P5:

    P5SEL_bit.P5SEL_7 = 0;	// 0 is digital I/O
    P5DIR_bit.P5DIR_7 = 1;	// 1 is output

    // P6:

    P6SEL_bit.P6SEL_0 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_1 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_2 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_3 = 0;	// 0 is digital I/O

    P6SEL_bit.P6SEL_5 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_6 = 0;	// 0 is digital I/O
    P6SEL_bit.P6SEL_7 = 0;	// 0 is digital I/O

    P6DIR_bit.P6DIR_0 = 1;	// 1 is output
    P6DIR_bit.P6DIR_1 = 1;	// 1 is output
    P6DIR_bit.P6DIR_2 = 1;	// 1 is output
    P6DIR_bit.P6DIR_3 = 1;	// 1 is output

    P6DIR_bit.P6DIR_5 = 1;	// 1 is output
    P6DIR_bit.P6DIR_6 = 1;	// 1 is output
    P6DIR_bit.P6DIR_7 = 1;	// 1 is output
*/

	/* Setup DCO+ for ( xtal * D * (N + 1) ) operation. */
//	FLL_CTL0 |= DCOPLUS + XCAP18PF;

	/* X2 DCO frequency, 8MHz nominal DCO */
// XXX - OK - this looks like our master clock...
//	SCFI0 |= FN_4;

	/* (121+1) x 32768 x 2 = 7.99 Mhz */
//	SCFQCTL = mainMAX_FREQUENCY;

	/* Setup the IO.  This is just copied from the demo supplied by SoftBaugh
	for the ES449 demo board. */

//	P1SEL = 0x32;
//	P2SEL = 0x00;
//	P3SEL = 0x00;
//	P4SEL = 0xFC;
//	P5SEL = 0xFF;


// (re)enable the watchdog if you wish

	
}
/*-----------------------------------------------------------*/

/* The idle hook is just a copy of the standard integer maths tasks.  See
Demo/Common/integer.c for rationale. */

// void vApplicationIdleHook( void ) __toplevel
void vApplicationIdleHook( void )
{
/* These variables are all effectively set to constants so they are volatile to
ensure the compiler does not just get rid of them. */
volatile portLONG lValue;
volatile signed portBASE_TYPE *pxTaskHasExecuted;

	/* Keep performing a calculation and checking the result against a constant. */
	for( ;; )
	{
		/* Perform the calculation.  This will store partial value in
		registers, resulting in a good test of the context switch mechanism. */
		lValue = intgCONST1;
		lValue += intgCONST2;

		/* Yield in case cooperative scheduling is being used. */
		#if configUSE_PREEMPTION == 0
		{
			taskYIELD();
		}
		#endif

		/* Finish off the calculation. */
		lValue *= intgCONST3;
		lValue /= intgCONST4;

		/* If the calculation is found to be incorrect we stop setting the
		TaskHasExecuted variable so the check task can see an error has
		occurred. */
		if( lValue != intgEXPECTED_ANSWER ) /*lint !e774 volatile used to prevent this being optimised out. */
		{
			/* Don't bother with mutual exclusion - it is only read from the
			check task and never written. */
			xLocalError = pdTRUE;
		}
		/* Yield in case cooperative scheduling is being used. */
		#if configUSE_PREEMPTION == 0
		{
			taskYIELD();
		}
		#endif
	}
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -