summaryrefslogtreecommitdiff
path: root/trunk/software/firmware/FiveD_GCode/FiveD_GCode_Interpreter/bed.h
blob: eaee70da4615718a27d12c4d87e97fc94488fd1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
 * This controld the heated bed (if any).
 */

#ifndef BED_H
#define BED_H

#if MOTHERBOARD != 2  

class bed
{
  
public:
   bed(byte heat, byte temp);
   void waitForTemperature();
   
   void setTemperature(int temp);
   int getTemperature();
   void slowManage();
   void manage();
   void shutdown();
 
private:

//   int targetTemperature;
   int count;
   int oldT, newT;
   long manageCount;
   
   PIDcontrol* bedPID;    // Temperature control - extruder...

   int sampleTemperature();
   void controlTemperature();
   void temperatureError(); 

// The pins we control
   byte heater_pin,  temp_pin;
 
};

inline void bed::slowManage()
{
  manageCount = 0;  

  controlTemperature();
}

inline void bed::manage()
{
  manageCount++;
  if(manageCount > SLOW_CLOCK)
    slowManage();   
}

// Stop everything

inline void bed::shutdown()
{
  setTemperature(0);
  bedPID->shutdown();
}

inline void bed::setTemperature(int tp)
{
  bedPID->setTarget(tp);
}

inline int bed::getTemperature()
{
  return bedPID->temperature();  
}


#endif
#endif