HP-BASIC入門
ホーム » HPBASIC入門 » クロックとタイマ

HP-BASIC クロックとタイマ


HPBASICにはリアルタイム・クロックが備わっており、割り込みをおこなったり、タイミングを図ったりできます。 昔のワークステーションのタイプによるのですが、ほとんどのコンピュータにはクロックハードウェア(電池)が備わっています。 しかし昔すぎるワークステーションにはクロックがついていなかったり、 単純な電池切れを起こしている場合もあります。



日付と時刻の判断




TIMEDATE関数によってクロックの現在の値を戻すことができます。

PRINT TIMEDATE

クロックは内部で年、月、日、時、分、秒を1つの実数として管理しています。 そのため、単純に出力された値を読み取ることは困難です。 そのため、さらに別の関数を付与して読み取りに使います。 具体的にはDATE$関数から日付を取り出します。

PRINT DATE$(TIMEDATE)


時刻を返すためにはTIME$関数を使用します。

PRINT TIME$(TIMEDATE)



時刻、日付、時間のセット


時刻のセットはSET TIME xxxで変更します。この場合、xxxは午前0時以降の 秒数をあらわします。xxxの値は24時間以内でなければなりません。

SET TIME 55810

これが難しい場合、TIME関数で秒数を調整して入力します。

SET TIME TIME("15:30:10")

どちらの場合も日付を変更せず時刻だけ変更します。 日付の場合は SET TIMEDATE文を使用します。

クロックイベントによる分岐


一方、クロックによってタイミングを計り、イベントを起こさせることが可能です。 CLOCKで使用できるいくつかの分岐を追加するとリアルタイム・クロックの値に応じて終了・分岐をトリガとすることができます。

・ON TIMEを使用するとクロックが指定時刻になると分岐が起こるよう設定できます。
・ON DELAYを使用すると指定した秒数が経過してから分岐が起こるよう設定できます。
・ON CYCLEを使用すると指定秒数が経過する度に分岐が繰り返しておこるよう設定できます。


10 ON CYCLE 1 GOSUB Five
20 ON DELAY 6 GOTO Quit
30 !
40 TSTAMP: DISP TIME$(TIMEDATE) !Show time
50 GOTO TSTAMP
60 !
70 Five:FOR I=1 TO 5
80 PRINT RND;
90 NEXT I
100 PRINT
110 RETURN
120 !
130 Quit:END


このプログラムは6秒間、毎秒5個の乱数をプリントしてから停止します。