EE445M RTOS
Taken at the University of Texas Spring 2015
test-timer.c File Reference
#include <stdint.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/timer.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "libtimer/timer.h"
#include "libos/semaphore.h"
#include <sys/stat.h>
#include "libheart/heartbeat.h"
Include dependency graph for test-timer.c:

Go to the source code of this file.

Macros

#define HEARTBEAT_MODAL
 

Functions

void led_blink_red ()
 
void led_blink_green ()
 
void led_blink_blue ()
 
int main (void)
 

Variables

volatile uint32_t sem
 
uint32_t interrupt_counter
 
uint32_t wait_counter
 
uint32_t red_work = 0
 
uint32_t blue_work = 0
 
uint32_t green_work = 0
 

Macro Definition Documentation

#define HEARTBEAT_MODAL

Definition at line 28 of file test-timer.c.

Function Documentation

void led_blink_blue ( )

Definition at line 57 of file test-timer.c.

References blue_work, GPIO_PIN_2, GPIO_PORTF_BASE, GPIOPinRead(), GPIOPinWrite(), and os_surrender_context.

Referenced by main().

57  {
58  while (1) {
59  ++blue_work;
63  }
64 }
void GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val)
Definition: gpio.c:1038
#define GPIO_PIN_2
Definition: gpio.h:62
#define os_surrender_context()
Definition: os.h:142
int32_t GPIOPinRead(uint32_t ui32Port, uint8_t ui8Pins)
Definition: gpio.c:1006
uint32_t blue_work
Definition: test-timer.c:36
#define GPIO_PORTF_BASE
Definition: hw_memmap.h:74

Here is the call graph for this function:

Here is the caller graph for this function:

void led_blink_green ( )

Definition at line 48 of file test-timer.c.

References GPIO_PIN_3, GPIO_PORTF_BASE, GPIOPinRead(), GPIOPinWrite(), and green_work.

Referenced by main().

48  {
49  /* while (1) { */
50  ++green_work;
53  /* os_surrender_context(); */
54  /* } */
55 }
uint32_t green_work
Definition: test-timer.c:37
void GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val)
Definition: gpio.c:1038
#define GPIO_PIN_3
Definition: gpio.h:63
int32_t GPIOPinRead(uint32_t ui32Port, uint8_t ui8Pins)
Definition: gpio.c:1006
#define GPIO_PORTF_BASE
Definition: hw_memmap.h:74

Here is the call graph for this function:

Here is the caller graph for this function:

void led_blink_red ( )

Definition at line 39 of file test-timer.c.

References GPIO_PIN_1, GPIO_PORTF_BASE, GPIOPinRead(), GPIOPinWrite(), os_surrender_context, and red_work.

Referenced by main().

39  {
40  while (1) {
41  ++red_work;
45  }
46 }
void GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val)
Definition: gpio.c:1038
#define GPIO_PIN_1
Definition: gpio.h:61
uint32_t red_work
Definition: test-timer.c:35
#define os_surrender_context()
Definition: os.h:142
int32_t GPIOPinRead(uint32_t ui32Port, uint8_t ui8Pins)
Definition: gpio.c:1006
#define GPIO_PORTF_BASE
Definition: hw_memmap.h:74

Here is the call graph for this function:

Here is the caller graph for this function:

int main ( void  )

Definition at line 66 of file test-timer.c.

References DL_SOFT, GPIO_PIN_1, GPIO_PIN_2, GPIO_PIN_3, GPIO_PORTF_BASE, heart_init(), hw_channel_init(), hw_driver_init(), hw_subscribe, HW_TIMER, Hz, INT_TIMER0A, IntMasterDisable(), IntMasterEnable(), led_blink_blue(), led_blink_green(), led_blink_red(), os_launch(), os_threading_init(), schedule(), SYSCTL_OSC_MAIN, SYSCTL_SYSDIV_1, SYSCTL_USE_OSC, SYSCTL_XTAL_16MHZ, SysCtlClockSet(), TIMER0_BASE, TIMER_CFG_PERIODIC, and timer_metadata_init.

66  {
67 
70 
71  /* Enable processor interrupts. */
73 
74  heart_init();
75  heart_init_(GPIO_PORTF_BASE, GPIO_PIN_1);
76  heart_init_(GPIO_PORTF_BASE, GPIO_PIN_2);
77  heart_init_(GPIO_PORTF_BASE, GPIO_PIN_3);
78 
79  /* begin timer init */
80  /* timer_metadata_init(TIMER0_BASE, 10 Hz, INT_TIMER0A, TIMER_CFG_ONE_SHOT); */
82  hw_driver_init(HW_TIMER, timer_metadata);
83  hw_channel_init(HW_TIMER, timer_metadata);
84  hw_subscribe(HW_TIMER, timer_metadata, led_blink_green);
85  /* end timer init */
86 
90 
92  os_launch();
93 
94  while (1) { }
95  /* postpone_death(); */
96 }
#define TIMER_CFG_PERIODIC
Definition: timer.h:62
#define TIMER0_BASE
Definition: hw_memmap.h:81
#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 GPIO_PIN_2
Definition: gpio.h:62
#define SYSCTL_XTAL_16MHZ
Definition: sysctl.h:372
#define GPIO_PIN_1
Definition: gpio.h:61
void os_threading_init()
Definition: os.c:34
void schedule(task_t task, frequency_t frequency, DEADLINE_TYPE seriousness)
Definition: os.c:386
void led_blink_red()
Definition: test-timer.c:39
void heart_init()
Initialize for visible transformation.
Definition: heartbeat.h:49
void led_blink_blue()
Definition: test-timer.c:57
void os_launch()
Definition: os.c:161
void hw_driver_init(HW_TYPE type, hw_metadata metadata)
Definition: hardware.c:62
bool IntMasterDisable(void)
Definition: interrupt.c:249
#define GPIO_PIN_3
Definition: gpio.h:63
bool IntMasterEnable(void)
void led_blink_green()
Definition: test-timer.c:48
#define timer_metadata_init(_base, _frequency, _interrupt, _periodic)
Definition: timer.h:21
#define Hz
Definition: nexus.h:45
#define SYSCTL_SYSDIV_1
Definition: sysctl.h:221
void SysCtlClockSet(uint32_t ui32Config)
Definition: sysctl.c:2532
void hw_channel_init(HW_TYPE type, hw_metadata metadata)
Definition: hardware.c:94
#define INT_TIMER0A
Definition: hw_ints.h:435
#define GPIO_PORTF_BASE
Definition: hw_memmap.h:74

Here is the call graph for this function:

Variable Documentation

uint32_t blue_work = 0

Definition at line 36 of file test-timer.c.

Referenced by led_blink_blue().

uint32_t green_work = 0

Definition at line 37 of file test-timer.c.

Referenced by led_blink_green().

uint32_t interrupt_counter

Definition at line 32 of file test-timer.c.

uint32_t red_work = 0

Definition at line 35 of file test-timer.c.

Referenced by led_blink_red().

volatile uint32_t sem

Definition at line 31 of file test-timer.c.

uint32_t wait_counter

Definition at line 33 of file test-timer.c.