📄 main.c
字号:
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 + -