したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

■■■20レス以内で済むF-BASICの質問はこちらへ■■■

672名無しさん:2016/01/08(金) 13:16:19
>>670
長くなってしまいましたが..。millitimeの時刻読み取りを減らして見ました。
---それでも数万回、時刻読み取りするけど。
(例えるとゴルフでパターを刻んでいくようなもの)
1. interval割り込みで、4秒(以内)待ち。
2. WAITで0.1秒単位待ち。
3. 回数限定無限ループで時間つぶし。(for MUGEN_CC=・・)←※外した方が定時性はあがる。
4. 豪腕でループぶん回してmillitimeを読み続けて時刻合わせ。


deflng A-Z 'ここから暗黙の型を32bit整数型にします。
var KANKAKU, OWARI, NOW
var MUGEN_CC, MUGEN_NN, MUGEN_NN2
var KAISU%

cls
gosub *MUGENSENS

KANKAKU=5
print time$, millitime/1000#
gosub *JUSTTIME
print time$, millitime/1000#

KAISU%=0 :do while KAISU% < 720 '実行回数
gosub *JUSTTIME '時刻合わせ
print date$,time$,millitime

'*** input AAA$

KAISU%=KAISU%+1 :loop
'
stop:end
*KAKE: print date$,time$ :return
'
*JUSTTIME2:return
*JUSTTIME
OWARI=KANKAKU-(time mod KANKAKU)
if OWARI >= 2 then '差が2秒以上あるならば、
interval OWARI-1 '秒単位の割り込み。ただし1秒残す。
on interval gosub *JUSTTIME2
interval on
waiti '設定している割り込みが発生するまで停止します。
interval off
end if
OWARI=1000-(millitime mod 1000)
if OWARI >= 100 then
wait (OWARI \ 100)*10 '1/100秒単位:0.1秒粗く待つ
endif
OWARI=1000-(millitime mod 1000)
if MUGEN_NN then for MUGEN_CC=(MUGEN_NN / 1000)*(OWARI \ 10)*10 to 0 step -1:MUGEN_NN=MUGEN_NN:next

if KANKAKU-((millitime \ 1000) mod KANKAKU)>= 2 then print "Time Over!!"
OWARI=1000-(millitime mod 1000)
MUGEN_CC=0
do 'ループしてmillitimeを秒単位チェック待ち
MUGEN_CC=MUGEN_CC+1
NOW=(millitime \ 1000) mod KANKAKU
loop until NOW=0
return
'
*MUGENSENS2 :MUGEN_NN=MUGEN_CC :return
*MUGENSENS
interval 1
on interval gosub *MUGENSENS2
MUGEN_CC=0:MUGEN_NN=0
interval on
waiti '1回目発生待ち
for KAISU%=1 to 3
do '2回目以降でループ回数カウント
MUGEN_CC=MUGEN_CC+1
loop until MUGEN_NN
if MUGEN_NN < MUGEN_NN2 or MUGEN_NN2=0 then MUGEN_NN2=MUGEN_NN
MUGEN_NN=0:MUGEN_CC=0
next KAISU%
MUGEN_NN=MUGEN_NN2
interval off
return
end


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板