/
PioTask.c
56 lines (48 loc) · 1.37 KB
/
PioTask.c
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
#include "PioTask.h"
#include "Heater.h"
static PioCommandTask pioApp;
uint8 patterns[] = { PWM0, PWM10, PWM20, PWM30, PWM40, PWM50, PWM60, PWM70, PWM80, PWM90, PWM100 };
void InitPioTask()
{
/* Set up task 1 handler */
pioApp.task.handler = PioTaskHandler;
pioApp.new_heater_state = Heater0;
MessagePioTask(&pioApp.task);
PioSetDir(0x03, 0x03);
PioSet(0x03, 0);
MessageSend( &pioApp.task, NewHeaterState, 0);
}
/* Task handler function */
void PioTaskHandler(Task task, MessageId id, Message message)
{
switch(id)
{
case NewHeaterState:
{
ledsPlay(patterns[(int)pioApp.new_heater_state]);
pioApp.heater_state = pioApp.new_heater_state;
DEBUG(("NewHeaterState state = %d\n", (int) pioApp.new_heater_state));
}
break;
case RequestTemperature:
break;
default:
/* An unexpected message has arrived - must handle it */
DEBUG(("pio app - msg type not yet handled 0x%x\n", id));
break;
}
}
int16 GetTemperature()
{
return 0;
}
HeaterState GetBootHeater()
{
return pioApp.heater_state;
}
void SetBootHeater(uint16 newState)
{
pioApp.new_heater_state = patterns[newState/10];
/*Message* msg = (Message*) newState;*/
MessageSend( &pioApp.task, NewHeaterState, 0);
}