ここからプログラム↓
Const Simul = 0
Const Testsim = 0
Const Silia = 0
Const Test22 = 0
Const Init_test = 0
#if Simul = 1
$sim
#endif
$regfile = "m644pdef.DAT"
$crystal = 8000000
$hwstack = 128
$swstack = 64
$framesize = 128
Initlcd
Config Lcdmode = Port
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Porta.1 , Db5 = Porta.4 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.5 , Rs = Porta.6
Config Lcd = 16 * 2
Cursor Off
Cls
Display Off
Config Timer1 = Timer , Prescale = 256 , Clear Timer = 1
Compare1a = 15625 - 1
On Compare1a Tim2
Enable Compare1a
Stop Timer1
Config Timer0 = Timer , Prescale = 8 , Clear Timer = 1
Stop Timer0
Config Clock = Soft , Gosub = Sectic
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim Pow As Word
1w_dq Alias Porta.7
Config 1wire = 1w_dq
Enable Interrupts
Config Porta = &B11100110
Config Portb = &B11111111
Config Portc = &B11101100
Config Portd = &B00011111
Porta = &B00000000
Portb = &B00000000
Portc = &B00010011
Portd = &B11100000
$include "Config_MMC_644P_TEST.bas"
$include "CONFIG_AVR-DOS_JP_NO2.bas"
Dim Initfile As Byte
' Sd_card Alias Pinc.4
' Config Sd_card = Input
' Sd_card = 1
'TEST###################
Dim Simu As Bit
Dim Deb As Bit
Dim Test As Bit
Dim Test2 As Bit
Dim Sili As Bit
Deb = 0
Test2 = 0
#if Simul = 1
Simu = 1
#endif
#if Testsim = 1
Test = 1
#endif
#if Silia = 1
Sili = 1
#endif
'#######################
Dim Sw As Long
Declare Sub Func_temp(byval Ad As Word)
'########################
#if Simul = 1
Sw_power Alias Portd.7
Sw_mode Alias Portd.6
Sw_up Alias Portd.5
Sw_down Alias Portc.1
Sw_enter Alias Portc.0
#else
Sw_power Alias Pind.7
Sw_mode Alias Pind.6
Sw_up Alias Pind.5
Sw_down Alias Pinc.1
Sw_enter Alias Pinc.0
#endif
Cool Alias Portb.4
Heat Alias Portb.3
Ac_out1 Alias Portc.6
Ac_out2 Alias Portc.5
' Ac_out12 Alias Portd.7
' Ac_out22 Alias Portd.6
Pt_power Alias Pina.0
Ad_power Alias 0
Led_out Alias Portd.3
Led_high Alias Portd.2
Led_mid Alias Portd.1
Led_night Alias Portd.0
Dim Fg_led_high As Bit
Dim Fg_led_mid As Bit
Dim Fg_led_night As Bit
Led_hot Alias Portb.0
Led_no Alias Portb.1
Led_cool Alias Portb.2
Sensor_power Alias Portb.3
Sensor_power = 1
1w_pulup Alias Portb.4
O_led6 Alias Portb.5
O_led7 Alias Portb.6
Tem_ind1 Alias 3
Tem_ind2 Alias 4
Tem_ind3 Alias 5
'######################
Dim M_power As Bit
M_power = 1
If Sili = 1 Then
Gosub Silial
Cls
End If
'**********************
#if Init_test = 1
Display On
Do
If Sw_power = 0 Then Exit Do
Locate 1 , 1
Lcd Str(_hour) ; ":" ; Str(_min) ; ":" ; Str(_sec)
Locate 2 , 1
Lcd "Push PowerButton"
Loop
Display On
Dim Timtes As Long
Dim Ccc As Long
Timer1 = 0
Start Timer1
Gbdriveerror = Driveinit()
Timtes = Timer1
Do
Ccc = Ccc + 1
Locate 1 , 1
Lcd "Drive_" ; Str(timtes)
If Ccc > 8000000 Then
Ccc = 0
Exit Do
End If
Loop
Timer1 = 0
Initfile = Initfilesystem(1)
Timtes = Timer1
Do
Ccc = Ccc + 1
Locate 1 , 1
Lcd "Sys_" ; Str(timtes)
If Ccc > 8000000 Then
Ccc = 0
Exit Do
End If
Loop
Timer1 = 0
Stop Timer1
#endif
'************************
Dim X_summer_max As Eram Integer
Dim X_summer_min As Eram Integer
Dim X_winter_max As Eram Integer
Dim X_winter_min As Eram Integer
Dim X_max_time As Eram Integer
Dim X_min_time As Eram Integer
Dim X_temp_fluct As Eram Integer
Dim X_coldhot_difference As Eram Integer
Dim X_error_temp As Eram Integer
Dim X_summerpoint As Eram Integer
Dim X_10min As Eram Byte
Dim X_1min As Eram Byte
Dim X_10sec As Eram Byte
Dim X_1sec As Eram Byte
Dim X_noise As Eram Byte
Dim X_sdcard As Eram Byte
Dim Y_summer_max As Integer
Dim Y_summer_min As Integer
Dim Y_winter_max As Integer
Dim Y_winter_min As Integer
Dim Y_max_time As Integer
Dim Y_min_time As Integer
Dim Y_temp_fluct As Integer
Dim Y_coldhot_difference As Integer
Dim Y_error_temp As Integer
Dim Y_summerpoint As Integer
Dim Y_winterpont As Integer
Dim Y_10min As Eram Byte
Dim Y_1min As Eram Byte
Dim Y_10sec As Eram Byte
Dim Y_1sec As Eram Byte
Dim Y_noise As Eram Byte
Dim Y_sdcard As Eram Byte
If Deb = 1 Then
Gosub Eepdeb
End If
Dim Powersumi As Bit
Dim Modesumi As Bit
Dim Onstart As Bit
Dim Upsumi As Bit
Dim Downsumi As Bit
Dim Nightsumi As Bit
Dim Entersumi As Bit
Dim Upkeep As Bit
Dim Downkeep As Bit
Dim Dotirasumi As Bit
Dim Lcd11 As String * 16
Dim Lcd12 As String * 5
Dim Lcd21 As String * 5
Dim Lcd6 As String * 16
Dim Power_s As Bit
Dim Mode_s As Bit
Dim Up_s As Bit
Dim Down_s As Bit
Dim Enter_s As Bit
Dim Back_s As Bit
Dim Low_s As Bit
Dim High_s As Bit
Dim Mid_s As Bit
Dim Night_s As Bit
Dim Powerout_s As Bit
Dim Acdc As Bit
Dim Mk_c As Integer
Dim Uk_c As Long
Dim Dk_c As Long
Dim Uk_c_long As Long
Dim Dk_c_long As Long
Dim Mk_s As Bit
Dim Uk_s As Bit
Dim Dk_s As Bit
Dim C_m As Long
Dim C_p As Long
Dim C_u As Long
Dim C_d As Long
Dim C_e As Long
Dim C_eep As Long
Dim C_tuch As Long
Dim C_modetuch As Long
Dim C_1sec As Byte
Dim C_2sec As Byte
Dim C_3sec As Byte
Dim C_5sec As Byte
Dim C_6sec As Byte
Dim C_10sec As Byte
Dim C_1min As Byte
Dim C_10min As Integer
C_2sec = 1
C_3sec = 2
C_5sec = 3
C_10sec = 4
C_1min = 5
C_10min = 6
Dim Tt As Long
Tt = 30
Dim Tt_up2 As Long
Tt_up2 = 5000
Dim Tt1 As Long
Dim Tt2 As Long
Dim Tt3 As Long
Dim Tt_tuch As Byte
Dim Tt_mk As Long
Tt1 = 5000
Tt2 = 900
Tt3 = 3000
Tt_tuch = 10
Tt_mk = 2
Dim Test_count As Bit
Dim Lcdoff As Bit
Lcdoff = 0
Dim Fg_lcd As Bit
'TEST*****************
If Test = 1 Then
Gosub Testsub
End If
Dim Tes As Long
'***********************
Dim Timer2st As Bit
Dim Tempsingle As Single
Dim Tempbyte As Byte
Dim Tempinteger As Integer
Dim Tempdouble As Double
Dim Templong As Long
Dim Tempword As Word
Dim Tempstring As String * 16
Dim Tempstring1 As String * 6
Dim Tempstring2 As String * 6
Dim Tempstring3 As String * 6
Dim Tempstring4 As String * 6
Dim Tempstring5 As String * 80
Dim Tempstring6 As String * 80
Dim Winterpoint As Integer
Dim Summerpoint As Integer
Winterpoint = 30
Summerpoint = 220
Dim Fg_eep As Bit
Dim Fg_clock As Bit
Dim Fg_lowset As Bit
Dim Fg_reslcd As Bit
'**********************
Dim M_reg As Byte
M_reg = 1
Dim M_reg2 As Byte
M_reg2 = 1
Dim M_reg3 As Byte
M_reg3 = 1
Dim M_mode As Byte
M_mode = 0
Dim Mode_ind As Byte
Mode_ind = 1
Dim M_mode2 As Byte
M_mode2 = 0
Dim Ondosa_max As Single
Dim Ondosa_min As Single
Dim Zennhann_koma_max As Single
Dim Kouhann_koma_max As Single
Dim Zennhann_koma_min As Single
Dim Kouhann_koma_min As Single
Dim Zennhann_nissuu As Single
Dim Kouhann_nissuu As Single
Dim Today_max As Single
Dim Today_min As Single
Dim Now_temp As Word
Dim Upkoma_day As Single
Dim Downkoma_day As Single
Dim Ondosa_day As Single
Dim Nissuu As Single
Dim Jikan As Single
Dim Upjikan As Single
Dim Downjikan As Single
Dim Para2(8) As Byte
Dim In2_10min As Byte
Dim In2_min As Byte
Dim In2_10sec As Byte
Dim In2_1sec As Byte
Dim In2_noise As Byte
Dim In2_sdcard As Byte
Dim In2_errorstop As Byte
Dim In2_errorlcd As Byte
In2_10min = 1
In2_min = 2
In2_10sec = 3
In2_1sec = 4
In2_noise = 5
In2_sdcard = 6
In2_errorstop = 7
In2_errorlcd = 8
Para2(in2_10min) = 0
Para2(in2_min) = 1
Para2(in2_10sec) = 0
Para2(in2_1sec) = 1
Para2(in2_noise) = 1
Para2(in2_sdcard) = 1
Para2(in2_errorstop) = 0
Para2(in2_errorlcd) = 0
Dim Str_para2(8) As String * 10
Str_para2(in2_10min) = "10min"
Str_para2(in2_min) = "1min"
Str_para2(in2_10sec) = "10sec"
Str_para2(in2_1sec) = "2sec"
Str_para2(in2_noise) = "Noise"
Str_para2(in2_sdcard) = "SD Write "
Str_para2(in2_errorstop) = "Error Stop"
Str_para2(in2_errorlcd) = "Error LCD"
Dim Para(19) As Integer
Dim In_summer_max As Byte
Dim In_summer_min As Byte
Dim In_winter_max As Byte
Dim In_winter_min As Byte
Dim In_max_time As Byte
Dim In_min_time As Byte
Dim In_temp_fluct As Byte
Dim In_coldhot_difference As Byte
Dim In_error_temp As Byte
Dim In_error_tempcool As Byte
Dim In_year As Byte
Dim In_month As Byte
Dim In_day As Byte
Dim In_hour As Byte
Dim In_min As Byte
Dim In_summerpoint As Byte
Dim In_winterpoint As Byte
Dim In_cooleron As Byte
Dim In_heateron As Byte
In_year = 1
In_month = 2
In_day = 3
In_hour = 4
In_min = 5
In_summer_max = 6
In_summer_min = 7
In_winter_max = 8
In_winter_min = 9
In_max_time = 10
In_min_time = 11
In_temp_fluct = 12
In_coldhot_difference = 13
In_error_temp = 14
In_error_tempcool = 15
In_summerpoint = 16
In_winterpoint = 17
In_cooleron = 18
In_heateron = 19
_year = 10
_month = 10
_day = 1
_hour = 0
_min = 1
Para(in_year) = _year
Para(in_month) = _month
Para(in_day) = _day
Para(in_hour) = _hour
Para(in_min) = _min
Para(in_summer_max) = 290
Para(in_summer_min) = 260
Para(in_winter_max) = 250
Para(in_winter_min) = 230
Para(in_max_time) = 14
Para(in_min_time) = 5
Para(in_temp_fluct) = 1
Para(in_coldhot_difference) = 20
Para(in_error_temp) = 295
Para(in_error_tempcool) = 210
Para(in_summerpoint) = 220
Para(in_winterpoint) = 30
Para(in_cooleron) = 1
Para(in_heateron) = 1
Dim Str_para(19) As String * 16
Str_para(in_year) = "Year"
Str_para(in_month) = "Month"
Str_para(in_day) = "Day"
Str_para(in_hour) = "Hour"
Str_para(in_min) = "Minute"
Str_para(in_summer_max) = "Summer MaxTemp"
Str_para(in_summer_min) = "Summer MinTemp"
Str_para(in_winter_max ) = "Winter MaxTemp"
Str_para(in_winter_min) = "Winter MinTemp"
Str_para(in_max_time) = "Max_Time"
Str_para(in_min_time) = "Min_Time"
Str_para(in_temp_fluct) = "Temp_fluct"
Str_para(in_coldhot_difference) = "ColdHot_diff"
Str_para(in_error_temp) = "Error MaxTemp"
Str_para(in_error_tempcool) = "Error MinTemp"
Str_para(in_summerpoint) = "SummerPoint"
Str_para(in_winterpoint) = "WinterPoint"
Str_para(in_cooleron) = "Cooler_ON"
Str_para(in_heateron) = "Heater_ON"
Dim Fg_tint1s As Byte
Dim Fg_sw As Bit
'
Dim Txbuff(8) As Byte
Dim Rxbuff(9) As Byte
Dim Temp1 As Byte
Dim Temp2 As Byte
Dim Temp3 As Byte
Dim Temp4 As Byte
Dim Temp11 As Word
Dim Tempi1 As Integer
Dim Templ1 As Long
Dim Tempstr As String * 16
Dim Tempstr2 As String * 16
Dim Tempval As Integer
Dim Fg_tim As Byte
Dim Fg_cool As Bit
Dim Fg_heat As Bit
Dim Cooltemp As Integer
Dim Heattemp As Integer
Dim Errortemp As Integer
Dim Errortempcool As Integer
Dim Coolcou As Byte
Dim Heatcou As Byte
Dim Cooloffcou As Byte
Dim Heatoffcou As Byte
Dim Coolon As Bit
Dim Heaton As Bit
Dim Fg_cooltim As Bit
Dim Fg_heattim As Bit
Dim Cooltim As Long
Dim Heattim As Long
Dim Cooltimold As Long
Dim Heattimold As Long
Dim Fg_old As Bit
Dim Fg_error As Bit
Dim Fg_errorcool As Bit
Dim Fg_error_system As Bit
Dim Tempmax As Integer
Dim Tempmin As Integer
Dim Tempmax_breed As Integer
Dim Tempmin_breed As Integer
Dim Gaikimax As Integer
Dim Gaikimin As Integer
Tempmin = 50
Gaikimin = 50
Dim Fg_dataset As Bit
Fg_dataset = 1
Dim Fg_hourdata As Bit
Dim Fg_nowtemp As Bit
Dim Fg_datacheck As Bit
Dim Maxtem As Integer
Dim Mintem As Integer
Dim Fg_dataset1min As Bit
Dim Fg_dataset10sec As Bit
Dim Fg_dataset10min As Bit
Dim Fg_dataset6sec As Bit
Dim Fg_dataset2sec As Bit
Dim Fg_dataset1sec As Bit
Dim Fg_6sec As Bit
Dim Hi As String * 8
Dim Drive_err As Bit
Dim Dv_check As Byte
' Daydatamax Alias 1
' Hourmax Alias 1
Dim Temp_bifomax As Integer
Dim Temp_bifomin As Integer
Dim Temp_bifomax_breed As Integer
Dim Temp_bifomin_breed As Integer
Dim Temp_cooltim As Integer
Dim Temp_heattim As Integer
Dim Temp_gaikimax As Integer
Dim Temp_gaikimin As Integer
Dim Temp_temp_fluct As Integer
Dim Temp_coldhot_difference As Integer
Dim Str_date As String * 20
Dim Str_bifomax As String * 5
Dim Str_bifomin As String * 5
Dim Str_bifomax_breed As String * 5
Dim Str_bifomin_breed As String * 5
Dim Str_cooltim As String * 5
Dim Str_heattim As String * 5
Dim Str_gaikimax As String * 5
Dim Str_gaikimin As String * 5
' Dim Dat_year_day(daydatamax) As Byte
' Dim Dat_month_day(daydatamax) As Byte
' Dim Dat_day_day(daydatamax) As Byte
' Dim Dat_bifomax(daydatamax) As Integer
' Dim Dat_bifomin(daydatamax) As Integer
' Dim Dat_bifomax_breed(daydatamax) As Integer
' Dim Dat_bifomin_breed(daydatamax) As Integer
' Dim Dat_cooltim(daydatamax) As Integer
' Dim Dat_heattim(daydatamax) As Integer
' Dim Dat_gaikimax(daydatamax) As Integer
' Dim Dat_gaikimin(daydatamax) As Integer
' Dim Dat_temp_fluct(daydatamax) As Integer
' Dim Dat_coldhot_difference(daydatamax) As Integer
'
' Dim Dat_year(hourmax) As Byte
' Dim Dat_month(hourmax) As Byte
' Dim Dat_day(hourmax) As Byte
' Dim Dat_hour(hourmax) As Byte
' Dim Dat_min(hourmax) As Byte
' Dim Dat_set(hourmax) As Integer
' Dim Dat_main(hourmax) As Integer
' Dim Dat_cool(hourmax) As Integer
' Dim Dat_breed(hourmax) As Integer
' Dim Dat_bee(hourmax) As Integer
' Dim Dat_outside(hourmax) As Integer
' Dim Dat_inside(hourmax) As Integer
Dim Temp_set As Integer
Dim Temp_set2 As Integer
Dim Temp_main As Integer
Dim Temp_cool As Integer
Dim Temp_breed As Integer
Dim Temp_bee As Integer
Dim Temp_outside As Integer
Dim Temp_inside As Integer
Dim Temp_set_b As Integer
Dim Temp_main_b As Integer
Dim Temp_cool_b As Integer
Dim Temp_breed_b As Integer
Dim Temp_bee_b As Integer
Dim Temp_outside_b As Integer
Dim Temp_inside_b As Integer
Dim Temp_set_c As Byte
Dim Temp_main_c As Byte
Dim Temp_cool_c As Byte
Dim Temp_breed_c As Byte
Dim Temp_bee_c As Byte
Dim Temp_outside_c As Byte
Dim Temp_inside_c As Byte
Dim Str_set As String * 5
Dim Str_set2 As String * 5
Dim Str_main As String * 5
Dim Str_cool As String * 5
Dim Str_breed As String * 5
Dim Str_bee As String * 5
Dim Str_outside As String * 5
Dim Str_inside As String * 5
Dim Fg_log_day As Bit
Dim Fg_log_hour As Bit
Dim Fg_maxtemp As Bit
Dim Fg_01sec As Bit
Dim Fg_01sec2 As Bit
Dim Fg_01sec3 As Bit
Dim Fg_test As Bit
Dim Fg_datasetday As Bit
Dim Fg_datasethour As Bit
Dim Fg_daydata_sumi As Bit
Dim Fg_hourdata_sumi As Bit
Dim Fg_now As Bit
Dim Fg_hyouji As Byte
Dim In_disp As Byte
Dim Errorval As Integer
Dim Ii As Byte
Dim Errorcou As Byte
Dim Quiccheck As Bit
Dim Hizuke As String * 2
Dim Part As String * 10
Dim Part2 As String * 12
'&&&&&&&&&&&&&&&&&&&
Errmax Alias 8
Dim Errolog(errmax) As String * 16
Dim Errcou2 As Byte
Errcou2 = 1
'&&&&&&&&&&&&&&&&&&&
'TEST********************
If Test = 1 Then
Gosub Nowtempset
Gosub Switch
End If
'***********************
Errskip:
Dim Paralog1(19) As Integer
Dim Paralog2(6) As Integer
Dim Fileari1 As Bit
Dim Fileari2 As Bit
Dim Fg_tic As Bit
Dim Ari As Bit
Dim Sd_ari As Byte
'EEP_ROM********
Gosub Eepread
Gosub Eepold
'***************
'SD_Card********
Initlcd
Display On
If Para2(in2_sdcard) = 1 And Sd_card = 0 Then
Gosub Filecheck
Gosub Paracheck
End If
'***************
Dim Errcou As Byte
Dim Fg_sdcheck As Bit
Gosub Reslcd
Gosub Maxtempclear
Start Timer1
Fg_nowtemp = 1
If Sd_card = 0 Then
Gosub Resetlog_write
End If
'***************
Do
Tes = Tes + 1
#if Simul = 1
Goto Simuskip
#endif
Pow = Getadc(ad_power)
If Pow < 920 Then
If Fg_lowset = 0 Then
Stop Adc
Stop Timer1
Fg_lowset = 1
Gosub Alloff
End If
Power2:
Powersave
If Pt_power = 0 Then
Goto Power2
End If
End If
If Fg_lowset = 1 Then
Start Adc
Waitms 200
Gosub Portset
Gbdriveerror = Driveinit()
Initfile = Initfilesystem(1)
Fg_lowset = 0
Gosub Reslcd
Start Timer1
End If
Simuskip:
Sensor_power = 1
Gosub Eventcheck
If M_power = 1 Then
If Fg_nowtemp = 1 Then
Fg_nowtemp = 0
Gosub Nowtempset
End If
Else
Gosub Alloff2
End If
If Fg_tint1s = 1 Then
Fg_tint1s = 0
Gosub Tempdisp1
Gosub Tempdisp2
Gosub Tempdisp3
Gosub Tempdisp4
Gosub Tempdisp5
Gosub Tempdisp6
Gosub Treadend
Fg_lcd = 1
End If
If Fg_eep = 1 Then
Fg_eep = 0
Gosub Eepcheck
End If
If Fg_reslcd = 1 Then
Gosub Reslcd
Fg_reslcd = 0
End If
If Fg_maxtemp = 1 Then
Fg_maxtemp = 0
Gosub Maxtempsub
End If
If Fg_lcd = 1 Then
Fg_lcd = 0
Gosub Lcdprint
End If
If Fg_01sec = 1 Then
Fg_01sec = 0
If Fg_error = 1 Then
Toggle Led_hot
Toggle Led_no
Led_cool = 0
End If
If Fg_errorcool = 1 Then
Toggle Led_cool
Led_out = 0
Led_hot = 0
Toggle Led_no
End If
If Fg_error_system = 1 Then
Toggle Led_cool
Toggle Led_out
Toggle Led_hot
Toggle Led_no
End If
If M_power = 1 Then
In_disp = In_disp + 1
If In_disp > 6 Then
In_disp = 1
End If
End If
Gosub Switch
End If
If Sd_card = 0 Then
'********************
If _hour = 23 And _min > 58 And _sec > 57 And Fg_daydata_sumi = 0 Then
Fg_daydata_sumi = 1
Fg_datasetday = 1
End If
If _hour < 23 Then
Fg_daydata_sumi = 0
End If
If _min = 0 And _sec < 3 And Fg_hourdata_sumi = 0 Then
Fg_hourdata_sumi = 1
Fg_datasethour = 1
End If
If _sec > 3 Then
Fg_hourdata_sumi = 0
End If
'*********************
End If
Loop
End
'****************************
Resetlog_write:
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
Open "RESETLOG.txt" For Append As #1
Write #1 , _month , _day , _hour , _min , _sec
Close #1
Return
'****************************
Quicsd:
Gbdriveerror = Driveinit()
Initfile = Initfilesystem(1)
Quiccheck = 0
If Gbdriveerror > 0 Or Initfile > 0 Then
Quiccheck = 1
Gosub Sd_check
End If
Return
'****************************
Dim Dvreseterror As Byte
Sd_check:
Errcou = 0
Sd_checkloop:
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then
Errcou = Errcou + 1
If Errcou < 3 Then
Waitms 50
Goto Sd_checkloop
End If
Locate 2 , 1
Lcd "Drive Error "
Fg_sdcheck = 0
Quiccheck = 1
Errcou = 0
Dvreset:
Dvreseterror = Drivereset()
If Dvreseterror > 0 Then
Errcou = Errcou + 1
If Errcou < 3 Then
Waitms 50
Goto Dvreset
End If
Locate 2 , 1
Lcd "DriveINT Error "
Dim Tim As Bit
If Para2(in2_errorstop) = 1 Then
Do
If Sw_mode = 0 Then
Fg_sdcheck = 0
Quiccheck = 1
Exit Do
End If
If Tim = 0 Then
Tim = 1
Tempstring = Str(_hour) + ":" + Str(_min) + ":" + Str(_sec)
'&&&&&&&&&&&&&&&&&&&
Errcou2 = Errcou2 + 1
If Errcou2 <= Errmax Then
Errolog(errcou2) = Str(errcou2) + "D_re" + Tempstring
Else
Errolog(errmax) = Str(errcou2) + "D_re" + Tempstring
End If
'&&&&&&&&&&&&&&&&&&&
End If
Locate 2 , 1
Lcd "DvReset_" ; Str(gbdriveerror) ; " "
Locate 1 , 1
Lcd Part2 ; Tempstring
If Fg_01sec3 = 1 Then
Fg_01sec3 = 0
Goto Sd_check
End If
Loop
End If
Goto Error_skip2
End If
Else
Locate 1 , 1
Lcd "Drive OK "
Fg_sdcheck = 1
Quiccheck = 0
End If
Errcou = 0
Sd_check2:
Initfile = Initfilesystem(1)
If Initfile > 0 Then
Errcou = Errcou + 1
If Errcou < 3 Then
Waitms 50
Goto Sd_check2
End If
Locate 2 , 1
Lcd "System Error "
Fg_sdcheck = 0
Quiccheck = 1
Tim = 0
If Para2(in2_errorstop) = 1 Then
Do
If Sw_mode = 0 Then
Fg_sdcheck = 0
Quiccheck = 1
Exit Do
End If
If Tim = 0 Then
Tim = 1
Tempstring = Str(_hour) + ":" + Str(_min) + ":" + Str(_sec)
'&&&&&&&&&&&&&&&&&&
Errcou2 = Errcou2 + 1
If Errcou2 <= Errmax Then
Errolog(errcou2) = Str(errcou2) + "sys" + Tempstring
Else
Errolog(errmax) = Str(errcou2) + "sys" + Tempstring
End If
'&&&&&&&&&&&&&&&&&&
End If
Locate 2 , 1
Lcd "SysErr_" ; Str(initfile) ; " "
Locate 1 , 1
Lcd Part2 ; Tempstring
If Fg_01sec3 = 1 Then
Fg_01sec3 = 0
Goto Sd_check
End If
Loop
End If
Waitms 500
Goto Error_skip2
Else
Locate 1 , 1
Lcd "System OK "
Fg_sdcheck = 1
Quiccheck = 0
End If
Error_skip2:
Drive_err = Fg_sdcheck
Return
'*******************************
Parawrite:
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
If Para2(in2_errorlcd) = 1 And M_mode = 0 Then
Cls
Lcd "SD Write"
Open "para1.txt" For Output As #1
Cls
Lcd "SD Open"
Write #1 , _year , _month , _day , _hour , _min
Cls
Lcd "SD Close"
Close #1
Cls
Lcd "SD OK"
Else
Open "para1.txt" For Output As #1
Write #1 , _year , _month , _day , _hour , _min
Close #1
End If
Return
'*******************************
Paracheck:
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
Open "PARA1.TXT" For Input As #1
Line Input #1 , Tempstring5
'Get #1 , Tempstring , 1
Close #1
Dim Iii As Integer
Dim Iii2 As Integer
Dim Iii3 As Integer
Dim Ind2 As Integer
Do
Ind2 = Ind2 + 1
Iii = Instr(tempstring5 , ",")
If Iii > 0 Then
Iii2 = Iii - 1
Iii3 = Iii + 1
Tempstring6 = Mid(tempstring5 , 1 , Iii2)
Paralog1(ind2) = Val(tempstring6)
Tempstring5 = Mid(tempstring5 , Iii3)
Else
Paralog1(ind2) = Val(tempstring5)
Exit Do
End If
Loop
Gosub Quicsd
If Quiccheck = 1 Then Return
Open "PARA2.TXT" For Input As #1
Line Input #1 , Tempstring5
'Get #1 , Tempstring , 1
Close #1
Ind2 = 0
Do
Ind2 = Ind2 + 1
Iii = Instr(tempstring5 , ",")
If Iii > 0 Then
Iii2 = Iii - 1
Iii3 = Iii + 1
Tempstring6 = Mid(tempstring5 , 1 , Iii2)
Paralog2(ind2) = Val(tempstring6)
Tempstring5 = Mid(tempstring5 , Iii3)
Else
Paralog2(ind2) = Val(tempstring5)
Exit Do
End If
Loop
For Iii = 1 To 5
Para(iii) = Paralog1(iii)
Cls
Tempstring = Mid(str_para(iii) , 1 , 10)
Lcd Tempstring ; "_" ; Str(para(iii))
Waitms 100
Next
_year = Paralog1(in_year)
_month = Paralog1(in_month)
_day = Paralog1(in_day)
_hour = Paralog1(in_hour)
_min = Paralog1(in_min)
' For Iii = 1 To 6
' Para2(iii) = Paralog2(iii)
'
' Cls
' Lcd Str_para2(iii) ; "_" ; Str(para2(iii))
' Waitms 100
'
' Next
Return
'**********************************
Filecheck:
Fileari1 = 0
Fileari2 = 0
Dim Temstr As String * 15
Dim Ins1 As Integer
Dim Ins2 As Integer
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
Temstr = Dir( "*.*")
While Len(temstr) > 0
Ins1 = Instr(temstr , "para1")
'Ins2 = Instr(temstr , "para2")
If Ins1 > 0 Then
Fileari1 = 1
End If
' If Ins2 > 0 Then
' Fileari2 = 1
' End If
Temstr = Dir()
Wend
Return
'*******************************
Cooltimsub:
Return
'*******************************
Datawrite:
Return
'*******************************
Datsetday:
Part2 = "Datsetday"
Gosub Maxtempsub
Str_date = Str(_year) + "/" + Str(_month) + "/" + Str(_day)
Tempstring = Str(temp_bifomax)
Str_bifomax = Format(tempstring , "0.0")
Tempstring = Str(temp_bifomin)
Str_bifomin = Format(tempstring , "0.0")
Tempstring = Str(temp_bifomax_breed)
Str_bifomax_breed = Format(tempstring , "0.0")
Tempstring = Str(temp_bifomin_breed)
Str_bifomin_breed = Format(tempstring , "0.0")
Tempstring = Str(temp_gaikimax)
Str_gaikimax = Format(tempstring , "0.0")
Tempstring = Str(temp_gaikimin)
Str_gaikimin = Format(tempstring , "0.0")
Str_cooltim = Str(temp_cooltim)
Str_heattim = Str(temp_heattim)
Tempstring = "Day20" + Str(_year) + ".txt"
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
Open Tempstring For Append As #1
Write #1 , Str_date , Str_bifomax , Str_bifomin , Str_bifomax_breed , Str_bifomin_breed , Str_gaikimax , Str_gaikimin , Str_cooltim , Str_heattim , Para(in_temp_fluct) , Para(in_coldhot_difference)
Close #1
Gosub Maxtempclear
Return
'*******************************
Datsethour:
Part2 = "Datsethour"
Str_date = Str(_year) + "/" + Str(_month) + "/" + Str(_day) + " " + Time$
Tempstring = Str(temp_set)
Str_set = Format(tempstring , "0.0")
Tempstring = Str(temp_set2)
Str_set2 = Format(tempstring , "0.0")
Tempstring = Str(temp_main)
Str_main = Format(tempstring , "0.0")
Tempstring = Str(temp_cool)
Str_cool = Format(tempstring , "0.0")
Tempstring = Str(temp_breed)
Str_breed = Format(tempstring , "0.0")
Tempstring = Str(temp_bee)
Str_bee = Format(tempstring , "0.0")
Tempstring = Str(temp_outside)
Str_outside = Format(tempstring , "0.0")
Tempstring = Str(temp_inside)
Str_inside = Format(tempstring , "0.0")
Tempstr = Str(_month)
If Len(tempstr) = 1 Then
Tempstr = "0" + Tempstr
End If
Hizuke = Str(_day)
If Len(hizuke) = 1 Then
Hizuke = "0" + Hizuke
End If
Tempstring1 = "20" + Str(_year)
Tempstring = "1H" + "_" + Tempstr + Hizuke + ".txt"
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
Mkdir Tempstring1
Chdir Tempstring1
If Para2(in2_errorlcd) = 1 And M_mode = 0 Then
Cls
Lcd "Hour Write"
Open Tempstring For Append As #1
Cls
Lcd "Hour Open"
Write #1 , Str_date , Str_set , Str_set2 , Str_main , Str_cool , Str_breed , Str_bee , Str_outside , Str_inside
Cls
Lcd "Hour Close"
Close #1
Cls
Lcd "Hour OK"
Else
Open Tempstring For Append As #1
Write #1 , Str_date , Str_set , Str_set2 , Str_main , Str_cool , Str_breed , Str_bee , Str_outside , Str_inside
Close #1
End If
Return
'*******************************
Datset10min:
Part2 = "Datset10min"
Str_date = Str(_year) + "/" + Str(_month) + "/" + Str(_day) + " " + Time$
Tempstring = Str(temp_set)
Str_set = Format(tempstring , "0.0")
Tempstring = Str(temp_set2)
Str_set2 = Format(tempstring , "0.0")
Tempstring = Str(temp_main)
Str_main = Format(tempstring , "0.0")
Tempstring = Str(temp_cool)
Str_cool = Format(tempstring , "0.0")
Tempstring = Str(temp_breed)
Str_breed = Format(tempstring , "0.0")
Tempstring = Str(temp_bee)
Str_bee = Format(tempstring , "0.0")
Tempstring = Str(temp_outside)
Str_outside = Format(tempstring , "0.0")
Tempstring = Str(temp_inside)
Str_inside = Format(tempstring , "0.0")
Tempstr = Str(_month)
If Len(tempstr) = 1 Then
Tempstr = "0" + Tempstr
End If
Hizuke = Str(_day)
If Len(hizuke) = 1 Then
Hizuke = "0" + Hizuke
End If
Tempstring1 = "20" + Str(_year)
Tempstring = "10m" + "_" + Tempstr + Hizuke + ".txt"
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
Mkdir Tempstring1
Chdir Tempstring1
If Para2(in2_errorlcd) = 1 And M_mode = 0 Then
Cls
Lcd "10min Write"
Open Tempstring For Append As #1
Cls
Lcd "10min Open"
Write #1 , Str_date , Str_set , Str_set2 , Str_main , Str_cool , Str_breed , Str_bee , Str_outside , Str_inside
Cls
Lcd "10min Close"
Close #1
Cls
Lcd "10min OK"
Else
Open Tempstring For Append As #1
Write #1 , Str_date , Str_set , Str_set2 , Str_main , Str_cool , Str_breed , Str_bee , Str_outside , Str_inside
Close #1
End If
Return
'*******************************
Datsetmin:
Part2 = "Datsetmin"
Str_date = Str(_year) + "/" + Str(_month) + "/" + Str(_day) + " " + Time$
Tempstring = Str(temp_set)
Str_set = Format(tempstring , "0.0")
Tempstring = Str(temp_set2)
Str_set2 = Format(tempstring , "0.0")
Tempstring = Str(temp_main)
Str_main = Format(tempstring , "0.0")
Tempstring = Str(temp_cool)
Str_cool = Format(tempstring , "0.0")
Tempstring = Str(temp_breed)
Str_breed = Format(tempstring , "0.0")
Tempstring = Str(temp_bee)
Str_bee = Format(tempstring , "0.0")
Tempstring = Str(temp_outside)
Str_outside = Format(tempstring , "0.0")
Tempstring = Str(temp_inside)
Str_inside = Format(tempstring , "0.0")
Tempstr = Str(_month)
If Len(tempstr) = 1 Then
Tempstr = "0" + Tempstr
End If
Hizuke = Str(_day)
If Len(hizuke) = 1 Then
Hizuke = "0" + Hizuke
End If
Tempstring1 = "20" + Str(_year)
Tempstring = "1m" + "_" + Tempstr + Hizuke + ".txt"
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
Mkdir Tempstring1
Chdir Tempstring1
If Para2(in2_errorlcd) = 1 And M_mode = 0 Then
Cls
Lcd "1min Write"
Open Tempstring For Append As #1
Cls
Lcd "1min Open"
Write #1 , Str_date , Str_set , Str_set2 , Str_main , Str_cool , Str_breed , Str_bee , Str_outside , Str_inside
Cls
Lcd "1min Close"
Close #1
Cls
Lcd "1min OK"
Else
Open Tempstring For Append As #1
Write #1 , Str_date , Str_set , Str_set2 , Str_main , Str_cool , Str_breed , Str_bee , Str_outside , Str_inside
Close #1
End If
Return
'*******************************
Dataset10sec:
Part2 = "Dataset10sec"
Str_date = Str(_year) + "/" + Str(_month) + "/" + Str(_day) + " " + Time$
Tempstring = Str(temp_set)
Str_set = Format(tempstring , "0.0")
Tempstring = Str(temp_set2)
Str_set2 = Format(tempstring , "0.0")
Tempstring = Str(temp_main)
Str_main = Format(tempstring , "0.0")
Tempstring = Str(temp_cool)
Str_cool = Format(tempstring , "0.0")
Tempstring = Str(temp_breed)
Str_breed = Format(tempstring , "0.0")
Tempstring = Str(temp_bee)
Str_bee = Format(tempstring , "0.0")
Tempstring = Str(temp_outside)
Str_outside = Format(tempstring , "0.0")
Tempstring = Str(temp_inside)
Str_inside = Format(tempstring , "0.0")
Tempstr = Str(_month)
If Len(tempstr) = 1 Then
Tempstr = "0" + Tempstr
End If
Hizuke = Str(_day)
If Len(hizuke) = 1 Then
Hizuke = "0" + Hizuke
End If
Tempstring1 = "20" + Str(_year)
Tempstring = "10s" + "_" + Tempstr + Hizuke + ".txt"
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
Mkdir Tempstring1
Chdir Tempstring1
If Para2(in2_errorlcd) = 1 And M_mode = 0 Then
Cls
Lcd "10sec Write"
Open Tempstring For Append As #1
Cls
Lcd "10sec Open"
Write #1 , Str_date , Str_set , Str_set2 , Str_main , Str_cool , Str_breed , Str_bee , Str_outside , Str_inside
Cls
Lcd "10sec Close"
Close #1
Cls
Lcd "10sec OK"
Else
Open Tempstring For Append As #1
Write #1 , Str_date , Str_set , Str_set2 , Str_main , Str_cool , Str_breed , Str_bee , Str_outside , Str_inside
Close #1
End If
Return
'*******************************
Dataset6sec:
Part2 = "Dataset6sec"
Str_date = Str(_year) + "/" + Str(_month) + "/" + Str(_day) + " " + Time$
Tempstring = Str(temp_set)
Str_set = Format(tempstring , "0.0")
Tempstring = Str(temp_set2)
Str_set2 = Format(tempstring , "0.0")
Tempstring = Str(temp_main)
Str_main = Format(tempstring , "0.0")
Tempstring = Str(temp_cool)
Str_cool = Format(tempstring , "0.0")
Tempstring = Str(temp_breed)
Str_breed = Format(tempstring , "0.0")
Tempstring = Str(temp_bee)
Str_bee = Format(tempstring , "0.0")
Tempstring = Str(temp_outside)
Str_outside = Format(tempstring , "0.0")
Tempstring = Str(temp_inside)
Str_inside = Format(tempstring , "0.0")
Tempstr = Str(_month)
If Len(tempstr) = 1 Then
Tempstr = "0" + Tempstr
End If
Hizuke = Str(_day)
If Len(hizuke) = 1 Then
Hizuke = "0" + Hizuke
End If
Tempstring1 = "20" + Str(_year)
Tempstring = "6s" + "_" + Tempstr + Hizuke + ".txt"
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
Initfile = Initfilesystem(1)
Mkdir Tempstring1
Chdir Tempstring1
Open Tempstring For Append As #1
Write #1 , Str_date , Str_set , Str_set2 , Str_main , Str_cool , Str_breed , Str_bee , Str_outside , Str_inside
Close #1
Return
'*******************************
Data1sec:
Part2 = "Data1sec"
Str_date = Str(_year) + "/" + Str(_month) + "/" + Str(_day) + " " + Time$
Tempstring = Str(temp_set)
Str_set = Format(tempstring , "0.0")
Tempstring = Str(temp_set2)
Str_set2 = Format(tempstring , "0.0")
Tempstring = Str(temp_main)
Str_main = Format(tempstring , "0.0")
Tempstring = Str(temp_cool)
Str_cool = Format(tempstring , "0.0")
Tempstring = Str(temp_breed)
Str_breed = Format(tempstring , "0.0")
Tempstring = Str(temp_bee)
Str_bee = Format(tempstring , "0.0")
Tempstring = Str(temp_outside)
Str_outside = Format(tempstring , "0.0")
Tempstring = Str(temp_inside)
Str_inside = Format(tempstring , "0.0")
Tempstr = Str(_month)
If Len(tempstr) = 1 Then
Tempstr = "0" + Tempstr
End If
Hizuke = Str(_day)
If Len(hizuke) = 1 Then
Hizuke = "0" + Hizuke
End If
Tempstring1 = "20" + Str(_year)
Tempstring = "1s" + "_" + Tempstr + Hizuke + ".txt"
Gbdriveerror = Driveinit()
If Gbdriveerror > 0 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
Mkdir Tempstring1
Chdir Tempstring1
If Para2(in2_errorlcd) = 1 And M_mode = 0 Then
Cls
Lcd "1sec Write"
Open Tempstring For Append As #1
Cls
Lcd "1sec Open"
Write #1 , Str_date , Str_set , Str_set2 , Str_main , Str_cool , Str_breed , Str_bee , Str_outside , Str_inside
Cls
Lcd "1sec Close"
Close #1
Cls
Lcd "1sec OK"
Else
Open Tempstring For Append As #1
Write #1 , Str_date , Str_set , Str_set2 , Str_main , Str_cool , Str_breed , Str_bee , Str_outside , Str_inside
Close #1
End If
Return
'*******************************
Silial:
Do
Display On
Initlcd
1wreset
If Err = 0 Then
1wwrite &H33
Rxbuff(1) = 1wread(8)
'
Temp1 = Crc8(rxbuff(1) , 8)
If Temp1 = 0 Then
Locate 1 , 1
Lcd "ID: ";
For Temp1 = 1 To 4
Lcd Hex(rxbuff(temp1)) ; " ";
Next Temp1
Locate 2 , 5
For Temp1 = 5 To 8
Lcd Hex(rxbuff(temp1)) ; " ";
Next Temp1
Else
Locate 1 , 1
Lcd "ID: CRC Error."
End If
Else
Locate 1 , 1
Lcd "ID: not found."
End If
Wait 1
If Sw_enter = 0 Then
Exit Do
End If
Loop
Return
'*******************************
Dayset:
_year = Para(in_year)
_month = Para(in_month)
_day = Para(in_day)
_hour = Para(in_hour)
_min = Para(in_min)
Return
'*******************************
Switch:
Cooltemp = Now_temp + Para(in_temp_fluct)
Heattemp = Now_temp - Para(in_coldhot_difference)
Heattemp = Heattemp - Para(in_temp_fluct)
Errortemp = Para(in_error_temp)
Errortempcool = Para(in_error_tempcool)
If Temp11 < 1 Or Temp11 > 500 Then
Fg_error_system = 1
Return
Else
Fg_error_system = 0
End If
If Errortemp < Temp11 Then
Fg_error = 1
Else
Fg_error = 0
End If
If Errortempcool > Temp11 Then
Fg_errorcool = 1
Else
Fg_errorcool = 0
End If
If Fg_error = 1 Or Fg_errorcool = 1 Then
'Led_out = 1
Else
Led_out = 0
End If
If Cooltemp < Temp11 Then
If Fg_cool = 1 Then
Coolcou = Coolcou + 1
Else
Coolcou = 0
End If
Fg_cool = 1
Fg_heat = 0
Else
If Cooltemp >= Temp11 Then
Cooloffcou = Cooloffcou + 1
Fg_cool = 0
Else
Cooloffcou = 0
End If
End If
If Heattemp > Temp11 Then
If Fg_heat = 1 Then
Heatcou = Heatcou + 1
Else
Heatcou = 0
End If
Fg_cool = 0
Fg_heat = 1
Else
If Heattemp <= Temp11 Then
Fg_heat = 0
Heatoffcou = Heatoffcou + 1
Else
Heatoffcou = 0
End If
End If
If Coolcou > 2 Then
Coolcou = 0
Coolon = 1
End If
If Cooloffcou > 2 Then
Cooloffcou = 0
Coolon = 0
End If
If Heatcou > 2 Then
Heatcou = 0
Heaton = 1
End If
If Heatoffcou > 2 Then
Heatoffcou = 0
Heaton = 0
End If
If Coolon = 1 Then
If Para(in_cooleron) = 1 Then
Cool = 1
Else
Cool = 0
End If
Heat = 0
Else
If Heaton = 1 Then
If Para(in_heateron) = 1 Then
Heat = 1
Else
Heat = 0
End If
Cool = 0
Else
Cool = 0
Heat = 0
End If
End If
Fg_cooltim = Cool
Fg_heattim = Heat
If Fg_error = 0 And Fg_errorcool = 0 Then
If Cool = 1 Then
If Para(in_cooleron) = 1 Then
Led_cool = 1
Else
Led_cool = 0
End If
Led_no = 0
Led_hot = 0
Else
If Heat = 1 Then
Led_cool = 0
Led_no = 0
If Para(in_heateron) = 1 Then
Led_hot = 1
Else
Led_hot = 0
End If
Else
Led_cool = 0
Led_no = 1
Led_hot = 0
End If
End If
Else
End If
Return
'*******************************
'*******************************
Tempdisp1:
#if Test22 = 1
Restore Devid07
#else
Restore Devid01
#endif
Part = "Main"
Gosub Treadsub
Tempsingle = Val(tempstr)
Temp11 = Tempsingle * 10
If Para2(in2_noise) = 1 Then
Temp_main = Tempval
Else
'**********************************
If Tempval > 0 And Tempval < 500 Then
Tempinteger = Temp_main_b - Tempval
Tempinteger = Abs(tempinteger)
If Tempinteger < 10 Then
Temp_main = Tempval
Temp_main_b = Tempval
Else
Temp_main_c = Temp_main_c + 1
End If
If Temp_main_c > 3 Then
Temp_main_c = 0
Temp_main = Tempval
Temp_main_b = Tempval
End If
End If
'**********************************
End If
If Tempmax < Temp_main And Temp_main < 500 Then
Tempmax = Temp_main
End If
If Tempmin > Temp_main And Temp_main > 0 Then
Tempmin = Temp_main
End If
'Goto Tempdisp2
'Gosub Treadend
Return
'********************************************
Tempdisp2:
'****************
#if Test22 = 1
Restore Devid06
#else
Restore Devid02
#endif
'****************
Part = "Cool"
Gosub Treadsub
If Para2(in2_noise) = 1 Then
Temp_cool = Tempval
Else
'**********************************
If Tempval > 0 And Tempval < 500 Then
Tempinteger = Temp_cool_b - Tempval
Tempinteger = Abs(tempinteger)
If Tempinteger < 10 Then
Temp_cool = Tempval
Temp_cool_b = Tempval
Else
Temp_cool_c = Temp_cool_c + 1
End If
If Temp_cool_c > 3 Then
Temp_cool_c = 0
Temp_cool = Tempval
Temp_cool_b = Tempval
End If
End If
'**********************************
End If
'Temp_cool = Temp_cool - Temp_main
'Goto Tempdisp3
'Gosub Treadend
Return
'********************************************
Tempdisp3:
'****************
#if Test22 = 1
Restore Devid07
#else
Restore Devid03
#endif
'****************
Part = "Breed"
Gosub Treadsub
If Para2(in2_noise) = 1 Then
Temp_breed = Tempval
Else
'**********************************
If Tempval > 0 And Tempval < 500 Then
Tempinteger = Temp_breed_b - Tempval
Tempinteger = Abs(tempinteger)
If Tempinteger < 10 Then
Temp_breed = Tempval
Temp_breed_b = Tempval
Else
Temp_breed_c = Temp_breed_c + 1
End If
If Temp_breed_c > 3 Then
Temp_breed_c = 0
Temp_breed = Tempval
Temp_breed_b = Tempval
End If
End If
'**********************************
End If
'Goto Tempdisp4
'Gosub Treadend
Return
'********************************************
Tempdisp4:
'****************
#if Test22 = 1
Restore Devid07
#else
Restore Devid04
#endif
'****************
Part = "Bee"
Gosub Treadsub
If Para2(in2_noise) = 1 Then
Temp_bee = Tempval
Else
'**********************************
If Tempval > 0 And Tempval < 500 Then
Tempinteger = Temp_bee_b - Tempval
Tempinteger = Abs(tempinteger)
If Tempinteger < 10 Then
Temp_bee = Tempval
Temp_bee_b = Tempval
Else
Temp_bee_c = Temp_bee_c + 1
End If
If Temp_bee_c > 3 Then
Temp_bee_c = 0
Temp_bee = Tempval
Temp_bee_b = Tempval
End If
End If
'**********************************
End If
'Goto Tempdisp5
'Gosub Treadend
Return
'********************************************
Tempdisp5:
'****************
#if Test22 = 1
Restore Devid06
#else
Restore Devid05
#endif
'****************
Part = "OutSide"
Gosub Treadsub
If Para2(in2_noise) = 1 Then
Temp_outside = Tempval
Else
'**********************************
If Tempval > 0 And Tempval < 500 Then
Tempinteger = Temp_outside_b - Tempval
Tempinteger = Abs(tempinteger)
If Tempinteger < 10 Then
Temp_outside = Tempval
Temp_outside_b = Tempval
Else
Temp_outside_c = Temp_outside_c + 1
End If
If Temp_outside_c > 3 Then
Temp_outside_c = 0
Temp_outside = Tempval
Temp_outside_b = Tempval
End If
End If
'**********************************
End If
'Goto Tempdisp6
'Gosub Treadend
Return
'********************************************
Tempdisp6:
'****************
#if Test22 = 1
Restore Devid06
#else
Restore Devid06
#endif
'****************
Part = "InSide"
Gosub Treadsub
If Para2(in2_noise) = 1 Then
Temp_inside = Tempval
Else
'**********************************
If Tempval > 0 And Tempval < 500 Then
Tempinteger = Temp_inside_b - Tempval
Tempinteger = Abs(tempinteger)
If Tempinteger < 10 Then
Temp_inside = Tempval
Temp_inside_b = Tempval
Else
Temp_inside_c = Temp_inside_c + 1
End If
If Temp_inside_c > 3 Then
Temp_inside_c = 0
Temp_inside = Tempval
Temp_inside_b = Tempval
End If
End If
'**********************************
End If
If Tempmax_breed < Temp_breed And Temp_breed < 500 Then
Tempmax_breed = Temp_breed
End If
If Tempmin_breed > Temp_breed And Temp_breed > 0 Then
Tempmin_breed = Temp_breed
End If
If Gaikimax < Temp_outside And Temp_outside < 500 Then
Gaikimax = Temp_outside
End If
If Gaikimin > Temp_outside And Temp_outside > 0 Then
Gaikimin = Temp_outside
End If
'Gosub Treadend
Return
'*******************************
Treadend:
1wreset
' 1wwrite &H55
' 1wwrite Txbuff(1) , 8
1wwrite &HCC
1wwrite &H44
Config 1w_dq = Output
Config 1w_pulup = Output
Set 1w_dq
1w_pulup = 1
Return
'*******************************
Treadsub:
For Temp1 = 1 To 8
Read Temp2
Txbuff(temp1) = Temp2
Next Temp1
Temp3 = 0
'*******************************
Treadsub1:
1w_pulup = 0
1wreset
If Err = 1 Then Goto Treadsub2
'
1wwrite &H55
1wwrite Txbuff(1) , 8
'
1wwrite &HBE
Rxbuff(1) = 1wread(9)
'
Temp1 = Crc8(rxbuff(1) , 9)
If Temp1 <> 0 Then Goto Treadsub3
'
Tempi1 = Makeint(rxbuff(1) , Rxbuff(2))
Templ1 = Tempi1 * 625
Templ1 = Templ1 / 1000
Tempval = Templ1
Tempstr2 = Str(templ1)
Tempstr = Format(tempstr2 , " 0.0") ' + "゜C"
Goto Skip
Error_skip:
Tempval = Errorval
Skip:
Return
'*******************************
Error_led:
If M_mode <> 0 Then Return
Dim I As Byte
For I = 0 To 13
Toggle Led_cool
Toggle Led_out
Toggle Led_hot
Toggle Led_no
Waitms 50
Next
Return
'*******************************
Treadsub2:
Tempstr = " Not found"
Errorval = -11
'*******************************
Treadsub4:
Temp3 = Temp3 + 1
If Temp3 < 3 Then Goto Treadsub1
Goto Error_skip
Return
'*******************************
Treadsub3:
Tempstr = " CRC Error"
Errorval = -22
Goto Treadsub4
Return
'*******************************
Nowtempset:
Ondosa_max = Para(in_summer_max) - Para(in_winter_max)
Tempsingle = 365 - Para(in_summerpoint)
Tempsingle = Tempsingle + Para(in_winterpoint)
Kouhann_nissuu = Tempsingle
Kouhann_koma_max = Ondosa_max / Kouhann_nissuu
Zennhann_nissuu = Para(in_summerpoint) - Para(in_winterpoint)
Zennhann_koma_max = Ondosa_max / Zennhann_nissuu
Ondosa_min = Para(in_summer_min) - Para(in_winter_min)
Zennhann_koma_min = Ondosa_min / Zennhann_nissuu
Kouhann_koma_min = Ondosa_min / Kouhann_nissuu
Tempword = Dayofyear()
If Tempword > Para(in_winterpoint) And Tempword < Para(in_summerpoint) Then
Nissuu = Tempword - Para(in_winterpoint)
Tempsingle = Nissuu * Zennhann_koma_max
Today_max = Tempsingle + Para(in_winter_max)
Tempsingle = Nissuu * Zennhann_koma_min
Today_min = Tempsingle + Para(in_winter_min)
Else
If Tempword <= Para(in_winterpoint) Then
Nissuu = Para(in_winterpoint) - Tempword
Tempsingle = Nissuu * Kouhann_koma_max
Today_max = Para(in_winter_max) + Tempsingle
Tempsingle = Nissuu * Kouhann_koma_min
Today_min = Para(in_winter_min) + Tempsingle
Else
Nissuu = Tempword - Para(in_summerpoint)
Tempsingle = Nissuu * Kouhann_koma_max
Today_max = Para(in_summer_max) - Tempsingle
Tempsingle = Nissuu * Kouhann_koma_min
Today_min = Para(in_summer_min) - Tempsingle
End If
End If
If Fg_dataset = 1 Then
Maxtem = Today_max
Mintem = Today_min
End If
Ondosa_day = Today_max - Today_min
Upjikan = Para(in_max_time) - Para(in_min_time)
Upjikan = Upjikan * 60
Tempsingle = 24 - Para(in_max_time)
Downjikan = Tempsingle + Para(in_min_time)
Downjikan = Downjikan * 60
Upkoma_day = Ondosa_day / Upjikan
Downkoma_day = Ondosa_day / Downjikan
If _hour > Para(in_min_time) And _hour < Para(in_max_time) Then
Jikan = _hour - Para(in_min_time)
Jikan = Jikan * 60
Jikan = Jikan + _min
Tempsingle = Jikan * Upkoma_day
Now_temp = Tempsingle + Today_min
Else
If _hour <= Para(in_min_time) Then
Jikan = Para(in_min_time) - _hour
Jikan = Jikan * 60
Jikan = Jikan - _min
Tempsingle = Jikan * Downkoma_day
Now_temp = Tempsingle + Today_min
Else
Jikan = _hour - Para(in_max_time)
Jikan = Jikan * 60
Jikan = Jikan + _min
Tempsingle = Jikan * Downkoma_day
Now_temp = Today_max - Tempsingle
End If
End If
Tempsingle = Now_temp / 10
Temp_set = Now_temp
Temp_set2 = Temp_set - Para(in_coldhot_difference)
Return
'*******************************
Reslcd:
Initlcd
Cursor Off
Return
'*******************************
Alloff:
Porta = &B00000000
Portb = &B00000000
Portc = &B00000000
Portd = &B00000000
Return
'*******************************
Portset:
Config Porta = &B11100110
Config Portb = &B11111111
Config Portc = &B11101100
Config Portd = &B00011111
Portb = &B00000000
Portc = &B00000011
Portd = &B11100000
Gosub Sdreset
Wait 1
Sensor_power = 1
Return
'*****************************
Sdreset:
Config Pind.0 = Output
Set Mmc_cs
Config Pind.1 = Output
Set Pind.1
Config Pinc.3 = Input
Config Pinc.2 = Output
Set Pinc.2
Config Pinc.4 = Input
Set Sd_card
Return
'*******************************
Alloff2:
Led_high = 0
Led_mid = 0
Led_night = 0
Fg_led_high = 0
Fg_led_mid = 0
Fg_led_night = 0
Cool = 0
Led_out = 0
Heat = 0
Ac_out1 = 0
Ac_out2 = 0
O_led7 = 0
1w_pulup = 0
Sensor_power = 0
Led_no = 0
Led_hot = 0
Led_cool = 0
Return
'*******************************
Eepread:
Tempinteger = X_summer_max
If Tempinteger >= 0 Then
Para(in_summer_max) = X_summer_max
End If
Tempinteger = X_summer_min
If Tempinteger >= 0 Then
Para(in_summer_min) = X_summer_min
End If
Tempinteger = X_winter_max
If Tempinteger >= 0 Then
Para(in_winter_max) = X_winter_max
End If
Tempinteger = X_winter_min
If Tempinteger >= 0 Then
Para(in_winter_min) = X_winter_min
End If
Tempinteger = X_max_time
If Tempbyte >= 0 Then
Para(in_max_time) = X_max_time
End If
Tempinteger = X_min_time
If Tempinteger >= 0 Then
Para(in_min_time) = X_min_time
End If
Tempinteger = X_temp_fluct
If Tempinteger >= 0 Then
Para(in_temp_fluct) = X_temp_fluct
End If
Tempinteger = X_coldhot_difference
If Tempinteger >= 0 Then
Para(in_coldhot_difference) = X_coldhot_difference
End If
Tempinteger = X_error_temp
If Tempinteger >= 0 Then
Para(in_error_temp) = X_error_temp
End If
Tempbyte = X_10min
If Tempbyte = 0 Or Tempbyte = 1 Then
Para2(in2_10min) = X_10min
End If
Tempbyte = X_1min
If Tempbyte = 0 Or Tempbyte = 1 Then
Para2(in2_min) = X_1min
End If
Tempbyte = X_10sec
If Tempbyte = 0 Or Tempbyte = 1 Then
Para2(in2_10sec) = X_10sec
End If
Tempbyte = X_1sec
If Tempbyte = 0 Or Tempbyte = 1 Then
Para2(in2_1sec) = X_1sec
End If
Tempbyte = X_noise
If Tempbyte = 0 Or Tempbyte = 1 Then
Para2(in2_noise) = X_noise
End If
Tempbyte = X_sdcard
If Tempbyte = 0 Or Tempbyte = 1 Then
Para2(in2_sdcard) = X_sdcard
End If
Return
'*******************************
Eepwrite:
If Y_summer_max <> Para(in_summer_max) Then
X_summer_max = Para(in_summer_max)
End If
If Y_summer_min <> Para(in_summer_min) Then
X_summer_min = Para(in_summer_min)
End If
If Y_winter_max <> Para(in_winter_max) Then
X_winter_max = Para(in_winter_max)
End If
If Y_winter_min <> Para(in_winter_min) Then
X_winter_min = Para(in_winter_min)
End If
If Y_max_time <> Para(in_max_time) Then
X_max_time = Para(in_max_time)
End If
If Y_min_time <> Para(in_min_time ) Then
X_min_time = Para(in_min_time )
End If
If Y_temp_fluct <> Para(in_temp_fluct) Then
X_temp_fluct = Para(in_temp_fluct)
End If
If Y_coldhot_difference <> Para(in_coldhot_difference) Then
X_coldhot_difference = Para(in_coldhot_difference)
End If
If Y_error_temp <> Para(in_error_temp) Then
X_error_temp = Para(in_error_temp)
End If
If Y_10min <> Para2(in2_10min) Then
X_10min = Para2(in2_10min)
End If
If Y_1min <> Para2(in2_min) Then
X_1min = Para2(in2_min)
End If
If Y_10sec <> Para2(in2_10sec) Then
X_10sec = Para2(in2_10sec)
End If
If Y_1sec <> Para2(in2_1sec) Then
X_1sec = Para2(in2_1sec)
End If
If Y_noise <> Para2(in2_noise) Then
X_noise = Para2(in2_noise)
End If
If Y_sdcard <> Para2(in2_sdcard) Then
X_sdcard = Para2(in2_sdcard)
End If
Gosub Eepold
Return
'*******************************
Eepold:
Y_summer_max = Para(in_summer_max)
Y_summer_min = Para(in_summer_min)
Y_winter_max = Para(in_winter_max)
Y_winter_min = Para(in_winter_min)
Y_max_time = Para(in_max_time)
Y_min_time = Para(in_min_time)
Y_temp_fluct = Para(in_temp_fluct)
Y_coldhot_difference = Para(in_coldhot_difference)
Y_error_temp = Para(in_error_temp)
Y_10min = Para2(in2_10min)
Y_1min = Para2(in2_min)
Y_10sec = Para2(in2_10sec)
Y_1sec = Para2(in2_1sec)
Y_noise = Para2(in2_noise)
Y_sdcard = Para2(in2_sdcard)
Return
'*******************************
Eepcheck:
If C_eep > 1200 Then
Gosub Eepwrite
C_eep = 0
End If
Return
'*******************************
Eepdeb:
Dim Wai As Integer
Wai = 1000
Dim Temlcd As Integer
Temlcd = X_summer_max
Cls
Locate 1 , 1
Lcd "summer_max " + Str(temlcd)
Waitms Wai
Cls
Temlcd = X_summer_min
Cls
Locate 1 , 1
Lcd "summer_min " + Str(temlcd)
Waitms Wai
Cls
Temlcd = X_winter_max
Cls
Locate 1 , 1
Lcd "winter_max " + Str(temlcd)
Waitms Wai
Cls
Temlcd = X_winter_min
Cls
Locate 1 , 1
Lcd "winter_min " + Str(temlcd)
Waitms Wai
Cls
Temlcd = X_max_time
Cls
Locate 1 , 1
Lcd "max_time " + Str(temlcd)
Waitms Wai
Cls
Temlcd = X_min_time
Cls
Locate 1 , 1
Lcd "min_time " + Str(temlcd)
Waitms Wai
Cls
Temlcd = X_temp_fluct
Cls
Locate 1 , 1
Lcd "temp_fluct " + Str(temlcd)
Waitms Wai
Cls
Temlcd = X_coldhot_difference
Cls
Locate 1 , 1
Lcd "coldhot_difference " + Str(temlcd)
Waitms Wai
Cls
Temlcd = X_error_temp
Cls
Locate 1 , 1
Lcd "error_temp " + Str(temlcd)
Waitms Wai
Cls
Return
'*******************************
Testsub:
Tt = 3
Tt1 = 3
Tt2 = 3
Tt3 = 6
Tt_tuch = 10
Tt_mk = 30
Return
'*******************************
Eventcheck:
'##################
Dim Modoru As Bit
'##################
Debounce Sw_power , 0 , Power_on , Sub
'******************
'####################
If Sw_mode = 1 And Sw_enter = 1 And Modoru = 1 Then
Modoru = 0
Mode_s = 0
End If
If Modoru = 1 Then
Return
End If
'####################
If Sw_mode = 0 Then
' Locate 2 , 1
' Lcd "cm_" ; C_m ; "mkc_" ; Mk_c
C_m = C_m + 1
If C_m < Tt Then
Return
End If
If Mk_s = 0 Then
Gosub Mode_keep
End If
If Mode_s = 0 Then
Mode_s = 1
End If
'#################
If Sw_enter = 0 Then
M_mode = 0
M_mode2 = 0
Fg_lcd = 1
Modoru = 1
End If
'#################
Else
If Mk_s = 0 Then
If Mode_s = 1 Then
If C_m > 70 Then
Gosub Mode_kup
C_m = 0
End If
End If
End If
C_m = 0
Mode_s = 0
Mk_c = 0
Mk_s = 0
End If
Gosub Tuchcheck
'******************
Debounce Sw_up , 0 , Up_on , Sub
If Sw_up = 0 Then
'C_tuch = 0
C_u = C_u + 1
Select Case M_mode
Case 0
If C_u < Tt_up2 Then
Return
End If
Case 1
If C_u < Tt Then
Return
End If
End Select
If Uk_s = 0 Then
Gosub Up_keep
End If
Else
C_u = 0
Uk_s = 0
Uk_c = 0
Up_s = 0
End If
'******************
Debounce Sw_down , 0 , Down_on , Sub
If Sw_down = 0 Then
'C_tuch = 0
C_d = C_d + 1
Select Case M_mode
Case 0
If C_d < Tt_up2 Then
Return
End If
Case 1
If C_d < Tt Then
Return
End If
End Select
If Dk_s = 0 Then
Gosub Down_keep
End If
Else
C_d = 0
Dk_c = 0
Dk_s = 0
Down_s = 0
End If
If Modoru = 0 Then
'******************
Debounce Sw_enter , 0 , Enter_on , Sub
'******************
End If
Return
'*******************************
Power_on:
If M_power = 0 Then
M_power = 1
'Led_power = 1
Start Timer0
Else
M_power = 0
'Led_power = 0
Stop Timer0
End If
Fg_lcd = 1
Return
'*******************************
Tuchcheck:
' Locate 1 , 1
' Lcd C_tuch ; " "
If Sw_mode = 0 Then
C_tuch = 0
C_modetuch = 0
Return
End If
If Sw_up = 0 Then
C_tuch = 0
Return
End If
If Sw_down = 0 Then
C_tuch = 0
Return
End If
If Sw_enter = 0 Then
C_tuch = 0
Return
End If
If M_mode <> 0 Then
If C_tuch > Tt_tuch Then
C_tuch = 0
M_mode = 0
M_mode2 = 0
Fg_lcd = 1
End If
End If
If C_modetuch > 200 Then
Fg_hyouji = 0
End If
Return
'*******************************
Mode_keep:
'Mk_c = Mk_c + 1
'****************
If Test = 1 Then
Tt_mk = 10
End If
'****************
If Mk_c > Tt_mk Then
Mk_s = 1
If M_mode = 0 Then
M_mode = 1
Lcd11 = Str_para(1)
Tempstring = Str(para(1))
Lcd21 = Tempstring
Elseif M_mode = 1 Then
M_mode = 2
Lcd11 = Str_para2(m_reg3)
Lcd21 = Str(para2(m_reg3))
End If
C_tuch = 0
Fg_lcd = 1
End If
Return
'*******************************
Mode_kup:
Select Case M_mode
Case 0
Fg_hyouji = Fg_hyouji + 1
C_modetuch = 0
If Fg_hyouji > 9 Then
Fg_hyouji = 0
End If
Case 1
M_reg2 = M_reg2 + 1
If M_reg2 > 19 Then
M_reg2 = 1
End If
Lcd11 = Str_para(m_reg2)
Tempstring = Str(para(m_reg2))
If M_reg2 >= In_summer_max And M_reg2 <= In_winter_min Then
Lcd21 = Format(tempstring , "0.0")
Else
If M_reg2 >= In_temp_fluct And M_reg2 <= In_error_tempcool Then
Lcd21 = Format(tempstring , "0.0")
Else
Lcd21 = Tempstring
End If
End If
If M_reg2 >= In_year And M_reg2 <= In_min Then
If M_reg2 = In_year Then
Para(m_reg2) = _year
End If
If M_reg2 = In_month Then
Para(m_reg2) = _month
End If
If M_reg2 = In_day Then
Para(m_reg2) = _day
End If
If M_reg2 = In_hour Then
Para(m_reg2) = _hour
End If
If M_reg2 = In_min Then
Para(m_reg2) = _min
End If
Lcd21 = Str(para(m_reg2))
End If
Case 2
M_reg3 = M_reg3 + 1
If M_reg3 > 8 Then
M_reg3 = 1
End If
Lcd11 = Str_para2(m_reg3)
Lcd21 = Str(para2(m_reg3))
End Select
Fg_lcd = 1
Return
'*******************************
Up_on:
'C_tuch = 0
Select Case M_mode
Case 0
Select Case M_mode2
Case 0
Case 1
Para(in_summer_max) = Para(in_summer_max) + 1
Para(in_summer_min) = Para(in_summer_min) + 1
Para(in_winter_max) = Para(in_winter_max) + 1
Para(in_winter_min) = Para(in_winter_min) + 1
Gosub Nowtempset
End Select
Case 1
Para(m_reg2) = Para(m_reg2) + 1
If M_reg2 = In_year Then
_year = Para(m_reg2)
End If
If M_reg2 = In_month Then
If Para(m_reg2) > 12 Then
Para(m_reg2) = 12
End If
_month = Para(m_reg2)
End If
If M_reg2 = In_day Then
If Para(m_reg2) > 31 Then
Para(m_reg2) = 0
End If
_day = Para(m_reg2)
End If
If M_reg2 = In_hour Then
If Para(m_reg2) > 23 Then
Para(m_reg2) = 0
End If
_hour = Para(m_reg2)
End If
If M_reg2 = In_min Then
If Para(m_reg2) > 59 Then
Para(m_reg2) = 0
End If
_min = Para(m_reg2)
End If
If M_reg2 = In_summerpoint Then
If Para(m_reg2) > 364 Then
Para(m_reg2) = 0
End If
End If
Lcd11 = Str_para(m_reg2)
Tempstring = Str(para(m_reg2))
If M_reg2 <= 5 Then
Lcd21 = Tempstring
Gosub Dayset
End If
If M_reg2 >= 6 And M_reg2 <= 9 Then
Lcd21 = Format(tempstring , "0.0")
End If
If M_reg2 >= 10 And M_reg2 <= 11 Then
Lcd21 = Tempstring
End If
If M_reg2 >= 12 And M_reg2 <= 13 Then
Lcd21 = Format(tempstring , "0.0")
End If
If M_reg2 >= 14 Then
Lcd21 = Tempstring
End If
Case 2
Para2(m_reg3) = Para2(m_reg3) + 1
If Para2(m_reg3) > 1 Then
Para2(m_reg3) = 0
End If
If M_reg3 = In2_sdcard Then
If Para2(in2_sdcard) = 0 Then
Gosub Sd_log_clear
End If
End If
Lcd11 = Str_para2(m_reg3)
Lcd21 = Str(para2(m_reg3))
End Select
Fg_lcd = 1
Fg_eep = 1
Return
'*******************************
Down_on:
'C_tuch = 0
Select Case M_mode
Case 0
Select Case M_mode2
Case 0
Case 1
Para(in_summer_max) = Para(in_summer_max) - 1
Para(in_summer_min) = Para(in_summer_min) - 1
Para(in_winter_max) = Para(in_winter_max) - 1
Para(in_winter_min) = Para(in_winter_min) - 1
Gosub Nowtempset
End Select
Case 1
Para(m_reg2) = Para(m_reg2) - 1
If M_reg2 = In_year Then
_year = Para(m_reg2)
End If
If M_reg2 = In_month Then
If Para(m_reg2) < 1 Then
Para(m_reg2) = 12
End If
_month = Para(m_reg2)
End If
If M_reg2 = In_day Then
If Para(m_reg2) < 0 Then
Para(m_reg2) = 31
End If
_day = Para(m_reg2)
End If
If M_reg2 = In_hour Then
If Para(m_reg2) < 0 Then
Para(m_reg2) = 23
End If
_hour = Para(m_reg2)
End If
If M_reg2 = In_min Then
If Para(m_reg2) < 0 Then
Para(m_reg2) = 59
End If
_min = Para(m_reg2)
End If
If M_reg2 = In_summerpoint Then
If Para(m_reg2) < 0 Then
Para(m_reg2) = 364
End If
End If
Lcd11 = Str_para(m_reg2)
Tempstring = Str(para(m_reg2))
If M_reg2 <= 5 Then
Lcd21 = Tempstring
Gosub Dayset
End If
If M_reg2 >= 6 And M_reg2 <= 9 Then
Lcd21 = Format(tempstring , "0.0")
End If
If M_reg2 >= 10 And M_reg2 <= 11 Then
Lcd21 = Tempstring
End If
If M_reg2 >= 12 And M_reg2 <= 13 Then
Lcd21 = Format(tempstring , "0.0")
End If
If M_reg2 >= 14 Then
Lcd21 = Tempstring
End If
Case 2
Para2(m_reg3) = Para2(m_reg3) - 1
If Para2(m_reg3) > 1 Then
Para2(m_reg3) = 0
End If
If M_reg3 = In2_sdcard Then
If Para2(in2_sdcard) = 0 Then
Gosub Sd_log_clear
End If
End If
Lcd11 = Str_para2(m_reg3)
Lcd21 = Str(para2(m_reg3))
End Select
Fg_lcd = 1
Fg_eep = 1
Return
'*******************************
Up_keep:
Select Case M_mode
Case 0
M_mode2 = 1
Case 1
Uk_c = Uk_c + 1
If Uk_c > Tt1 Then
Gosub Up_on
'Fg_lcd = 1
Uk_c = Tt1
Uk_c_long = Uk_c_long + 1
Waitms 50
Fg_eep = 1
End If
End Select
Return
'*******************************
Down_keep:
Select Case M_mode
Case 0
M_mode2 = 1
Case 1
Dk_c = Dk_c + 1
If Dk_c > Tt1 Then
Gosub Down_on
'Fg_lcd = 1
Dk_c = Tt1
Dk_c_long = Dk_c_long + 1
Waitms 50
Fg_eep = 1
End If
End Select
Return
'*******************************
Enter_on:
Gosub Eepwrite
Return
'*******************************
Sd_log_clear:
Gosub Quicsd
If Quiccheck = 1 Then Return
Initfile = Initfilesystem(1)
If Initfile > 0 Then Return
Open "para1.txt" For Output As #1
Close #1
Open "para2.txt" For Output As #1
Close #1
Return
'*******************************
Lcdprint:
If Lcdoff = 1 Then
Return
End If
If M_power = 0 Then
Cls
Lcd12 = "OFF"
Locate 1 , 7
Lcd Lcd12
Return
End If
Select Case M_mode
Display On
Case 0
Select Case M_mode2
Case 0
'Cls
Locate 1 , 1
'Lcd Lcd_temp_a
Tempstring = Str(temp_main)
Tempstring = Format(tempstring , "0.0")
Lcd Tempstring ; " "
Locate 1 , 5
'Lcd Lcd_temp_now
Tempstring = Str(now_temp)
Tempstring = Format(tempstring , "0.0")
Tempstring = "(" + Tempstring
Lcd Tempstring ; " "
Locate 1 , 10
Lcd ")"
Locate 1 , 11
Lcd " "
Locate 1 , 12
'Lcd Lcd_time
Tempstring = Str(_hour) + ":" + Str(_min)
Lcd Tempstring ; " "
Locate 2 , 1
If Fg_tim > 4 Then
Fg_tim = 0
End If
Select Case Fg_hyouji
Case 0
Select Case Fg_tim
Case 0
'Lcd "Cool " ; Lcd_temp_b ; "゜C "
Tempstring = Str(temp_cool)
Tempstring = Format(tempstring , "0.0")
Lcd "Main " ; Tempstring ; "゜C "
Case 1
'Lcd "Breeding " ; Lcd_temp_c ; "゜C "
Tempstring = Str(temp_breed)
Tempstring = Format(tempstring , "0.0")
Lcd "Breeding " ; Tempstring ; "゜C "
Case 2
'Lcd "Bee " ; Lcd_temp_d ; "゜C "
Tempstring = Str(temp_bee)
Tempstring = Format(tempstring , "0.0")
Lcd "Bee " ; Tempstring ; "゜C "
Case 3
'Lcd "Outside " ; Lcd_temp_e ; "゜C "
Tempstring = Str(temp_outside)
Tempstring = Format(tempstring , "0.0")
Lcd "Outside " ; Tempstring ; "゜C "
Case 4
'Lcd "Inside " ; Lcd_temp_f ; "゜C "
Tempstring = Str(temp_inside)
Tempstring = Format(tempstring , "0.0")
Lcd "Inside " ; Tempstring ; "゜C "
End Select
Case 1
Tempstring = Str(temp_cool)
Tempstring = Format(tempstring , "0.0")
Lcd "Main " ; Tempstring ; "゜C " "
Case 2
'Lcd "Breeding " ; Lcd_temp_c ; "゜C "
Tempstring = Str(temp_breed)
Tempstring = Format(tempstring , "0.0")
Lcd "Breeding " ; Tempstring ; "゜C "
Case 3
'Lcd "Bee " ; Lcd_temp_d ; "゜C "
Tempstring = Str(temp_bee)
Tempstring = Format(tempstring , "0.0")
Lcd "Bee " ; Tempstring ; "゜C "
Case 4
'Lcd "Outside " ; Lcd_temp_e ; "゜C "
Tempstring = Str(temp_outside)
Tempstring = Format(tempstring , "0.0")
Lcd "Outside " ; Tempstring ; "゜C "
Case 5
'Lcd "Inside " ; Lcd_temp_f ; "゜C "
Tempstring = Str(temp_inside)
Tempstring = Format(tempstring , "0.0")
Lcd "Inside " ; Tempstring ; "゜C "
Case 6
Toggle Fg_now
Cls
Dim C_timnow As String * 5
Dim H_timnow As String * 5
Templong = Cooltim / 120
C_timnow = Str(templong)
Dim C_tim As Long
C_tim = Cooltimold / 120
Templong = Heattim / 120
H_timnow = Str(templong)
Dim H_tim As Long
H_tim = Heattimold / 120
Locate 1 , 1
If Fg_now = 1 Then
Lcd "Cy_" ; Str(c_tim) ; " Hy_" ; Str(h_tim)
Else
Lcd "Ct_" ; C_timnow ; " Ht_" ; H_timnow
End If
Locate 2 , 1
Tempstring = Str(tempmax)
Tempstring2 = Format(tempstring , "0.0")
Tempstring = Str(tempmin)
Tempstring3 = Format(tempstring , "0.0")
Lcd "Mx_" ; Tempstring2 ; " Min_" ; Tempstring3
Case 7
Cls
Tempsingle = Today_max / 10
Tempstring = Str(tempsingle)
Tempstring2 = Format(tempstring , "0.0")
Tempsingle = Today_min / 10
Tempstring = Str(tempsingle)
Tempstring3 = Format(tempstring , "0.0")
Lcd "Today_" ; Left(tempstring3 , 4) ; "~" ; Left(tempstring2 , 4)
Locate 2 , 1
Tempstring = Str(now_temp)
Tempstring4 = Format(tempstring , "0.0")
Lcd "NowSet_" ; Tempstring4
Case 8
Cls
Tempstring = Str(para(in_winter_min))
Tempstring1 = Format(tempstring , "0.0")
Tempstring = Str(para(in_winter_max))
Tempstring2 = Format(tempstring , "0.0")
Tempstring = Str(para(in_summer_min))
Tempstring3 = Format(tempstring , "0.0")
Tempstring = Str(para(in_summer_max))
Tempstring4 = Format(tempstring , "0.0")
Locate 1 , 1
Lcd "Win_" ; Tempstring1 ; "~" ; Tempstring2
Locate 2 , 1
Lcd "Sum_" ; Tempstring3 ; "~" ; Tempstring4
Case 9
'&&&&&&&&&&&&&&&&&&&&
Dim Error_c As Byte
If Error_c < 1 Then Error_c = 1
If Error_c > Errmax Then Error_c = 1
If Errolog(error_c) <> "" Then
Locate 1 , 1
Lcd "ErrorLog "
Locate 2 , 1
Lcd Errolog(error_c) + " "
Error_c = Error_c + 1
Else
Locate 1 , 1
Lcd "Error Nothing"
Locate 2 , 1
Lcd " "
End If
'&&&&&&&&&&&&&&&&&&&&
End Select
Case 1
Cls
Locate 1 , 5
Tempstring = Str(now_temp)
Tempstring = Format(tempstring , "0.0")
Tempstring = Mid(tempstring , 1 , 5)
Lcd Tempstring
Locate 1 , 10
Lcd ")"
End Select
Case 1
Cls
Locate 1 , 1
Lcd Lcd11
Locate 2 , 1
Lcd Lcd21
Case 2
Cls
Locate 1 , 1
Lcd Lcd11
Locate 2 , 1
Lcd Lcd21
Case 3
End Select
Return
'*******************************
Maxtempsub:
Temp_bifomax = Tempmax
Temp_bifomin = Tempmin
Temp_bifomax_breed = Tempmax_breed
Temp_bifomin_breed = Tempmin_breed
Temp_cooltim = Cooltimold / 120
Temp_heattim = Heattimold / 120
Temp_gaikimax = Gaikimax
Temp_gaikimin = Gaikimin
Return
'*******************************
Maxtempclear:
Cooltim = 0
Heattim = 0
Tempmax = 0
Tempmin = 500
Tempmax_breed = 0
Tempmin_breed = 500
Gaikimax = 0
Gaikimin = 500
Return
'*******************************
Powercheck:
If M_power = 1 Then
Else
Gosub Alloff2
End If
Return
'*******************************
Tim_on:
Return
'*******************************
Int_sub:
Return
'*****************************
Sectic:
'Fg_tic = 1
Return
'*****************************
Tim2:
Fg_test = 1
C_1sec = C_1sec + 1
C_2sec = C_2sec + 1
C_3sec = C_3sec + 1
C_5sec = C_5sec + 1
C_6sec = C_6sec + 1
C_10sec = C_10sec + 1
C_1min = C_1min + 1
C_10min = C_10min + 1
If C_1sec > 2 Then
C_1sec = 0
C_tuch = C_tuch + 1
C_modetuch = C_modetuch + 1
Mk_c = Mk_c + 1
Fg_01sec = 1
Fg_01sec2 = 1
Fg_01sec3 = 1
End If
If C_2sec > 4 Then
C_2sec = 0
Fg_dataset2sec = 1
'Fg_reslcd = 1
Fg_tint1s = 1
Fg_tim = Fg_tim + 1
If Sd_card = 0 Then
If Para2(in2_sdcard) = 1 Then
Gosub Parawrite
End If
If Fg_dataset2sec = 1 Then
Fg_dataset2sec = 0
If Para2(in2_1sec) = 1 Then
' Locate 1 , 1
' Lcd "1sec_Write "
Gosub Data1sec
End If
End If
End If
End If
If C_3sec > 6 Then
C_3sec = 0
Fg_sw = 1
End If
If C_5sec > 10 Then
C_5sec = 0
End If
If C_6sec > 60 Then
C_6sec = 0
Fg_6sec = 1
Fg_dataset6sec = 1
Fg_datacheck = 1
End If
If C_10sec > 20 Then
C_10sec = 0
Fg_nowtemp = 1
Fg_dataset10sec = 1
Fg_maxtemp = 1
If Sd_card = 0 Then
If Para2(in2_10sec) = 1 Then
Gosub Dataset10sec
End If
End If
End If
If C_1min > 120 Then
C_1min = 0
If Sd_card = 0 Then
If Para2(in2_min) = 1 Then
Gosub Datsetmin
End If
If Fg_datasetday = 1 Then
Fg_datasetday = 0
Gosub Datsetday
Dim I2 As Byte
For I2 = 1 To Errmax
Errolog(i2) = ""
Next
Errcou2 = 1
End If
If Fg_datasethour = 1 Then
Fg_datasethour = 0
Gosub Datsethour
End If
End If
End If
If C_10min > 1200 Then
C_10min = 0
If Sd_card = 0 Then
If Para2(in2_10min) = 1 Then
Gosub Datset10min
End If
End If
End If
If Fg_cooltim = 1 Then
Cooltim = Cooltim + 1
End If
If Fg_heattim = 1 Then
Heattim = Heattim + 1
End If
If Fg_eep = 1 Then
C_eep = C_eep + 1
Else
C_eep = 0
End If
Return
'*****************************
Devid01:
Data &H28 , &H18 , &H7A , &HB2 , &H01 , &H00 , &H00 , &H09
Devid02:
Data &H28 , &HC6 , &H06 , &HB1 , &H01 , &H00 , &H00 , &H1A
Devid03:
Data &H28 , &HA6 , &H5A , &HB2 , &H01 , &H00 , &H00 , &HE5
Devid04:
Data &H28 , &H9A , &H89 , &HB2 , &H01 , &H00 , &H00 , &H65
Devid05:
Data &H28 , &H92 , &H9F , &HB1 , &H01 , &H00 , &H00 , &HAC
Devid06:
Data &H28 , &H93 , &H1A , &HB0 , &H01 , &H00 , &H00 , &H0D
Devid07:
Data &H28 , &HDD , &HEB , &HB0 , &H01 , &H00 , &H00 , &H00