でじたる百葉箱2(温度+紫外線ロガー)

3.プログラム

【3-3  ◆SAVE2 EEPROM データ表示

◆SAVE2 EEPROM データ表示
LRUN2 記録データの表示 (1画面ごと停止 表示)

2000 @EREAD:’Read from EEPROM
2010 CLS:N=0:Q=0
2020 IF I2CR(82,#8E6,2,#8E4,2) ?”EEPROM I2C ERROR!”:GOTO@ERR
2030 IF !M ?”EEPROM   NOT DATA”:BEEP100,50:GOTO @END2
2040 IF !L L=4:’INPUT”DATA length?”,L
2050 FOR I=1 TO M
2060  N=I*L*2
2070  N=N<<8|N>>8&#FF
2080  Z=I2CR(82,#8E6,2,#800,L*2)
2090  Q=Q+1
2100  ?”No”;DEC$(I,4);”  ,”;
2110  FOR J=0 TO L-1
2120   ?[J];”,”;
2130  NEXT
2140  ?
2150  IF Q<23 GOTO @L4
2160  IF !INKEY() AND !BTN() CONT ELSE Q=0
2170 @L4:NEXT
2180 @END2:LC0,POS(2),1
2190 IF !INKEY() AND !BTN() CONT
2200 IF FILE()=2 LOAD0
2210 RTN
2900 @ERR:BEEP1,1000:CONT

【プログラム説明】
LRUN2     EEPROMからデータを読んで、ディスプレイへ表示します。
       データが多いときは、1画面毎に表示が停止しますが、タクトSWかキーボドを押すと、
       次のデータを表示します。

【応用例】

LRUN2 ディスプレイへデータを表示します。
LRUN2,2222   簡易グラフを表示します。

2000 @EREAD:F=1:’Read from EEPROM SAVE2
2010 CLS:N=0:Q=0:R=0:S=0:T=-30:U=99
2015 IFI2CR(80,#8E6,2,#8E4,2)?”EEPROM I2C ERROR!”:BEEP:END
2020 IF M<1 ?” NOT DATA”:GOTO @END
2030 IF !L INPUT”DATA length?”,L
2040 FOR I=1 TO M
2050 N=I*L*2:N=N<<8|N>>8&#FF:Z=I2CR(80,#8E6,2,#800,L*2)
2060 IF F Q=Q+1:X=30:?DEC$(I,4);” ,”; ELSE X=I*30/M
2070 FOR J=0 TO L-1
2080 IF F ?[J];”,”;:GOTO@L2
2090 R=R+1:S=S+[J]
2100 IF T<[J] T=[J] 2110 IF U>[J] U=[J]
2120 @L2:NEXT
2130 IF F GOTO @L3
2140 IF X=Q GOTO @L4 ELSE GSB @GDSP:GOTO@L4
2150 @L3:?
2160 IF Q<23 GOTO @L4
2170 IF !INKEY() AND !BTN() CONT ELSE Q=0
2180 @L4:NEXT
2190 @END:LC0,23,1
2200 IF !INKEY() AND !BTN() CONT
2210 IF FILE()=2 LOAD0
2220 RTN

2222 @GRAPH:’EEPROM Graph
2230 F=0:GOTO @EREAD+10
2240 @GDSP
2250 LC0,0:?”サイコウ”;T;” サイテイ”;U;” データ”;M;
2260 LCX,35-(S/R):?”*”;:Q=X:R=0:S=0
2270 LCX,20:IFI>999?I/1000;
2280 LCX,21:IFI>99?I%1000/100;
2290 LCX,22:IFI>9?I%100/10;
2300 LCX,23:?I%10;
2310 LC0,5:?”30″:LC0,10:?”25″:LC0,15:?”20″
2320 RTN