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

📄 alarmtest.c.svn-base

📁 我们自己开发的一个OSEK操作系统!不知道可不可以?
💻 SVN-BASE
字号:
/*
 * ***********************************************************
 * 			        OSEK
 * 			COUNTER AND ALARM
 *FILE : alarmtest.c
 *BY   : mrchen
 *************************************************************
 */

#include"alarmtest.h"
#include"almapi.h"
//init programme,start at the startup of system
int taskpro1()
{
	//call the api used for activing a task,offered by shiyi fan.
	return 0;
}
int eventpro1()
{
	//call the api used for setting a event,offered by qiong zhao.
	return 0;
}
void almcallback1()
{
	//the callback of alarm,may be used for the special users.
}
void Init()
{
	int i,j;
	for(i=0;i < cnt_num;i++)
	{
		CntArrary[i].id=i;
		CntArrary[i].cntcurrent=0;
		CntArrary[i].maxallowvalue=Cntmaxval;//OIL configure
		CntArrary[i].tickcurrent=0;
		CntArrary[i].tickperbase=(i+1)*10;//OIL configure
		CntArrary[i].mincycle=Cntmincyl;//OIL configure
	}
	for(j=0;j < alm_num;j++)
	{
		AlmArrary[j].actionid=task;
		AlmArrary[j].taskpro=taskpro1;
		AlmArrary[j].almnum=(j+1)*10;//OIL configure
		AlmArrary[j].counter=j/(alm_num/cnt_num);//OIL configure
		AlmArrary[j].cycle=j%2;//OIL configure
		AlmArrary[j].state=0;
		AlmArrary[j].autostart=0;//OIL configure
		if(AlmArrary[j].autostart==1)//OIL configure
		{
			AlmArrary[j].state=1;
			AlmArrary[j].cycletime=20;
			AlmArrary[j].alarmtime=0;
		}
	}
}
//simulate user's programme to make use of alarm.
void Simulate()
{
	Setrelalarm(&AlmArrary[alm_now],30,0);
	Setabsalarm(&AlmArrary[alm_now],100,0);
}

int main()
{

	int i,j=0;
	
	ticktype temp_tick;
	tickreftype temptick=&temp_tick;

	alarmbasetype temp_cnt;
	alarmbasereftype temprefcnt;
	temprefcnt = &temp_cnt;
	
	Init();
	Simulate();
	for(i=0;i<6000;i++)
	{
		OSCounterTick();
		if(i == 50 )
		{
		  if(Getalarm(&AlmArrary[0],temptick) == E_OK);
				;//printf("tick should be 25=?%d\n",*temptick)
			Getalarmbase(&AlmArrary[0],temprefcnt);
			//printf("temprefcnt->id should be 0=?%d\n",temprefcnt->id);
			Cancelalarm(&AlmArrary[0]);
		}
	}
	
	return 0;
}

⌨️ 快捷键说明

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