Autodrone
Multi-Domain Vehicle
drv_system.c File Reference

This file contains all the basic functions to run the timing of the system as well as initialize the system. More...

#include "board.h"

Functions

void SysTick_Handler (void)
 This function handles System tick timer. More...
 
uint32_t micros (void)
 Gets system time in microseconds. More...
 
uint32_t millis (void)
 Gets system time in milliseconds. More...
 
void delayMicroseconds (uint32_t us)
 Delay in microseconds. More...
 
void delay (uint32_t ms)
 Delay in milliseconds. More...
 
void systemInit (void)
 Initializes system. More...
 

Variables

uint16_t frameCounter = 0
 
semaphore_t frame_1000Hz = false
 
semaphore_t frame_500Hz = false
 
semaphore_t frame_200Hz = false
 
semaphore_t frame_100Hz = false
 
semaphore_t frame_50Hz = false
 
semaphore_t frame_10Hz = false
 
semaphore_t frame_5Hz = false
 
semaphore_t frame_1Hz = false
 
uint32_t deltaTime1000Hz
 
uint32_t executionTime1000Hz
 
uint32_t previous1000HzTime
 
uint32_t deltaTime500Hz
 
uint32_t executionTime500Hz
 
uint32_t previous500HzTime
 
uint32_t deltaTime200Hz
 
uint32_t executionTime200Hz
 
uint32_t previous200HzTime
 
uint32_t deltaTime100Hz
 
uint32_t executionTime100Hz
 
uint32_t previous100HzTime
 
uint32_t deltaTime50Hz
 
uint32_t executionTime50Hz
 
uint32_t previous50HzTime
 
uint32_t deltaTime10Hz
 
uint32_t executionTime10Hz
 
uint32_t previous10HzTime
 
uint32_t deltaTime5Hz
 
uint32_t executionTime5Hz
 
uint32_t previous5HzTime
 
uint32_t deltaTime1Hz
 
uint32_t executionTime1Hz
 
uint32_t previous1HzTime
 
float dt500Hz
 
semaphore_t systemReady = false
 
semaphore_t execUp = false
 

Detailed Description

This file contains all the basic functions to run the timing of the system as well as initialize the system.

Author
Jeremy Wolfe
Date
03 MAR 2022

Function Documentation

◆ delay()

void delay ( uint32_t  ms)

Delay in milliseconds.

Returns
Void.

◆ delayMicroseconds()

void delayMicroseconds ( uint32_t  us)

Delay in microseconds.

Returns
Void.

◆ micros()

uint32_t micros ( void  )

Gets system time in microseconds.

This can be called from within IRQ Handlers, so uses LDREX/STREX.
If a higher priority IRQ or DMA or anything happens the STREX will fail
and restart the loop. Otherwise the same number that was read is harmlessly
written back.
Returns
uint32_t Time in microseconds.

◆ millis()

uint32_t millis ( void  )

Gets system time in milliseconds.

Returns
uint32_t Time in milliseconds.

◆ systemInit()

void systemInit ( void  )

Initializes system.

Returns
Void.

◆ SysTick_Handler()

void SysTick_Handler ( void  )

This function handles System tick timer.

Variable Documentation

◆ deltaTime1000Hz

uint32_t deltaTime1000Hz

◆ deltaTime100Hz

uint32_t deltaTime100Hz

◆ deltaTime10Hz

uint32_t deltaTime10Hz

◆ deltaTime1Hz

uint32_t deltaTime1Hz

◆ deltaTime200Hz

uint32_t deltaTime200Hz

◆ deltaTime500Hz

uint32_t deltaTime500Hz

◆ deltaTime50Hz

uint32_t deltaTime50Hz

◆ deltaTime5Hz

uint32_t deltaTime5Hz

◆ dt500Hz

float dt500Hz

◆ execUp

semaphore_t execUp = false

◆ executionTime1000Hz

uint32_t executionTime1000Hz

◆ executionTime100Hz

uint32_t executionTime100Hz

◆ executionTime10Hz

uint32_t executionTime10Hz

◆ executionTime1Hz

uint32_t executionTime1Hz

◆ executionTime200Hz

uint32_t executionTime200Hz

◆ executionTime500Hz

uint32_t executionTime500Hz

◆ executionTime50Hz

uint32_t executionTime50Hz

◆ executionTime5Hz

uint32_t executionTime5Hz

◆ frame_1000Hz

semaphore_t frame_1000Hz = false

◆ frame_100Hz

semaphore_t frame_100Hz = false

◆ frame_10Hz

semaphore_t frame_10Hz = false

◆ frame_1Hz

semaphore_t frame_1Hz = false

◆ frame_200Hz

semaphore_t frame_200Hz = false

◆ frame_500Hz

semaphore_t frame_500Hz = false

◆ frame_50Hz

semaphore_t frame_50Hz = false

◆ frame_5Hz

semaphore_t frame_5Hz = false

◆ frameCounter

uint16_t frameCounter = 0

◆ previous1000HzTime

uint32_t previous1000HzTime

◆ previous100HzTime

uint32_t previous100HzTime

◆ previous10HzTime

uint32_t previous10HzTime

◆ previous1HzTime

uint32_t previous1HzTime

◆ previous200HzTime

uint32_t previous200HzTime

◆ previous500HzTime

uint32_t previous500HzTime

◆ previous50HzTime

uint32_t previous50HzTime

◆ previous5HzTime

uint32_t previous5HzTime

◆ systemReady

semaphore_t systemReady = false