EE445M RTOS
Taken at the University of Texas Spring 2015
switchpp.hpp
Go to the documentation of this file.
1 /* -*- mode: c++; c-basic-offset: 4; */
2 #ifndef __lswitchpp__
3 #define __lswitchpp__
4 
5 #include <stdbool.h>
6 #include <stdint.h>
7 
8 #include "semaphorepp.hpp"
9 #include "timerpp.hpp"
10 #include "interruptable.hpp"
11 
12 #include "driverlib/gpio.h"
13 
14 typedef uint32_t memory_address_t;
15 
16 class lswitch : public interruptable {
17 private:
22 public:
24  lswitch();
25  lswitch(memory_address_t lswitch_base, memory_address_t lswitch_pin,
26  semaphore *sem, timer_t timer_id, subtimer_t timer_subtimer,
27  uint32_t switch_interrupt, uint32_t interrupt_mask = GPIO_BOTH_EDGES,
28  bool start = false);
29 
30  virtual void start(void);
31  virtual void stop(void);
32  virtual uint32_t ack(void);
33 
34  void debounce(void);
35  uint32_t end_debounce(void);
36 
38  uint32_t sample(void);
39 
40  uint32_t debounced_data;
41 };
42 
43 #endif /* __LSWITCHPP__ */
44 
45 /* Local Variables: */
46 /* firestarter: (compile "make -k -j32 -C ~/workspace/ee445m-labs/build/") */
47 /* End: */
uint32_t memory_address_t
Definition: adcpp.hpp:16
memory_address_t pin
Definition: switchpp.hpp:19
uint8_t timer_t
Definition: timerpp.hpp:20
uint32_t end_debounce(void)
Definition: switchpp.cpp:74
uint32_t memory_address_t
Definition: switchpp.hpp:14
uint32_t debounced_data
Definition: switchpp.hpp:40
virtual uint32_t ack(void)
Definition: switchpp.cpp:83
semaphore * sem
Definition: switchpp.hpp:20
uint32_t sample(void)
Definition: switchpp.cpp:88
virtual void stop(void)
Definition: switchpp.cpp:59
lswitch()
Definition: switchpp.cpp:15
virtual void start(void)
Definition: switchpp.cpp:54
uint32_t subtimer_t
Definition: timerpp.hpp:21
timer tim
Definition: switchpp.hpp:21
void debounce(void)
Definition: switchpp.cpp:65
memory_address_t base
Definition: switchpp.hpp:18