人気ブログランキング | 話題のタグを見る

OceanBlue


リーフタンクでクイーンエンゼルのペアリング
by masaX
最新の記事
2023年捕獲群 記録
at 2023-04-14 22:01
2023年群入居
at 2023-04-14 21:56
シュワルベ ワンをチューブレス化
at 2022-12-25 17:20
ずんぐりむっくり
at 2021-08-29 10:08
コンチネンタル GP5000..
at 2021-06-19 15:15
コンチネンタル GP5000..
at 2021-06-02 10:08
コンチネンタル GP5000..
at 2021-06-01 08:22
カテゴリ
外部リンク
フォロー中のブログ
検索
以前の記事
2023年 04月
2022年 12月
2021年 08月
2021年 06月
2021年 05月
2021年 04月
2021年 03月
2021年 02月
2021年 01月
2020年 11月
2020年 08月
2020年 07月
2020年 05月
2020年 03月
2020年 02月
2020年 01月
2019年 11月
2019年 10月
2019年 09月
2019年 08月
2019年 07月
2019年 06月
2019年 05月
2019年 04月
2019年 03月
2019年 01月
2018年 12月
2018年 11月
2018年 10月
2018年 09月
2018年 08月
2018年 07月
2018年 06月
2018年 05月
2018年 04月
2018年 03月
2018年 02月
2018年 01月
2017年 12月
2017年 11月
2017年 10月
2017年 09月
2017年 08月
2017年 07月
2017年 06月
2017年 05月
2017年 04月
2017年 03月
2017年 02月
2017年 01月
2016年 12月
2016年 11月
2016年 10月
2016年 09月
2016年 08月
2016年 07月
2016年 06月
2016年 05月
2016年 04月
2016年 03月
2016年 02月
2016年 01月
2015年 12月
2015年 11月
2015年 10月
2015年 09月
2015年 08月
2015年 07月
2015年 06月
2015年 05月
2015年 04月
2015年 03月
2015年 02月
2015年 01月
2014年 12月
2014年 11月
2014年 10月
2014年 09月
2014年 08月
2014年 07月
2014年 06月
2014年 05月
2014年 04月
2014年 03月
2014年 02月
2014年 01月
2013年 12月
2013年 11月
2013年 10月
2013年 09月
2013年 08月
2013年 07月
2013年 06月
2013年 05月
2013年 04月
2013年 03月
2013年 02月
2013年 01月
2012年 12月
2012年 11月
2012年 10月
2012年 09月
2012年 08月
2012年 07月
2012年 06月
2012年 05月
2012年 04月
2012年 03月
2012年 02月
2012年 01月
2011年 12月
2011年 11月
2011年 10月
2011年 09月
2011年 08月
2011年 07月
2011年 06月
2011年 05月
2011年 04月
2011年 03月
2011年 02月
2011年 01月
2010年 12月
2010年 11月
2010年 10月
2010年 09月
2010年 08月
2010年 07月
2010年 06月
2010年 05月
2010年 04月
2010年 03月
2010年 02月
2010年 01月
2009年 12月
2009年 11月
2009年 10月
2009年 09月
2009年 08月
2009年 07月
2009年 06月
2009年 05月
2009年 04月
2009年 03月
2009年 02月
2009年 01月
2008年 12月
2008年 11月
2008年 10月
2008年 09月
2008年 08月
2008年 07月
2008年 06月
2008年 05月
2008年 04月
2008年 03月
2008年 02月
2008年 01月
2007年 12月
2007年 11月
2007年 10月
2007年 09月
2000年 01月
その他のジャンル

ちょっと恥ずかしいですが公開します

ちょっと恥ずかしいですが公開します_e0359523_12491710.jpg



ちょっと恥ずかしいですが公開します_e0359523_12491784.jpg



ちょっと恥ずかしいですが公開します_e0359523_12491815.jpg





ちょっと恥ずかしいですが公開します_e0359523_12491870.jpg



ちょっと恥ずかしいですが公開します_e0359523_12491877.jpg



ここからプログラム↓







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













by masax7790 | 2010-11-05 21:42 | 自動変温サーモスタット(変温君)作製(自作)
<< 復活させてやる 種類によっては危険 >>