Serial Wombat 18AB Firmware
Functions | Variables
timingResource.c File Reference
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
#include "serialWombat.h"

Functions

void timingResourceDefault (TIMING_RESOURCE_t resource)
 
void timingResourceManagerInit ()
 
TIMING_RESOURCE_t timingResourceHighPulseClaim (TIMING_RESOURCE_t resource)
 
TIMING_RESOURCE_t timingResourcePWMClaim (TIMING_RESOURCE_t resource, uint32_t period_uS)
 
void timingResourceRelease (TIMING_RESOURCE_t resource)
 
void timingResourcesHighPulse (TIMING_RESOURCE_t resource, uint16_t pulseTime_uS)
 
void timingResourcePWM (TIMING_RESOURCE_t resource, uint32_t period_uS, uint16_t dutyCycle)
 
bool timingResourceHighPulseBusy (TIMING_RESOURCE_t resource)
 
void timingResourceService (TIMING_RESOURCE_t resource)
 
TIMING_RESOURCE_t timingResourceInterruptClaim (TIMING_RESOURCE_t resource, uint16_t counts, uint16_t uS, timingResourceCallback_t callback)
 
void timingResourceInterruptActivate (TIMING_RESOURCE_t resource)
 
void __attribute__ ((interrupt, no_auto_psv))
 
void timingResourceBusyWait (uint16_t uS)
 
TIMING_RESOURCE_t timingResourceCounterClaim (TIMING_RESOURCE_t resource)
 
uint32_t timingResourceReadCounter (TIMING_RESOURCE_t resource)
 
void timingResourceResetCounter (TIMING_RESOURCE_t resource)
 
TIMING_RESOURCE_t timingResourceGenericClaim (TIMING_RESOURCE_t resource)
 

Variables

timingResourceManager_t timingResources [TIMING_RESOURCE_NUMBER_OF_RESOURCES]
 
volatile uint16_t CCT1InterruptCount = 0
 
volatile uint16_t CCT2InterruptCount = 0
 
volatile uint16_t CCT3InterruptCount = 0
 
volatile uint16_t vgaNextLine
 For this we're going to use global variables for items used in the interrupt. More...
 
volatile uint8_t vgaNextColor
 Global to store the next color output (0 to 7). Used so we can figure next color at the end of a line where we have some free processing time. More...
 
bool vgaEnable
 This global variable signals to interrupt routines to go into VGA specific code. This is required for high performance operation; A calling a registered function pointer takes too long. More...
 
volatile uint16_t CCT4InterruptCount = 0
 
volatile uint16_t OC1InterruptCount = 0
 
volatile uint16_t OC2InterruptCount = 0
 
volatile uint16_t OC3InterruptCount = 0
 

Function Documentation

◆ __attribute__()

void __attribute__ ( (interrupt, no_auto_psv)  )

◆ timingResourceBusyWait()

void timingResourceBusyWait ( uint16_t  uS)

◆ timingResourceCounterClaim()

TIMING_RESOURCE_t timingResourceCounterClaim ( TIMING_RESOURCE_t  resource)

◆ timingResourceDefault()

void timingResourceDefault ( TIMING_RESOURCE_t  resource)

◆ timingResourceGenericClaim()

TIMING_RESOURCE_t timingResourceGenericClaim ( TIMING_RESOURCE_t  resource)

◆ timingResourceHighPulseBusy()

bool timingResourceHighPulseBusy ( TIMING_RESOURCE_t  resource)

◆ timingResourceHighPulseClaim()

TIMING_RESOURCE_t timingResourceHighPulseClaim ( TIMING_RESOURCE_t  resource)

◆ timingResourceInterruptActivate()

void timingResourceInterruptActivate ( TIMING_RESOURCE_t  resource)

◆ timingResourceInterruptClaim()

TIMING_RESOURCE_t timingResourceInterruptClaim ( TIMING_RESOURCE_t  resource,
uint16_t  counts,
uint16_t  uS,
timingResourceCallback_t  callback 
)

◆ timingResourceManagerInit()

void timingResourceManagerInit ( )

◆ timingResourcePWM()

void timingResourcePWM ( TIMING_RESOURCE_t  resource,
uint32_t  period_uS,
uint16_t  dutyCycle 
)

◆ timingResourcePWMClaim()

TIMING_RESOURCE_t timingResourcePWMClaim ( TIMING_RESOURCE_t  resource,
uint32_t  period_uS 
)

◆ timingResourceReadCounter()

uint32_t timingResourceReadCounter ( TIMING_RESOURCE_t  resource)

◆ timingResourceRelease()

void timingResourceRelease ( TIMING_RESOURCE_t  resource)

◆ timingResourceResetCounter()

void timingResourceResetCounter ( TIMING_RESOURCE_t  resource)

◆ timingResourceService()

void timingResourceService ( TIMING_RESOURCE_t  resource)

◆ timingResourcesHighPulse()

void timingResourcesHighPulse ( TIMING_RESOURCE_t  resource,
uint16_t  pulseTime_uS 
)

Variable Documentation

◆ CCT1InterruptCount

volatile uint16_t CCT1InterruptCount = 0

◆ CCT2InterruptCount

volatile uint16_t CCT2InterruptCount = 0

◆ CCT3InterruptCount

volatile uint16_t CCT3InterruptCount = 0

◆ CCT4InterruptCount

volatile uint16_t CCT4InterruptCount = 0

◆ OC1InterruptCount

volatile uint16_t OC1InterruptCount = 0

◆ OC2InterruptCount

volatile uint16_t OC2InterruptCount = 0

◆ OC3InterruptCount

volatile uint16_t OC3InterruptCount = 0

◆ timingResources

timingResourceManager_t timingResources[TIMING_RESOURCE_NUMBER_OF_RESOURCES]

◆ vgaEnable

bool vgaEnable

This global variable signals to interrupt routines to go into VGA specific code. This is required for high performance operation; A calling a registered function pointer takes too long.

◆ vgaNextColor

volatile uint8_t vgaNextColor

Global to store the next color output (0 to 7). Used so we can figure next color at the end of a line where we have some free processing time.

◆ vgaNextLine

volatile uint16_t vgaNextLine

For this we're going to use global variables for items used in the interrupt.