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

📄 ucos_edukit3.c

📁 ARM2410 要更多的远吗
💻 C
字号:
/*********************************************************************************************
* File:	main.c
* Author:	embest
* Desc:	
* History:	
*			R.X.Huang, Programming modify, Nov. 10, 2005
*********************************************************************************************/
/*------------------------------------------------------------------------------------------*/
/*                                     include files	                                    */
/*------------------------------------------------------------------------------------------*/
#include	"2410lib.h"
#include	"includes.h"				/* uC/OS interface */
#include	"sems.h"					/* user's Semaphore */

#define irq_handler IsrIRQ				// 2410init.s

void InitTimers(void);
void InitInterrupts(void);
void tick_timer_int(void);
void UserIRQ_Eint0(void);
void ARMTargetInit(void);
void ARMTargetStart(void);

void tick_timer_int(void)
{
	ClearPending(BIT_WDT);                  // Clear pending bit -- Watchdog timer
	OSTimeTick();
}

void InitTimers(void)
{
	rWTDAT = rWTCNT = PCLK/16/OS_TICKS_PER_SEC;	// set up the WDT
	rWTCON = (0<<8)|(1<<5)|(0<<3)|(1<<2)|(0<<0);// Pre=0, Enable WDT, 16, int, No Reset

}

void InitInterrupts(void)
{
	extern void UserIRQ_Handle();			// ucos_cpu_a.s
	pISR_IRQ = (unsigned) UserIRQ_Handle;	// handler setting
	pISR_WDT   = (unsigned)tick_timer_int;
	
	/* --- */
	pISR_EINT0 = (unsigned)UserIRQ_Eint0;

}

/* Initialize an ARM Target board */
void ARMTargetInit(void)
{
    sys_init();        /* Initial 44B0X's Interrupt,Port and UART */

	/* ---------------- print To UART0 ---------------- */
	uart_printf("\n*==================================*\n"); 
    uart_printf("*=  深圳市英蓓特信息技术有限公司  =*\n"); 
    uart_printf("*==================================*\n"); 
    uart_printf("*========== 产品研发中心 ==========*\n"); 
 	uart_printf("*=======  86-755-25631365  ========*\n"); 
    uart_printf("*===== support@embedinfo.com ======*\n"); 
    uart_printf("*===       OS Version:%d       ===*\n\r",OSVersion()); 
	uart_printf(" uCOS-II Running... \n") ;

    InitInterrupts();
    InitTimers();

}                               /* targetInit */

/* start the ARM target running */
void ARMTargetStart(void)
{
	ClearPending(BIT_WDT);                  // Clear pending bit -- Watchdog timer
	BIT_CLR(rINTMSK, BIT_WDT);				// Enable WatchDog interrupts

	/* --- */
	rGPFCON = (rGPFCON & 0xfffc) | (1<<1);	// PF0 = EINT0
	rEINTPEND = 0xffffff;
	rEXTINT0  = (rEXTINT0 & 0xfffffffc) | 0x2;// EINT0/2=falling edge triggered
	BIT_CLR(rINTMSK, BIT_EINT0);			// Enable Extern interrupt 0

}

void UserIRQ_Eint0(void)
{
    OSSemPend(UART_sem, 0, 0);
    uart_printf(" SB1202 had pressed...\n");
    OSSemPost(UART_sem);
    
    ClearPending(BIT_EINT0);
    
}

⌨️ 快捷键说明

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