EE445M RTOS
Taken at the University of Texas Spring 2015
test-adc.c File Reference
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "driverlib/debug.h"
#include "driverlib/adc.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/rom.h"
#include "libadc/adc.h"
#include "libstd/nexus.h"
#include "libheart/heartbeat.h"
Include dependency graph for test-adc.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

semaphore_t HW_ADC_SEQ2_SEM
 
uint32_t ADC0_SEQ2_SAMPLES [4]
 
uint32_t * adc_data_buffer
 
uint32_t red_work = 0
 
uint32_t blue_work = 0
 
uint32_t green_work = 0
 

Macro Definition Documentation

#define HEARTBEAT_MODAL

Definition at line 24 of file test-adc.c.

Function Documentation

void led_blink_blue ( )

Definition at line 56 of file test-adc.c.

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

Referenced by main().

56  {
57  while (1) {
58  ++blue_work;
62  }
63 }
void GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val)
Definition: gpio.c:1038
uint32_t blue_work
Definition: test-adc.c:32
#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
#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 44 of file test-adc.c.

References GPIO_PIN_3, GPIO_PORTF_BASE, GPIOPinRead(), GPIOPinWrite(), green_work, HW_ADC_SEQ2_SEM, os_surrender_context, sem_guard, and sem_take.

Referenced by main().

44  {
45  while (1) {
48  ++green_work;
52  }
53  }
54 }
void GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val)
Definition: gpio.c:1038
semaphore_t HW_ADC_SEQ2_SEM
Definition: hardware.c:49
uint32_t green_work
Definition: test-adc.c:33
#define sem_take(sem)
#define GPIO_PIN_3
Definition: gpio.h:63
#define sem_guard(sem)
#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:

void led_blink_red ( )

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

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

Referenced by main().

35  {
36  while (1) {
37  ++red_work;
41  }
42 }
void GPIOPinWrite(uint32_t ui32Port, uint8_t ui8Pins, uint8_t ui8Val)
Definition: gpio.c:1038
uint32_t red_work
Definition: test-adc.c:31
#define GPIO_PIN_1
Definition: gpio.h:61
#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 65 of file test-adc.c.

References hw_metadata::adc, ADC0_BASE, ADC0_SEQ2_SAMPLES, adc_channel_init(), ADC_CTL_CH0, ADC_CTL_END, ADC_CTL_IE, adc_data_buffer, adc_init(), adc_interrupt_init(), ADC_TRIGGER_TIMER, hw_timer_metadata::base, hw_adc_metadata::base, hw_adc_metadata::channel, hw_adc_metadata::channel_configuration, DL_SOFT, hw_timer_metadata::frequency, GPIO_PIN_1, GPIO_PIN_2, GPIO_PIN_3, GPIO_PORTF_BASE, heart_init(), Hz, INT_TIMER1A, hw_timer_metadata::interrupt, IntMasterDisable(), IntMasterEnable(), led_blink_blue(), led_blink_green(), led_blink_red(), os_launch(), os_threading_init(), hw_timer_metadata::periodic, hw_adc_metadata::sample_sequence, schedule(), SYSCTL_OSC_MAIN, SYSCTL_SYSDIV_1, SYSCTL_USE_OSC, SYSCTL_XTAL_16MHZ, SysCtlClockSet(), adc_trigger_metadata::timer, TIMER1_BASE, TIMER_CFG_PERIODIC, hw_adc_metadata::trigger_metadata, and hw_adc_metadata::trigger_source.

65  {
66 
69 
70  /* Enable processor interrupts. */
72 
73  heart_init();
74  heart_init_(GPIO_PORTF_BASE, GPIO_PIN_1);
75  heart_init_(GPIO_PORTF_BASE, GPIO_PIN_2);
76  heart_init_(GPIO_PORTF_BASE, GPIO_PIN_3);
77 
78  /* Activate the ADC on PE1, 2, and 3 (AIN0-2). */
79  /* start adc init */
80  hw_metadata metadata;
81  metadata.adc.base = ADC0_BASE;
83  metadata.adc.sample_sequence = 2;
84  metadata.adc.channel = 0;
85  metadata.adc.channel_configuration =
88  metadata.adc.trigger_metadata.timer.frequency = 2 Hz;
91 
92  adc_init(metadata);
93  adc_channel_init(metadata);
94  adc_interrupt_init(metadata);
95 
97  /* end adc init */
98 
103 
104  IntMasterEnable();
105  os_launch();
106 
107  while (1) {
108 
109  }
110 }
uint32_t * adc_data_buffer
Definition: test-adc.c:30
uint32_t sample_sequence
Definition: hardware.h:88
#define TIMER_CFG_PERIODIC
Definition: timer.h:62
memory_address_t base
Definition: hardware.h:86
adc_trigger_metadata trigger_metadata
Definition: hardware.h:91
void led_blink_blue()
Definition: test-adc.c:56
#define INT_TIMER1A
Definition: hw_ints.h:437
#define SYSCTL_OSC_MAIN
Definition: sysctl.h:378
#define SYSCTL_USE_OSC
Definition: sysctl.h:350
hw_timer_metadata timer
Definition: hardware.h:79
#define GPIO_PIN_2
Definition: gpio.h:62
#define SYSCTL_XTAL_16MHZ
Definition: sysctl.h:372
#define GPIO_PIN_1
Definition: gpio.h:61
frequency_t frequency
Definition: hardware.h:64
void adc_channel_init(hw_metadata metadata)
Definition: adc.c:36
#define ADC_CTL_CH0
Definition: adc.h:85
void os_threading_init()
Definition: os.c:34
uint32_t trigger_source
Definition: hardware.h:87
uint32_t interrupt
Definition: hardware.h:65
void schedule(task_t task, frequency_t frequency, DEADLINE_TYPE seriousness)
Definition: os.c:386
#define ADC0_BASE
Definition: hw_memmap.h:89
memory_address_t base
Definition: hardware.h:63
void heart_init()
Initialize for visible transformation.
Definition: heartbeat.h:49
void os_launch()
Definition: os.c:161
void led_blink_red()
Definition: test-adc.c:35
#define TIMER1_BASE
Definition: hw_memmap.h:82
uint32_t periodic
Definition: hardware.h:66
uint32_t channel
Definition: hardware.h:89
bool IntMasterDisable(void)
Definition: interrupt.c:249
#define GPIO_PIN_3
Definition: gpio.h:63
bool IntMasterEnable(void)
uint32_t ADC0_SEQ2_SAMPLES[4]
Definition: hardware.c:46
hw_adc_metadata adc
Definition: hardware.h:100
#define ADC_CTL_END
Definition: adc.h:83
#define ADC_TRIGGER_TIMER
Definition: adc.h:65
void adc_init(hw_metadata metadata)
Definition: adc.c:16
void adc_interrupt_init(hw_metadata metadata)
Definition: adc.c:67
void led_blink_green()
Definition: test-adc.c:44
#define Hz
Definition: nexus.h:45
#define SYSCTL_SYSDIV_1
Definition: sysctl.h:221
void SysCtlClockSet(uint32_t ui32Config)
Definition: sysctl.c:2532
#define ADC_CTL_IE
Definition: adc.h:82
uint32_t channel_configuration
Definition: hardware.h:90
#define GPIO_PORTF_BASE
Definition: hw_memmap.h:74

Here is the call graph for this function:

Variable Documentation

uint32_t ADC0_SEQ2_SAMPLES[4]

Definition at line 46 of file hardware.c.

Referenced by main().

uint32_t* adc_data_buffer

Definition at line 30 of file test-adc.c.

Referenced by main().

uint32_t blue_work = 0

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

Referenced by led_blink_blue().

uint32_t green_work = 0

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

Referenced by led_blink_green().

semaphore_t HW_ADC_SEQ2_SEM

Definition at line 49 of file hardware.c.

Referenced by led_blink_green().

uint32_t red_work = 0

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

Referenced by led_blink_red().