linesctr.c.svn-base

来自「AVR单片机下」· SVN-BASE 代码 · 共 64 行

SVN-BASE
64
字号
/*                ****ROBOCON 2009 | BUPT TEAM******* * ------------------------------------------------------------------------ * FileName   : linesctr.c * Version    : 1.0 * Brief      : 数线器,使用EI4,需要AVRX环境 * Code by    : Leaf * Date       : Tue Mar 31 00:04:57 2009 * Note       : * * * ------------------------------------------------------------------------ */
#include "lib_bupt.h"
#ifdef LINESCTR_H_INCLUDED

volatile UINT8 linesCtr;
Mutex          linesCtrInc;/*数线器初始化*/
void  linesCtrInit(void){
	AvrXResetSemaphore(&linesCtrInc);
	SBI(DDRE,  PE4);
	SBI(PORTE, PE4);
	linesCtrStop();
	setLinesCtr(0);
}
/*停止数线器*/
void linesCtrStop(void){
	CBI(EIMSK, INT4);
}
/*重开数线器*/
void linesCtrStart(void){
	CBI(EIMSK, INT4);
	SBI(EICRB, ISC40);
	SBI(EICRB, ISC41);
	SBI(EIMSK, INT4);
}
/*获得当前经过了几条线*/
UINT8 getLinesCtr(void){
	return linesCtr;
}
/*设置数线器值*/
void  setLinesCtr(UINT8 val){
	linesCtr = val;
}
/*数线器中断*/
AVRX_SIGINT(SIG_INTERRUPT4)
{
	IntProlog();
	++linesCtr;
	linesCtrStop();
	AvrXIntSetSemaphore(&linesCtrInc);
	Epilog();
}

#endif

⌨️ 快捷键说明

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