
B–61863E–1/06
D. EXAMPLES OF PROGRAMSAPPENDIX
495
/*==============================================================*/
/* flag man task–1*/
/*==============================================================*/
#include <pmclib.h>
#define K10_0 27264+(10*8)+0
#define K10_2 27264+(10*8)+2
#define FLAG_ID 10 /* flag id 10 */
#define WAIT_MSG1 1 /* #0 */
#define WAIT_MSG2 2 /* #1 */
#define WAIT_LIMIT 0 /* Eternal */
typedef enum { AND_W, OR_W } WAIT_SEL;
unsigned long flag_msg1,flag_msg2,ret_msg1,ret_msg2;
void far smpl_flg1()
{
unsigned char flag_id = FLAG_ID ;
long w_limit = WAIT_LIMIT ;
flag_msg1 = WAIT_MSG1 ;
flag_msg2 = WAIT_MSG2 ;
os_make_flg( flag_id ) ;
for( ; ; ){
pl_membwrt(K10_0,(pl_membrd(K10_0))?0:1);/* K10.0 == ON/OFF */
os_wait_flg( flag_id, flag_msg1,
AND_W, w_limit, &ret_msg1 ) ;
pl_membwrt(K10_2,(pl_membrd(K10_2))?0:1);/* K10.2 == ON/OFF */
os_wait_flg( flag_id, flag_msg2,
AND_W, w_limit, &ret_msg2 ) ;
os_clar_flg( flag_id, flag_msg2 ) ;
}
}
/*==============================================================*/
/* flag man task–2*/
/*==============================================================*/
#include <pmclib.h>
#define K10_1 27264+(10*8)+1
#define K10_3 27264+(10*8)+3
#define FLAG_ID 10 /* flag id 10 */
#define FLAG_ON_MSG1 1 /* #0 */
#define FLAG_ON_MSG2 2 /* #1 */
unsigned long flag_msg1,flag_msg2 ;
void far smpl_flg2()
{
unsigned char flag_id = FLAG_ID ;
flag_msg1 = FLAG_ON_MSG1 ;
flag_msg2 = FLAG_ON_MSG2 ;
for( ; ; ){
pl_membwrt(K10_1,(pl_membrd(K10_1))?0:1);/* K10.1 == ON/OFF */
os_puls_flg( flag_id, flag_msg1 ) ;
pl_membwrt(K10_3,(pl_membrd(K10_3))?0:1);/* K10.3 == ON/OFF */
os_sign_flg( flag_id, flag_msg2 ) ;
}
}