EE445M RTOS
Taken at the University of Texas Spring 2015
test-button.c
Go to the documentation of this file.
1 /* -*- mode: c; c-basic-offset: 4; -*- */
2 /* Created by Hershal Bhave and Eric Crosson on 2015-01-24 */
3 /* Revision History: Look in Git FGT */
4 
5 /* Standard Libs */
6 #include <stdint.h>
7 #include <stdbool.h>
8 #include <stdio.h>
9 #include <stdlib.h>
10 
11 /* TI Includes */
12 #include "inc/hw_ints.h"
13 #include "inc/hw_gpio.h"
14 #include "inc/hw_memmap.h"
15 
16 /* Driverlib Includes */
17 #include "driverlib/debug.h"
18 #include "driverlib/gpio.h"
19 #include "driverlib/interrupt.h"
20 #include "driverlib/pin_map.h"
21 #include "driverlib/sysctl.h"
22 #include "driverlib/systick.h"
23 #include "driverlib/rom.h"
24 
25 #include "libos/os.h"
26 #include "libbutton/button.h"
27 #include "libhw/hardware.h"
28 
29 uint32_t button_left_pressed = 0;
30 uint32_t button_right_pressed = 0;
31 
32 void update_pid(notification button_bitmask) {
33  /* What was that technique we learned in 460n to avoid a bunch of
34  branches? cond && action*/
35  if (button_bitmask._int & BUTTON_LEFT) {
37  }
38  if (button_bitmask._int & BUTTON_RIGHT) {
40  }
41 }
42 
43 int main() {
44 
47 
49 
51  hw_init(HW_BUTTON, button_metadata);
52  hw_subscribe(HW_BUTTON, button_metadata, update_pid);
53 
55 
57 }
int main()
Definition: test-button.c:43
int _int
Definition: notify.h:23
uint32_t button_left_pressed
Definition: test-button.c:29
#define button_metadata_init(_base, _pin, _interrupt)
Definition: button.h:23
#define GPIO_BOTH_EDGES
Definition: gpio.h:87
uint32_t button_right_pressed
Definition: test-button.c:30
#define SYSCTL_OSC_MAIN
Definition: sysctl.h:378
#define hw_subscribe(type, metadata, isr)
Definition: hardware.h:178
#define SYSCTL_USE_OSC
Definition: sysctl.h:350
#define SYSCTL_XTAL_16MHZ
Definition: sysctl.h:372
#define hw_init(type, metadata)
Definition: hardware.h:143
#define BUTTONS_BOTH
Definition: button.h:28
#define postpone_death()
Definition: nexus.h:40
bool IntMasterDisable(void)
Definition: interrupt.c:249
#define BUTTON_LEFT
Definition: button.h:26
bool IntMasterEnable(void)
void update_pid(notification button_bitmask)
Definition: test-button.c:32
#define BUTTON_RIGHT
Definition: button.h:27
#define SYSCTL_SYSDIV_1
Definition: sysctl.h:221
void SysCtlClockSet(uint32_t ui32Config)
Definition: sysctl.c:2532
#define GPIO_PORTF_BASE
Definition: hw_memmap.h:74