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

📄 main.c

📁 embOS的MSP430F2274移植版
💻 C
字号:
/*********************************************************************
*               SEGGER MICROCONTROLLER GmbH & Co KG                  *
*       Solutions for real time microcontroller applications         *
**********************************************************************
*                                                                    *
*       (c) 1995 - 2008  SEGGER Microcontroller GmbH & Co KG         *
*                                                                    *
*       www.segger.com     Support: support@segger.com               *
*                                                                    *
**********************************************************************
*                                                                    *
*       embOS * Real time operating system for microcontrollers      *
*                                                                    *
*                                                                    *
*       Please note:                                                 *
*                                                                    *
*       Knowledge of this file may under no circumstances            *
*       be used to write a similar product or a real-time            *
*       operating system for in-house use.                           *
*                                                                    *
*       Thank you for your fairness !                                *
*                                                                    *
**********************************************************************
*                                                                    *
*       embOS version: 3.60a                                         *
*                                                                    *
**********************************************************************

----------------------------------------------------------------------
File    : Main.c
Purpose : Skeleton program for OS
--------  END-OF-HEADER  ---------------------------------------------
*/

#include "RTOS.h"
#include "BSP.h"
#include "msp430.h"

#define EVENT_KEYPRESSED (0x01)

#define EVENT_USART_RXD  (0x11)

OS_STACKPTR int StackHP[128], StackLP[128];          /* Task stacks */
OS_TASK TCBHP, TCBLP;                        /* Task-control-blocks */

static void HPTask(void) {
	OS_U8 MyEvent;
	while (1) {
		OS_Delay (100);
		UCA0TXBUF = 0x5A;
//		MyEvent = OS_WaitEvent ( EVENT_USART_RXD );
//		if ( MyEvent & EVENT_USART_RXD )
//		{
//			BSP_SetLED(1);
//			OS_Delay (20);
//			//			OS_SendString("HP Task Receive a Msg.\n");
//			BSP_ClrLED(1);
//		}
	}
}

static void LPTask(void) {
	OS_U8 MyEvent;
	while (1) {
		MyEvent = OS_WaitEvent ( EVENT_KEYPRESSED );
		if ( MyEvent & EVENT_KEYPRESSED )
		{
			OS_Delay (2);
			if ( ( P1IN & BIT2 ) == 0 )
			{
//				UCA0TXBUF = 0x5A;
				BSP_SetLED(0);
				OS_Delay (20);
				BSP_ClrLED(0);
			}
		}
	}
}

/*********************************************************************
*
*       main
*
*********************************************************************/

int main(void) {
	OS_IncDI();                      /* Initially disable interrupts  */
	OS_InitKern();                   /* initialize OS                 */
	OS_InitHW();                     /* initialize Hardware for OS    */
	
	BSP_Init();
	BSP_ClrLED(0);BSP_ClrLED(1);
//	/* You need to create at least one task here !                    */
//	OS_CREATETASK(&TCBHP, "HP Task", HPTask, 100, StackHP);
//	OS_CREATETASK(&TCBLP, "LP Task", LPTask,  50, StackLP);
//	OS_Start();                      /* Start multitasking            */
//	return 0;
	_EINT();
	while(1)
	{
		LPM0;
	}
}

/*****  EOF  ********************************************************/

#pragma vector = PORT1_VECTOR
__interrupt void Port1_ISR(void)
{
	OS_EnterInterrupt();
	OS_SignalEvent(EVENT_KEYPRESSED, &TCBLP);
	P1IFG &= ~BIT2;                           // P1.2 IFG cleared
	OS_LeaveInterrupt();
}

//#if (OS_UART == -1)

/*********************************************************************
*
*       OS_ISR_tx()
*       embOS UART tx interrupt handler
*/
#pragma vector = USCIAB0TX_VECTOR
__interrupt void OS_ISR_tx(void) {
	OS_EnterInterrupt();
	
	IFG2 &= ~( UCA0TXIFG + UCB0TXIFG );
	OS_LeaveInterrupt();
}

/*********************************************************************
*
*       OS_ISR_rx()
*       embOS UART rx interrupt handler
*/
#pragma vector = USCIAB0RX_VECTOR
__interrupt void OS_ISR_rx(void) {
	OS_EnterNestableInterrupt();   /* We will enable interrupts         */
	OS_SignalEvent(EVENT_USART_RXD, &TCBHP);
	IFG2 &= ~( UCA0RXIFG + UCB0TXIFG );
	OS_LeaveNestableInterrupt();
}

//#endif

/*****  EOF  ********************************************************/

⌨️ 快捷键说明

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