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

📄 stt.c

📁 包括EPA协议栈
💻 C
字号:
#include "stt.h"

static PHDLR pit_hdlr;
static PHDLR rtt_hdlr;

void SttIntHandler(void);

void SttInt(void) {
	uint32 state;
	
	state = AT91C_BASE_ST->ST_SR;

	if(state & AT91C_ST_ALMS) {
		(*rtt_hdlr)();
	}
	if(state & AT91C_ST_PITS) {
		(*pit_hdlr)();
	}
}

void RegHdlr(uint32 prh, PHDLR hldr) {
	if(prh == AT91C_ST_PITS) {
		pit_hdlr = hldr;
	}
	if(prh == AT91C_ST_ALMS) {
		rtt_hdlr = hldr;
	}
}

void SttInit(void) {
	uint32 state;
	
	state = AT91C_BASE_ST->ST_SR;
	
	AT91C_BASE_ST->ST_IDR = (AT91C_ST_PITS | AT91C_ST_WDOVF | AT91C_ST_RTTINC | AT91C_ST_ALMS);
	
	AT91F_AIC_ConfigureIt(AT91C_BASE_ST,
	                      AT91C_ID_SYS, 
	                      AT91C_AIC_PRIOR_HIGHEST,
	                      AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, 
	                      SttIntHandler); 

	AT91C_BASE_ST->ST_IER = (AT91C_ST_PITS | AT91C_ST_ALMS);
}

⌨️ 快捷键说明

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