Srccodetst

From MCS Wiki
Revision as of 13:21, 19 May 2015 by Admin (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

'-------------------------------------------------------------- ' Thomas Jensen | uCtrl.net '-------------------------------------------------------------- ' file: AVR_FTU_v_2.0 ' date: 15/03/2007 '-------------------------------------------------------------- $regfile = "M8def.dat" $crystal = 1000000 Config Watchdog = 1024 Config Portb.0 = Output Config Portb.1 = Output Config Portb.2 = Output Config Portb.3 = Input Config Portb.4 = Input Config Portb.5 = Input Config Portb.6 = Input Config Portb.7 = Input Dim Lifesignal As Integer Dim W As Word , Volt As Word , Temp As Word Dim C_vifte1 As Byte , C_vifte2 As Byte , Set_fan As Byte Dim C_alarm1 As Byte , C_alarm2 As Byte , Set_alarm As Byte Dim Alarmled As Integer , Cls_timer As Integer , Alarm_timer As Integer Dim Eeprom_save As Integer , Eeprom_fan As Eram Byte , Eeprom_alarm As Eram Byte Dim Alarm_timer2 As Integer , Fan_speed As Byte , Temp_timer As Byte Dim Fan_delay As Integer , Fan_delay2 As Integer Dim Fan_timer As Integer , Fan_timer2 As Integer

Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up Ddrb.1 = 1 Ddrb.2 = 1 Pwm1a = 255 Pwm1b = 255

Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.6 , Rs = Portd.7 Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc

Lifesignal = 21 Alarmled = 0 Eeprom_save = 0 C_vifte1 = 0 C_vifte2 = 0 C_alarm1 = 0 C_alarm2 = 0 Cls_timer = 50 Alarm_timer = 0 Fan_speed = 0 Fan_delay = 0 Fan_timer = 0 Temp_timer = 10

'get eeprom values Set_fan = Eeprom_fan If Set_fan > 50 Or Set_fan < 10 Then Set_fan = 30 Set_alarm = Eeprom_alarm If Set_alarm > 50 Or Set_alarm < 10 Then Set_alarm = 32

Cls Cursor Off Deflcdchar 1 , 32 , 32 , 32 , 7 , 4 , 6 , 4 , 7 'e-sign Deflcdchar 2 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32 'blank

'turn off alarm Pwm1b = 0

Locate 1 , 1 Lcd "Fan & Temp Unit!" Locate 2 , 5 Lcd "SW v.2.0" Waitms 2000 Cls Locate 1 , 1 Lcd "uCtrl.net" Locate 2 , 1 Lcd "System start =)" Waitms 2000 Cls Locate 1 , 5 Lcd "F:" Locate 1 , 11 Lcd "A:" Locate 2 , 1 Lcd "Fan:" Locate 1 , 1 Lcd "?C"

'turn off alarm Pwm1b = 255

Start Watchdog

Main: 'cls timer If Cls_timer > 0 Then Decr Cls_timer If Cls_timer = 0 Then

  Cls
  Locate 1 , 1
  Lcd Temp ; "C"
  Locate 1 , 5
  Lcd "F:"
  Locate 1 , 11
  Lcd "A:"
  Locate 2 , 1
  Lcd "Fan:"
  Cls_timer = 50
  End If

'check temp If Temp_timer > 0 Then Decr Temp_timer If Temp_timer = 0 Then

  W = Getadc(0)
  Volt = W * 5
  Temp = Volt / 10
  Temp_timer = 100
  End If

'show set points Locate 1 , 7 Lcd Set_fan ; "C" Locate 1 , 13 Lcd Set_alarm ; "C"

'set fan If Fan_delay = 0 Then Fan_speed = 0

If Temp < Set_fan Then

  If Fan_delay = 0 Then Fan_speed = 0
  Fan_timer = 0
  End If

If Temp = Set_fan And Fan_speed <> 3 Then

  Fan_speed = 1
  Fan_delay = 600
  If Fan_timer < 300 Then Incr Fan_timer
     If Fan_timer = 300 Then
     Fan_speed = 2
     Fan_delay = 600
     End If
  End If

If Temp > Set_fan Then

  Fan_speed = 3
  Fan_delay = 600
  Fan_timer = 300
  End If

'fan timers If Fan_delay > 0 Then Decr Fan_delay

'set fan speed If Pinb.5 = 0 Then Fan_speed = Fan_speed + 2 If Fan_speed > 3 Then Fan_speed = 3 If Fan_speed = 0 Then Pwm1a = 255 If Fan_speed = 1 Then Pwm1a = 170 If Fan_speed = 2 Then Pwm1a = 105 If Fan_speed = 3 Then Pwm1a = 0 Locate 2 , 5 Lcd Fan_speed If Pinb.5 = 0 Then

  Locate 2 , 7
  Lcd "F"
  End If

'set fan temp If Pinb.3 = 1 Then C_vifte1 = 0 If Pinb.3 = 0 And C_vifte1 = 0 Then

  C_vifte1 = 1
  Set_fan = Set_fan + 1
  Eeprom_save = 3000
  End If

If Pinb.4 = 1 Then C_vifte2 = 0 If Pinb.4 = 0 And C_vifte2 = 0 Then

  C_vifte2 = 1
  Set_fan = Set_fan - 1
  Eeprom_save = 3000
  End If

'set alarm temp If Pinb.6 = 1 Then C_alarm1 = 0 If Pinb.6 = 0 And C_alarm1 = 0 Then

  C_alarm1 = 1
  Set_alarm = Set_alarm + 1
  Eeprom_save = 3000
  End If

If Pinb.7 = 1 Then C_alarm2 = 0 If Pinb.7 = 0 And C_alarm2 = 0 Then

  C_alarm2 = 1
  Set_alarm = Set_alarm - 1
  Eeprom_save = 3000
  End If

'set main temp_alarm If Temp >= Set_alarm And Alarm_timer < 300 Then Alarm_timer = Alarm_timer + 1 If Alarm_timer = 300 And Alarmled = 0 Then Alarmled = 6 If Temp < Set_alarm Then Alarm_timer = 0

'alarmled If Alarmled > 0 Then Alarmled = Alarmled - 1 If Alarmled = 4 Then Pwm1b = 0 If Alarmled = 1 Then Pwm1b = 255

'eeprom save If Eeprom_save > 0 Then

  Eeprom_save = Eeprom_save - 1
  Locate 1 , 16
  Lcd Chr(1)
  End If

If Eeprom_save = 1 Then

  Eeprom_fan = Set_fan
  Eeprom_alarm = Set_alarm
  Locate 1 , 16
  Lcd Chr(2)
  End If

'show timers Locate 2 , 15 Alarm_timer2 = Alarm_timer / 10 Lcd Alarm_timer2 Locate 2 , 9 Fan_delay2 = Fan_delay / 10 Lcd Fan_delay2 Locate 2 , 12 Fan_timer2 = Fan_timer / 10 Lcd Fan_timer2

'lifesignal If Lifesignal > 0 Then Lifesignal = Lifesignal - 1 If Lifesignal = 6 Then Portb.0 = 1 If Lifesignal = 1 Then Portb.0 = 0 If Lifesignal = 0 Then Lifesignal = 21

Reset Watchdog Waitms 100 Goto Main End

Personal tools
Namespaces
Variants
Actions
Navigation
Language