📄 alarmtest.c.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 + -