reprap: Delete mongoose
[simavr] / examples / board_reprap / src / heatpot.h
1 /*
2         heatpot.h
3
4         Copyright 2008-2012 Michel Pollet <buserror@gmail.com>
5
6         This file is part of simavr.
7
8         simavr is free software: you can redistribute it and/or modify
9         it under the terms of the GNU General Public License as published by
10         the Free Software Foundation, either version 3 of the License, or
11         (at your option) any later version.
12
13         simavr is distributed in the hope that it will be useful,
14         but WITHOUT ANY WARRANTY; without even the implied warranty of
15         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16         GNU General Public License for more details.
17
18         You should have received a copy of the GNU General Public License
19         along with simavr.  If not, see <http://www.gnu.org/licenses/>.
20  */
21
22
23 #ifndef __HEATPOT_H___
24 #define __HEATPOT_H___
25
26 #include "sim_irq.h"
27
28 enum {
29         IRQ_HEATPOT_TALLY = 0,          // heatpot_data_t
30         IRQ_HEATPOT_TEMP_OUT,           // Celcius * 256
31         IRQ_HEATPOT_COUNT
32 };
33
34 typedef union {
35         int32_t sid : 8, cost;
36         uint32_t v;
37 } heatpot_data_t;
38
39 typedef struct heatpot_t {
40         avr_irq_t *     irq;            // irq list
41         struct avr_t * avr;
42         char name[32];
43
44         struct { int sid; float cost; } tally[32];
45
46         float ambiant;
47         float current;
48
49         avr_cycle_count_t       cycle;
50 } heatpot_t, *heatpot_p;
51
52 void
53 heatpot_init(
54                 struct avr_t * avr,
55                 heatpot_p p,
56                 const char * name,
57                 float ambiant );
58
59 void
60 heatpot_tally(
61                 heatpot_p p,
62                 int sid,
63                 float cost );
64
65 #endif /* __HEATPOT_H___ */