#include #include #include LOCAL ID tskid; LOCAL ID flgid; /* 各プッシュボタンに対応するフラグパターンの定義 */ #define FLGPTN_SW1 (0x01) #define FLGPTN_SW2 (0x02) #define FLGPTN_SW3 (0x04) #define FLGPTN_SW4 (0x08) #define FLGPTN_ALL (FLGPTN_SW1 | FLGPTN_SW2 | FLGPTN_SW3 | FLGPTN_SW4) /* プッシュボタンの数 */ #define NUM_SW (4) /* * 各プッシュボタンに対応する割込みハンドラ */ LOCAL void inthdr_sw1(UINT dintno) { tk_set_flg(flgid, FLGPTN_SW1); ClearInt(dintno); } LOCAL void inthdr_sw2(UINT dintno) { tk_set_flg(flgid, FLGPTN_SW2); ClearInt(dintno); } LOCAL void inthdr_sw3(UINT dintno) { tk_set_flg(flgid, FLGPTN_SW3); ClearInt(dintno); } LOCAL void inthdr_sw4(UINT dintno) { tk_set_flg(flgid, FLGPTN_SW4); ClearInt(dintno); } /* * コンソール出力用のタスク */ LOCAL void task(INT stacd, void *exinf) { UINT flgptn; UB num[2]; INT i; ER ercd; ID tskid = stacd; num[1] = '\0'; for(;;) { /* 割込みが発生するまで待機 */ ercd = tk_wai_flg(flgid, FLGPTN_ALL, TWF_ORW | TWF_BITCLR, &flgptn, TMO_FEVR); if (ercd < 0) { break; } /* 押されたプッシュボタンを表示 */ for (i=0; i