@TomiTurtiainen | https://github.com/tomi
TampereJS | 7/11/2019
How do you transform data in JS?
Here are some options...
Array
has filter
, map
,
reduce
, but...
...no methods for more complicated transforms
...Object
, Map
and Set
don't
have them
...methods are not lazy
You can create a pipeline with _.chain()
, but...
...it feels clumsy and hard to understand
...TypeScript support is not the best
...no support for Set
, Map
or other
Iterable
s
...it imports almost the entire library
.NET way of transforming data from one source to another
Sort Finnish players by their score and select each player's name and score
Players
.Where(c => c.Country == "FI")
.OrderByDescending(c => c.Score)
.Select(c =>
new { c.Name, c.Score }
)
.ToList();
NPM already has 340 LINQ libraries, but...
...they are exact copies of LINQ
...method names are not JS friendly
...they lack support for certain types
Provide similar functionality to LINQ in JS friendly way
Enables iteration of JS types with for...of
loops
Implemented by String
, Array
,
Map
and
Set
Specified in ES2015
IEnumerable<T>
in .NET
iterable
in Python
std::iter::Iterator
trait in Rust
// Simplified TypeScript definition
interface Iterable<T> {
[Symbol.iterator](): Iterator<T>;
}
interface Iterator<T> {
next(value?: any): IteratorResult<T>;
return?(value?: any): IteratorResult<T>;
throw?(e?: any): IteratorResult<T>;
}
interface IteratorResult<T> {
done: boolean;
value: T;
}
// Could be as well a Set or a Map
const array = [1, 2, 3];
const iterator = array[Symbol.iterator]();
iterator.next(); // { value: 1, done: false }
iterator.next(); // { value: 2, done: false }
iterator.next(); // { value: 3, done: false }
iterator.next(); // { value: undefined, done: true }
// But generally you would just write...
for (const item of array) {
// ...which does the same thing
}
Functions which can be exited and later re-entered
Can yield
values
Is both Iterable
and Iterator
Specified in ES2015
// Simplified TypeScript definition
type GeneratorFunction =
(...args: any[]) => Generator;
interface Generator<T> extends Iterator<T> {
[Symbol.iterator](): Generator<T>;
next(value?: any): IteratorResult<T>;
return?(value?: any): IteratorResult<T>;
throw?(e?: any): IteratorResult<T>;
}
function* objectEntries(obj) {
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
const value = obj[key];
yield [key, value];
}
}
}
const obj = { a: 1, b: 2 };
for (const pair of objectEntries(obj)) {
// first pair is ["a", 1]
// second pair is ["b", 2]
}
import { from } from "fromfrom";
const result = from([1, 2, 3, 4])
.map(x => {
console.log(x);
return x;
})
.map(x => x * 2)
.take(1)
.toArray(); // Needed to force the evaluation
// Only 1 is printed to the console
Add some missing methods
Support for async iterables
Functional version
@TomiTurtiainen
https://github.com/tomi
https://github.com/tomi/fromfrom


Parsing and Plotting Captures
The start_trial
script described here copies 8 packet capture (pcap) files to a local ‘Results’ directory. This page describes the tools used to parse these captures and create plots of the goodput (throughput seen by the receiver), the round trip times (for the sender) and the packets in flight (for the sender).
The goal is to parse each experiment, the 8 pcap files, into 8 csv files, and then to create plot like this:
Parsing
To do this, each flow identified by the (src port, src ip, dest port, dest ip) tuple, must parsed into a csv file containing the throughput, round trip time, and packets in flight as seen by each raspberry pi at some granularity (usually half a second).
This parsing is done using a rust
program developed here. This program parses each of the captures matching a given regex pattern and for each program, creates a csv file for each flow identified. This csv file with contain each of the Parser Entries defined in parse_pcap.rs
. Currently, this includes the rtt, throughput, and packets in flight.
The round trip time for each half second is calculated by dividing the time for each of the packets ack’d in that window by the number of packets ack’d. If there are no packets ack’d in a given half second window, the round trip time is whatever the previous time was + the granularity of the window (half a second).
The throughput it calculated as the number of packets sent in each half second window.
The packets in flight is the number of bytes un-acked at the end of each window.
The output is a csv file for each flow, which may look something like this: (note: the granularity for this csv is 10 milliseconds, not 500)
time,throughput,inflight,rtt
59437,19200000,94120,40
59447,19200000,92672,40
59457,24000000,101360,40
59467,24000000,105704,40
59477,25200000,112944,40
59487,24000000,118736,40
59497,25200000,121632,40
Plotting
Once the data is parsed into csvs, it can easily be plotted using python. The script we use to create the plot show above is here
The round trip time and packets in flight are calculated from the “senders’” point of view, whereas the throughput (or goodput) is calculated from the “receivers”’ point of view.
Summary
Given the captures for each raspberry pi are stored in a directory, the command below can be used to generate the plots.
rm *.csv; RUST_BACKTRACE=1 cargo run '*' ~/temp/
python3 plot.py . . new.png show
rm *.csv; cargo run <file_regex_pattern> <directory>
python plot.py <input directory> <substring to match> <output_name> <show>


---
layout: default-noscroll
---
1. Destroy enemies before they leave the screen
2. Bash mode: Activates when you get 3 kills without taking damage
3. In Bash mode, crash into an enemy or asteroid to turn it into a "bomb"
4. Press space to shoot
Press arrow keys to move


#include <_limits.h>
Go to the source code of this file.
◆ CHAR_BIT
Expands to the integer constant 8. Number of bits in byte
Definition at line 28 of file limits.h.
◆ CHAR_MAX
Expands to the integer constant 127. Maximum value of char
Definition at line 22 of file limits.h.
◆ CHAR_MIN
Expands to the integer constant -128. Minimum value of char
Definition at line 19 of file limits.h.
◆ INT_MAX
| #define INT_MAX 0x7fffffff |
Expands to hex 0x7fffffff. Maximum value of signed int
Definition at line 52 of file limits.h.
◆ INT_MIN
| #define INT_MIN (-1 - 0x7fffffff) |
Expands to hex -1 - 0x7fffffff. Minimum value of signed int
Definition at line 49 of file limits.h.
◆ LLONG_MIN
| #define LLONG_MIN (-LLONG_MAX - 1) |
Expands to (-LLONG_MAX - 1). Minimum value of signed long long
Definition at line 64 of file limits.h.
◆ LONG_MIN
| #define LONG_MIN (-LONG_MAX - 1) |
Expands to (-LONG_MAX - 1). Minimum value of signed long
Definition at line 58 of file limits.h.
◆ MB_LEN_MAX
Maximum multibyte length of a character across all locales
Definition at line 70 of file limits.h.
◆ SCHAR_MAX
Expands to the integer constant 127. Maximum value of signed char
Definition at line 34 of file limits.h.
◆ SCHAR_MIN
Expands to the integer constant -128. Minimum value of signed char
Definition at line 31 of file limits.h.
◆ SHRT_MAX
Expands to the Hex constant 0x7fff. Maximum value of signed short
Definition at line 43 of file limits.h.
◆ SHRT_MIN
| #define SHRT_MIN (-1 - 0x7fff) |
Expands to -1 - 0x7fff. Minimum value of signed short
Definition at line 40 of file limits.h.
◆ UCHAR_MAX
Expands to the integer constant 255. Maximum value of unsigned char
Definition at line 37 of file limits.h.
◆ UINT_MAX
| #define UINT_MAX 0xffffffffU |
Expands to hex 0xffffffffU. Maximum value of unsigned int
Definition at line 55 of file limits.h.
◆ ULLONG_MAX
| #define ULLONG_MAX (2ULL * LLONG_MAX + 1) |
Expands to (2ULL * LLONG_MAX + 1). Maximum value of unsigned long long
Definition at line 67 of file limits.h.
◆ ULONG_MAX
| #define ULONG_MAX (2UL * LONG_MAX + 1) |
Expands to (2UL * LONG_MAX + 1). Maximum value of unsigned long
Definition at line 61 of file limits.h.
◆ USHRT_MAX
Expands to hex 0xffff. Maximum value of unsigned short
Definition at line 46 of file limits.h.


PHP scripts in HTML Forms
First Name:
Position: Administrator Faculty Students
Degrees: BA BS MS PhD
Comments:
Enrollment/Employee Type: Full-time Part-time


seaice_aggre_to_obs_netcdf This program creates an observation sequence file that has a synthetic observation at every location in the netCDF file. 'make_obs_aggre.ncl' was used to add noise to a cice state which is then used as input to this program.
An alternative method would be to use this program to create an observation sequence file with dummy values at each location and use the resulting 'obs_seq.in' as input for running 'perfect_model_obs'. This method would not require the use of ncl, but would require running 'perfect_model_obs'.
Credits: Yongfei Zhang - University of Washington.
obtain lat and lon all obs in a single file are the same time. check the lat/lon values to see if they are ok
possibly use a higher QC value for suspicious observations @todo maybe thiserr = max(seaice_concentr(i,j)*terr, 0.05_r8)
| Type | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|
| character(len=*), | parameter | :: | routine | = | 'seaice_aggre_to_obs_netcdf' | |
| integer | :: | n | ||||
| integer | :: | i | ||||
| integer | :: | j | ||||
| integer | :: | oday | ||||
| integer | :: | osec | ||||
| integer | :: | rcio | ||||
| integer | :: | iunit | ||||
| integer | :: | otype | ||||
| integer | :: | io | ||||
| integer | :: | num_copies | ||||
| integer | :: | num_qc | ||||
| integer | :: | max_obs | ||||
| integer | :: | iacc | ||||
| integer | :: | ialo | ||||
| integer | :: | ncid | ||||
| integer | :: | varid | ||||
| integer | :: | axdim | ||||
| integer | :: | aydim | ||||
| integer | :: | along_base | ||||
| integer | :: | across_base | ||||
| integer, | allocatable | :: | qc_array(:,:) | |||
| real(kind=r8), | allocatable | :: | tmask(:,:) | |||
| character(len=128) | :: | varname | ||||
| logical | :: | file_exist | ||||
| logical | :: | first_obs | ||||
| real(kind=r8) | :: | temp | ||||
| real(kind=r8) | :: | qc | ||||
| real(kind=r8) | :: | wdir | ||||
| real(kind=r8) | :: | wspeed | ||||
| real(kind=r8) | :: | werr | ||||
| real(kind=r8) | :: | thiserr | ||||
| real(kind=r8) | :: | uwnd | ||||
| real(kind=r8) | :: | uerr | ||||
| real(kind=r8) | :: | vwnd | ||||
| real(kind=r8) | :: | verr | ||||
| real(kind=r8) | :: | dlon | ||||
| real(kind=r8) | :: | dlat | ||||
| real(kind=r8) | :: | thislon | ||||
| real(kind=r8) | :: | thislat | ||||
| real(kind=r8), | allocatable | :: | lat(:,:) | |||
| real(kind=r8), | allocatable | :: | lon(:,:) | |||
| real(kind=r8), | allocatable | :: | seaice_concentr(:,:) | |||
| type(obs_sequence_type) | :: | obs_seq | ||||
| type(obs_type) | :: | obs | ||||
| type(obs_type) | :: | prev_obs | ||||
| type(time_type) | :: | comp_day0 | ||||
| type(time_type) | :: | time_obs | ||||
| type(time_type) | :: | prev_time | ||||
| integer | :: | year | = | 2000 | ||
| integer | :: | doy | = | 1 | ||
| real(kind=r8) | :: | terr | = | 0.15_r8 | ||
| character(len=256) | :: | seaice_input_file | = | 'seaicedata.input' | ||
| character(len=256) | :: | obs_out_file | = | 'obs_seq.out' | ||
| character(len=256) | :: | maskfile | = | 'cice_hist.nc' | ||
| logical | :: | debug | = | .false. |


Detailed Salmon Cookie
Detailed salmon cookies are approx. 8 inches long and are made with smoked king salmon with anchovy sprinkles. Made daily at all store locations.
Detailed salmon cookies are approx. 8 inches long and are made with smoked king salmon with anchovy sprinkles. Made daily at all store locations.
Basic salmon cookies are approx. 5 inches long and are made with chinook salmon and frosting is made from ground and dried caviar. Made daily at all store locations.
Pat's Salmon Cookie Tees are made with 100% cotton and come in S, M, L, XL. Larger sizes will be an additional 5$ and require additional shipping time.


First Name:
Last Name:
Email:
Gender:
male
female
input = {{ input | json }}
saved = {{ vm.saved | json }}


| Command | Description |
| Add | |
| To add a new task, type the “add” command followed by task’s content, the type of task, necessary time and date information for that type of task, label and priority. Each part of the information provided in the command text should be preceded by its corresponding option delimiter. | |
| [add] [task’s content] [/start <date and time>] [/end <date and time>][/deadline <date and time>] [/duration <hours and minutes>] [/reminder <date and time>] [/important] | |
| Delete | |
| To delete a task, first “display” or “search” with the relevant information to display the tasks. Type “delete” command followed by the index of the task. | |
| delete [task’s index] | |
| Undo | |
| Simply undo! | |
| undo | |
| Modify | |
| Each relevant task will be displayed on the GUI preceded by an index. Type in the modify command with the following format: | |
| modify [task’s index] [new task’s content] [other options which are supported in “add” command] | |
| Mark As Done | |
| Each relevant task will be displayed on the GUI preceded by an index. Type done followed by a valid index to mark a task as done. | |
| done [task’s index] | |
| Unconfirmed Tasks | |
| Each relevant task will be displayed on the GUI preceded by an index. Type done followed by a valid index to mark a task as done. | |
| [task's content][[/deadline][/start][/end] <date and time> or <date and time> or <date and time>...] confirm [task’s index] |
|
| Search | |
| To search for a task, type “search” followed by the followed by the search content. The program will attempt to infer what the user want to search from the content’s text The program will first separate the search content’s text into individual words. All tasks’ content that match any of the word will be included in the search results sorted by the percentage matched. For each word, the program will support wild-card matching and near- match. Supported wild-cards are ‘?’ which denotes any single lowercase or uppercase character or digit, ‘*’ which denotes any sequence of characters and digits that do not include space, tab or new line characters. Near-match searching is determined by the degree of differences between the searched word with the content’s word and also the word’s length. A list of dates will also be extracted from the search content. Any task that has the deadline, start or end date within period of 1 day before and after any one of the extracted date will also be considered as a match. | |
| search [content] | |
| Autocomplete | |
| When a user is typing a command, the status line will automatically display suggested words
and phrases to be autocompleted. The priority of the class of words (command names,
keywords, options, english dictionary words) suggested will be inferred from the current text
being entered.
Up/Down arrow key: Change the input text to the previous command and next command in command history Tab key: Pressing Tab can result in 2 cases. If the current input text consists of only the modify command and an index, the existing task’s information with that index will be autocompleted. Otherwise, the first suggested word will be autocompleted in place of the last word in the input text. modify [task's index] [/deadline][/start][/end][/reminder]*tab* |
|
| Reminder | |
| Setting a reminder will alert the user at the specified timing | |
| [/reminder <date and time>] | |
| Hotkeys | |
| F1 - Help F2 - Display F3 - Display Done |


{% extends 'layout.html' %} {% block pageTitle %} Example - passing data from page to page {% endblock %} {% block content %}
In order to cease Jane Smith from the screening programme for the reason ({{ data.reason }}) you will need to submit a signed and competed [form name] to [org name]
You will need to:


GitHub Pages site for unofficial Github Tech
This is representative site for the Training Blog hosted at http://www.github.tech
GitHub Tech - Unofficial aims to bring Tutorials, How-To Guides for Git & GitHub, Comparison articles about competing Version Control Systems and services and much more for our loyal users. It is intended for Developers, Designers, Students and any one how wants to learn about Version Control Systems especially GitHub.com .
Anyone can contribute to the blog. Please read the contributing guide before contacting us for contributions.


{# options.title can be set to "before" or "after". If not set #} {# titles are not shown, even if present. Titles are discovered via #} {# oembed, they come from the hosting service i.e. YouTube #} {% if options.title and (options.title != 'after') and item.title %}


This example shows the default master detail renderer with an array as root.
This example shows the default master detail renderer with an object as root.
The renderer tries to find a fitting UI schema for the detail. If there is none, one is generated, otherwise the registered ui schema is used.


Data Structures | |
| struct | CSL_EpwmTimebaseCfg |
| Structure holding the TimeBase sub-module configuration parameters. More... | |
| struct | CSL_EpwmCounterCmpCfg |
| Structure holding the Counter Comparator values. More... | |
| struct | CSL_EpwmAqActionCfg |
| Structure holding the Action Qualifier actions to be taken on the PWM output at the specific events. More... | |
| struct | CSL_EpwmDeadbandCfg |
| Structure holding the dead band generation sub-module configuration parameters. More... | |
| struct | CSL_EpwmChopperCfg |
| Structure holding the configuration parameters of Chopper sub-module. More... | |
| struct | CSL_EpwmTripzoneCfg |
| Structure holding the trip-zone sub-module configuration parameters. More... | |
| struct | CSL_EpwmEtCfg |
| Structure holding the Event Trigger Sub-Module configuration parameters. More... | |
| struct | CSL_EpwmHighResolutionCfg |
| Structure holding the configuration parameters of high resolution pwm pulse generation sub module. More... | |
Typedefs | |
| typedef struct CSL_EpwmTimebaseCfg | CSL_EpwmTimebaseCfg_t |
| Structure holding the TimeBase sub-module configuration parameters. | |
| typedef struct CSL_EpwmCounterCmpCfg | CSL_EpwmCounterCmpCfg_t |
| Structure holding the Counter Comparator values. | |
| typedef struct CSL_EpwmAqActionCfg | CSL_EpwmAqActionCfg_t |
| Structure holding the Action Qualifier actions to be taken on the PWM output at the specific events. | |
| typedef struct CSL_EpwmDeadbandCfg | CSL_EpwmDeadbandCfg_t |
| Structure holding the dead band generation sub-module configuration parameters. | |
| typedef struct CSL_EpwmChopperCfg | CSL_EpwmChopperCfg_t |
| Structure holding the configuration parameters of Chopper sub-module. | |
| typedef struct CSL_EpwmTripzoneCfg | CSL_EpwmTripzoneCfg_t |
| Structure holding the trip-zone sub-module configuration parameters. | |
| typedef struct CSL_EpwmEtCfg | CSL_EpwmEtCfg_t |
| Structure holding the Event Trigger Sub-Module configuration parameters. | |
| typedef struct CSL_EpwmHighResolutionCfg | CSL_EpwmHighResolutionCfg_t |
| Structure holding the configuration parameters of high resolution pwm pulse generation sub module. | |
Functions | |
| void | CSL_epwmTbTimebaseClkCfg (uint32_t baseAddr, uint32_t tbClk, uint32_t moduleClk) |
| This API configures the clock divider of the Time base module. More... | |
| void | CSL_epwmTbPwmFreqCfg (uint32_t baseAddr, uint32_t tbClk, uint32_t pwmFreq, uint32_t counterDir, uint32_t enableShadowWrite) |
| This API configures the PWM Time base counter Frequency/Period. More... | |
| void | CSL_epwmTbSyncEnable (uint32_t baseAddr, uint32_t tbPhsValue, uint32_t counterDir) |
| This API enables the synchronization of time base sub-module and also configures the phase count value to be loaded after sync event, counter direction after sync event. More... | |
| void | CSL_epwmTbSyncDisable (uint32_t baseAddr) |
| This API disables the synchronization. Even if sync-in event occurs the count value will not be reloaded. More... | |
| void | CSL_epwmTbSetSyncOutMode (uint32_t baseAddr, uint32_t syncOutMode) |
| This API selects the source of the synchronization output signal. It determines on which of the supported events sync-out has to be generated. More... | |
| void | CSL_epwmTbTriggerSwSync (uint32_t baseAddr) |
| This API generates software triggered sync pulse. More... | |
| void | CSL_epwmTbWriteTbCount (uint32_t baseAddr, uint32_t tbCount) |
| This API loads the Time base counter. The new value is taken immediately. More... | |
| uint16_t | CSL_epwmTbReadTbCount (uint32_t baseAddr) |
| This API gets the Time base counter current value. The count operation is not affected by the read. More... | |
| uint16_t | CSL_epwmTbGetStatus (uint32_t baseAddr, uint32_t tbStatusMask) |
| This API gets the Time Base status as indicated by the tbStatusMask parameter. More... | |
| void | CSL_epwmTbStatusClear (uint32_t baseAddr, uint32_t tbStatusClrMask) |
| This API clears the Time base status bits indicated by the tbStatusClrMask parameter. More... | |
| void | CSL_epwmTbSetEmulationMode (uint32_t baseAddr, uint32_t mode) |
| This API configures emulation mode. This setting determines the behaviour of Timebase counter during emulation (debugging). More... | |
| uint32_t | CSL_epwmCounterComparatorCfg (uint32_t baseAddr, uint32_t cmpType, uint32_t cmpVal, uint32_t enableShadowWrite, uint32_t shadowToActiveLoadTrigger, uint32_t overwriteShadow) |
| This API configures the counter comparator and loads the comparator value. When Counter comparator value equals the counter value, then an event is generated both in the up direction and down direction. More... | |
| void | CSL_epwmAqActionOnOutputCfg (uint32_t baseAddr, uint32_t pwmOutputCh, const CSL_EpwmAqActionCfg_t *pCfg) |
| This API configures the action to be taken on output by the Action qualifier module upon receiving the events. This will determine the output waveform. More... | |
| void | CSL_epwmAqSwTriggerOneTimeAction (uint32_t baseAddr, uint32_t pwmOutputCh, uint32_t swTrigAction) |
| This API triggers the SW forced single event on the PWM output. More... | |
| void | CSL_epwmAqSwTriggerContAction (uint32_t baseAddr, uint32_t pwmOutputCh, uint32_t swTrigAction, uint32_t activeRegReloadMode) |
| This API forces output value continuously on PWM output channel. The output can be forced to low or high. More... | |
| void | CSL_epwmDeadbandCfg (uint32_t baseAddr, const CSL_EpwmDeadbandCfg_t *pCfg) |
| This API performs the configuration of the dead band sub-module. This API configures the input source, output mode, polarity, rising and falling edge delays. More... | |
| void | CSL_epwmDeadbandBypass (uint32_t baseAddr) |
| This API bypasses the Dead-band sub-module. More... | |
| void | CSL_epwmChopperCfg (uint32_t baseAddr, const CSL_EpwmChopperCfg_t *pCfg) |
| This API performs the configuration of the chopper sub-module. This API configures chopping clock duty cycle, chopping clock frequency and pulse width of first pulse of chopping clock. More... | |
| void | CSL_epwmChopperEnable (uint32_t baseAddr, uint32_t enableChopper) |
| This API controls the enabling or disabling of chopper sub-module. More... | |
| void | CSL_epwmTzTriggerTripAction (uint32_t baseAddr, uint32_t tripAction, uint32_t pwmOutputCh) |
| This API configures the o/p on PWM channel when a trip event is recognized. The output can be set to high or low or high impedance. More... | |
| void | CSL_epwmTzTripEventEnable (uint32_t baseAddr, uint32_t tzEventType, uint32_t pinNum) |
| This API enables the trip event. More... | |
| void | CSL_epwmTzTripEventDisable (uint32_t baseAddr, uint32_t tzEventType, uint32_t pinNum) |
| This API disable the trip event. The disabled trip events will be ignored. More... | |
| void | CSL_epwmTzIntrEnable (uint32_t baseAddr, uint32_t tzEventType) |
| This API enables the trip interrupt. When trip event occurs the sub-module can be configured to interrupt CPU. More... | |
| void | CSL_epwmTzIntrDisable (uint32_t baseAddr, uint32_t tzEventType) |
| This API disables the trip interrupt. More... | |
| uint16_t | CSL_epwmTzEventStatus (uint32_t baseAddr, uint32_t eventMask) |
| This API returns the selected trip zone event status. More... | |
| void | CSL_epwmTzEventStatusClear (uint32_t baseAddr, uint32_t eventMask) |
| This API clears the selected trip zone event status. More... | |
| void | CSL_epwmTzTriggerSwEvent (uint32_t baseAddr, uint32_t tzEventType) |
| This API enables to generate Software forced trip condition. More... | |
| void | CSL_epwmEtIntrCfg (uint32_t baseAddr, uint32_t intrEvtSrc, uint32_t intrPrd) |
| This API configures the Event Trigger sub-module. This API configures the interrupt source and interrupt period. More... | |
| void | CSL_epwmEtIntrEnable (uint32_t baseAddr) |
| This API enables the ePWM Event interrupt. More... | |
| void | CSL_epwmEtIntrDisable (uint32_t baseAddr) |
| This API disables the ePWM Event interrupt. More... | |
| uint16_t | CSL_epwmEtIntrStatus (uint32_t baseAddr) |
| This API returns the ePWM event interrupt status. More... | |
| void | CSL_epwmEtIntrClear (uint32_t baseAddr) |
| This API clears the interrupt. This will clear the interrupt flag bit and enable further interrupts pulses to be generated. More... | |
| void | CSL_epwmEtIntrTrigger (uint32_t baseAddr) |
| This API forces interrupt to be generated. This API is used for testing purpose. More... | |
| uint16_t | CSL_epwmEtGetEventCount (uint32_t baseAddr) |
| This API returns the number of events occurred. More... | |
| int32_t | CSL_epwmHighResolutionCfg (uint32_t baseAddr, uint32_t ctrlMode, uint32_t mepCtrlEdge) |
| This API configures control mode and edge mode of high resolution sub-module. In also enables the HR sub-module. More... | |
| void | CSL_epwmHrLoadTbPhaseHrValue (uint32_t baseAddr, uint32_t tbPhsHighResVal) |
| This API loads the Timebase Phase high resolution register value. More... | |
| int32_t | CSL_epwmHrLoadCmpAHrValue (uint32_t baseAddr, uint32_t compAHighResVal, uint32_t ShadowToActiveLoadTrigger) |
| This API loads Counter-Comparator A high resolution value and also configure the pulse select bits, that select which pulse to use for timing events in the HRPWM module. More... | |
| int32_t | CSL_epwmHighResolutionDisable (uint32_t baseAddr) |
| This API disables the high-resolution feature of ePWM. More... | |
| int32_t | CSL_epwmClockEnable (uint32_t baseAddr) |
| This functions enables clock for EPWM module in PWM subsystem. More... | |
| int32_t | CSL_epwmClockDisable (uint32_t baseAddr) |
| This functions disables clock for EPWM sub-module in the PWM subsystem. More... | |
EPWM Output Channel | |
| typedef uint32_t | CSL_EpwmOutputCh_t |
| Number of supported EPWM outputs in a single epwm channel. | |
| #define | CSL_EPWM_OUTPUT_CH_MIN (0U) |
| #define | CSL_EPWM_OUTPUT_CH_A (CSL_EPWM_OUTPUT_CH_MIN) |
| #define | CSL_EPWM_OUTPUT_CH_B (1U) |
| #define | CSL_EPWM_OUTPUT_CH_MAX (CSL_EPWM_OUTPUT_CH_B) |
EPWM Tb Counter Direction | |
| typedef uint32_t | CSL_EpwmTbCounterDir_t |
| Types of Time base counter direction modes. | |
| #define | CSL_EPWM_TB_COUNTER_DIR_UP (PWMSS_EPWM_TBCTL_CTRMODE_UP_COUNT) |
| #define | CSL_EPWM_TB_COUNTER_DIR_DOWN (PWMSS_EPWM_TBCTL_CTRMODE_DOWN_COUNT) |
| #define | CSL_EPWM_TB_COUNTER_DIR_UP_DOWN (PWMSS_EPWM_TBCTL_CTRMODE_UP_DOWN_COUNT) |
| #define | CSL_EPWM_TB_COUNTER_DIR_STOP (PWMSS_EPWM_TBCTL_CTRMODE_STOP_FREEZE) |
EPWM Shadow register Control | |
| typedef uint32_t | CSL_EpwmShadowRegCtrl_t |
| Shadow register enable or disable control. More... | |
| #define | CSL_EPWM_SHADOW_REG_CTRL_ENABLE (PWMSS_EPWM_TBCTL_PRDLD_LOAD_FROM_SHADOW) |
| #define | CSL_EPWM_SHADOW_REG_CTRL_DISABLE (PWMSS_EPWM_TBCTL_PRDLD_LOAD_IMMEDIATELY) |
EPWM Counter directions after sync event | |
| typedef uint32_t | CSL_EpwmTbCntDirAftSync_t |
| Counter directions after sync event. | |
| #define | CSL_EPWM_TB_CNT_DIR_AFT_SYNC_DOWN (PWMSS_EPWM_TBCTL_PHSDIR_COUNT_DOWN) |
| #define | CSL_EPWM_TB_CNT_DIR_AFT_SYNC_UP (PWMSS_EPWM_TBCTL_PHSDIR_COUNT_UP) |
EPWM Source of Synchronization output signal | |
| typedef uint32_t | CSL_EpwmTbSyncOutEvt_t |
| Source of Synchronization output signal. | |
| #define | CSL_EPWM_TB_SYNC_OUT_EVT_SYNCIN (PWMSS_EPWM_TBCTL_SYNCOSEL_EPWMXSYNC) |
| #define | CSL_EPWM_TB_SYNC_OUT_EVT_CNT_EQ_ZERO (PWMSS_EPWM_TBCTL_SYNCOSEL_CTR_0) |
| #define | CSL_EPWM_TB_SYNC_OUT_EVT_CNT_EQ_CMP_B (PWMSS_EPWM_TBCTL_SYNCOSEL_CTR_CPMB) |
| #define | CSL_EPWM_TB_SYNC_OUT_EVT_DISABLE (PWMSS_EPWM_TBCTL_SYNCOSEL_DISABLE_EPWMXSYNCO) |
EPWM Flags to get the different types of time base status | |
| typedef uint32_t | CSL_EpwmTbSts_t |
| Flags to get the different types of time base status. | |
| #define | EPWM_TB_STS_CTR_MAX (PWMSS_EPWM_TBSTS_CTRMAX_MASK) |
| #define | EPWM_TB_STS_SYNCI (PWMSS_EPWM_TBSTS_SYNCI_MASK) |
| #define | EPWM_TB_STS_CTR_DIR (PWMSS_EPWM_TBSTS_CTRDIR_MASK) |
EPWM Emulation Mode | |
| typedef uint32_t | CSL_EpwmTbEmuMode_t |
| Emulation Mode. This selects the behaviour of the ePWM time-base counter during emulation events. | |
| #define | CSL_EPWM_TB_EMU_MODE_STP_AFT_NEXT_CYCLE (PWMSS_EPWM_TBCTL_FREE_SOFT_STOP_AFTER_NEXT_CTR) |
| #define | CSL_EPWM_TB_EMU_MODE_STP_AFT_COMPLETE_CYCLE (PWMSS_EPWM_TBCTL_FREE_SOFT_STOP_AFTER_CYCLE) |
| #define | EPWM_TB_EMU_MODE_FREE_RUN (PWMSS_EPWM_TBCTL_FREE_SOFT_RUN2) |
EPWM Comparator type | |
| typedef uint32_t | CSL_EpwmCcCmp_t |
| #define | CSL_EPWM_CC_CMP_MIN (0U) |
| #define | CSL_EPWM_CC_CMP_A (CSL_EPWM_CC_CMP_MIN) |
| #define | CSL_EPWM_CC_CMP_B (1U) |
| #define | CSL_EPWM_CC_CMP_MAX (CSL_EPWM_CC_CMP_B) |
EPWM Counter-Comparator registers(A and B) load mode | |
| typedef uint32_t | CSL_EpwmCcCmpLoadMode_t |
| Counter-Comparator registers(A and B) load mode flags from shadow register. More... | |
| #define | CSL_EPWM_CC_CMP_LOAD_MODE_CNT_EQ_ZERO (PWMSS_EPWM_CMPCTL_LOADAMODE_CTR_0) |
| #define | CSL_EPWM_CC_CMP_LOAD_MODE_CNT_EQ_PRD (PWMSS_EPWM_CMPCTL_LOADAMODE_CTR_PRD) |
| #define | CSL_EPWM_CC_CMP_LOAD_MODE_CNT_EQ_ZERO_OR_PRD (PWMSS_EPWM_CMPCTL_LOADAMODE_CTR_0_OR_PRD) |
| #define | CSL_EPWM_CC_CMP_LOAD_MODE_NO_LOAD (PWMSS_EPWM_CMPCTL_LOADAMODE_FREEZE) |
EPWM Actions | |
| typedef uint32_t | CSL_EpwmAqAction_t |
| Types of Actions that Action Qualifier can take on the Output when the supported counter compare event occurs. More... | |
| #define | CSL_EPWM_AQ_ACTION_DONOTHING (PWMSS_EPWM_AQCTLA_ZRO_DISABLED) |
| #define | CSL_EPWM_AQ_ACTION_LOW (PWMSS_EPWM_AQCTLA_ZRO_CLEAR) |
| #define | CSL_EPWM_AQ_ACTION_HIGH (PWMSS_EPWM_AQCTLA_ZRO_SET) |
| #define | CSL_EPQM_AQ_ACTION_TOLLGE (PWMSS_EPWM_AQCTLA_ZRO_TOGGLE) |
| #define | CSL_EPWM_AQ_ACTION_TOLLGE (CSL_EPQM_AQ_ACTION_TOLLGE) |
EPWM output actions | |
| typedef uint32_t | CSL_EpwmAqSwTrigOtAction_t |
| Actions to be taken on the output, when Software triggered one time events will occur. More... | |
| #define | CSL_EPWM_AQ_SW_TRIG_OT_ACTION_DONOTHING (PWMSS_EPWM_AQSFRC_ACTSFA_DISABLED) |
| #define | CSL_EPWM_AQ_SW_TRIG_OT_ACTION_LOW (PWMSS_EPWM_AQSFRC_ACTSFA_CLEAR) |
| #define | CSL_EPWM_AQ_SW_TRIG_OT_ACTION_HIGH (PWMSS_EPWM_AQSFRC_ACTSFA_SET) |
| #define | CSL_EPWM_AQ_SW_TRIG_OT_ACTION_TOGGLE (PWMSS_EPWM_AQSFRC_ACTSFA_TOGGLE) |
EPWM Continuous software forced actions | |
| typedef uint32_t | CSL_EpwmAqSwTrigContAction_t |
| Types of Continuous software forced actions on output. More... | |
| #define | CSL_EPWM_AQ_SW_TRIG_CONT_ACTION_NOEFFECT (PWMSS_EPWM_AQCSFRC_CSFA_DISABLED) |
| #define | CSL_EPWM_AQ_SW_TRIG_CONT_ACTION_LOW (PWMSS_EPWM_AQCSFRC_CSFA_LOW_OUTPUT) |
| #define | CSL_EPWM_AQ_SW_TRIG_CONT_ACTION_HIGH (PWMSS_EPWM_AQCSFRC_CSFA_HIGH_OUTPUT) |
| #define | CSL_EPWM_AQ_SW_TRIG_CONT_ACTION_SW_DISBALED (PWMSS_EPWM_AQCSFRC_CSFA_NO_EFFECT) |
EPWM Software Force Active Register Reload | |
| typedef uint32_t | CSL_EpwmAqCsfrcRegReload_t |
| Action Qualifier Software Force Active Register Reload From Shadow Options. | |
| #define | CSL_EPWM_AQ_CSFRC_REG_RELOAD_CNT_EQ_ZRO (PWMSS_EPWM_AQSFRC_RLDCSF_CTR_0) |
| #define | CSL_EPWM_AQ_CSFRC_REG_RELOAD_CNT_EQ_PRD (PWMSS_EPWM_AQSFRC_RLDCSF_CTR_PERIOD) |
| #define | CSL_EPWM_AQ_CSFRC_REG_RELOAD_CNT_EQ_ZRO_OR_PRD (PWMSS_EPWM_AQSFRC_RLDCSF_CTR_0_OR_PERIOD) |
| #define | CSL_EPWM_AQ_CSFRC_REG_RELOAD_IMMEDIATE (PWMSS_EPWM_AQSFRC_RLDCSF_IMMEDIATE) |
EPWM Dead Band Input Mode Control | |
| typedef uint32_t | CSL_EpwmDbInMode_t |
| Dead Band Input Mode Control. This allows you to select the input source to the falling-edge and rising-edge delay. | |
| #define | CSL_EPWM_DB_IN_MODE_A_RED_A_FED (PWMSS_EPWM_DBCTL_IN_MODE_SRC_ARED_AFED) |
| #define | CSL_EPWM_DB_IN_MODE_B_RED_A_FED (PWMSS_EPWM_DBCTL_IN_MODE_SRC_BRED_AFED) |
| #define | CSL_EPWM_DB_IN_MODE_A_RED_B_FED (PWMSS_EPWM_DBCTL_IN_MODE_SRC_ARED_BFED) |
| #define | CSL_EPWM_DB_IN_MODE_B_RED_B_FED (PWMSS_EPWM_DBCTL_IN_MODE_SRC_BRED_BFED) |
EPWM Polarity Select Control | |
| typedef uint32_t | CSL_EpwmDbPolSel_t |
| Polarity Select Control. This allows you to selectively invert one of the delayed signals before it is sent out of the dead-band sub-module. | |
| #define | CSL_EPWM_DB_POL_SEL_ACTV_HIGH (PWMSS_EPWM_DBCTL_POLSEL_ACTIVE_HIGH) |
| #define | CSL_EPWM_DB_POL_SEL_ACTV_LOW_COMPLEMENTARY (PWMSS_EPWM_DBCTL_POLSEL_ACTIVE_LOW_COMPLEMENTARY) |
| #define | CSL_EPWM_DB_POL_SEL_ACTV_HIGH_COMPLEMENTARY (PWMSS_EPWM_DBCTL_POLSEL_ACTIVE_HIGH_COMPLEMENTARY) |
| #define | CSL_EPWM_DB_POL_SEL_ACTV_LOW (PWMSS_EPWM_DBCTL_POLSEL_ACTIVE_LOW) |
EPWM Dead-band Output Mode Control | |
| typedef uint32_t | CSL_EpwmDbOutMode_t |
| Dead-band Output Mode Control. This allows you to selectively enable or bypass the dead-band generation for the falling-edge and rising-edge delay. | |
| #define | CSL_EPWM_DB_OUT_MODE_BYPASS (PWMSS_EPWM_DBCTL_OUT_MODE_DISABLED) |
| #define | CSL_EPWM_DB_OUT_MODE_NO_RED_B_FED (PWMSS_EPWM_DBCTL_OUT_MODE_DISABLE_RISING_EDGE) |
| #define | CSL_EPWM_DB_OUT_MODE_A_RED_NO_FED (PWMSS_EPWM_DBCTL_OUT_MODE_DISABLE_FALLING_EDGE) |
| #define | CSL_EPWM_DB_OUT_MODE_A_RED_B_FED (PWMSS_EPWM_DBCTL_OUT_MODE_ENABLED) |
EPWM Chopping Clock Duty Cycle | |
| typedef uint32_t | CSL_EpwmChpDutyCycle_t |
| Chopping Clock Duty Cycle values. | |
| #define | CSL_EPWM_CHP_DUTY_CYCLE_PERC_12PNT5 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_12_5) |
| #define | CSL_EPWM_CHP_DUTY_CYCLE_PERC_25 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_25) |
| #define | CSL_EPWM_CHP_DUTY_CYCLE_PERC_37PNT5 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_37_5) |
| #define | CSL_EPWM_CHP_DUTY_CYCLE_PERC_50_PER (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_50) |
| #define | CSL_EPWM_CHP_DUTY_CYCLE_PERC_62PNT5 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_62_5) |
| #define | CSL_EPWM_CHP_DUTY_CYCLE_PERC_75 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_75) |
| #define | CSL_EPWM_CHP_DUTY_CYCLE_PERC_87PNT5 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_87_5) |
EPWM Chopping Clock Frequency | |
| typedef uint32_t | CSL_EpwmChpClkFreq_t |
| Chopping Clock Frequency values . | |
| #define | CSL_EPWM_CHP_CLK_FREQ_DIV_BY_1 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_1) |
| #define | CSL_EPWM_CHP_CLK_FREQ_DIV_BY_2 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_2) |
| #define | CSL_EPWM_CHP_CLK_FREQ_DIV_BY_3 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_3) |
| #define | CSL_EPWM_CHP_CLK_FREQ_DIV_BY_4 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_4) |
| #define | CSL_EPWM_CHP_CLK_FREQ_DIV_BY_5 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_5) |
| #define | CSL_EPWM_CHP_CLK_FREQ_DIV_BY_6 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_6) |
| #define | CSL_EPWM_CHP_CLK_FREQ_DIV_BY_7 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_7) |
| #define | CSL_EPWM_CHP_CLK_FREQ_DIV_BY_8 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_8) |
EPWM output action when a trip event occurs | |
| typedef uint32_t | CSL_EpwmTzTripAction_t |
| Action to be taken on PWM output When a trip event occurs. More... | |
| #define | CSL_EPWM_TZ_TRIP_ACTION_TRI_STATE (PWMSS_EPWM_TZCTL_TZA_HIGH_IMPEDANCE) |
| #define | CSL_EPWM_TZ_TRIP_ACTION_HIGH (PWMSS_EPWM_TZCTL_TZA_HIGH_STATE) |
| #define | CSL_EPWM_TZ_TRIP_ACTION_LOW (PWMSS_EPWM_TZCTL_TZA_LOW_STATE) |
| #define | CSL_EPWM_TZ_TRIP_ACTION_DO_NOTHING (PWMSS_EPWM_TZCTL_TZA_DO_NOTHING) |
EPWM trip zone events | |
| typedef uint32_t | CSL_EpwmTzEvent_t |
| Type of trip zone events. | |
| #define | CSL_EPWM_TZ_EVENT_MIN (0x0U) |
| #define | CSL_EPWM_TZ_EVENT_ONE_SHOT (CSL_EPWM_TZ_EVENT_MIN) |
| #define | CSL_EPWM_TZ_EVENT_CYCLE_BY_CYCLE (0x1U) |
| #define | CSL_EPWM_TZ_EVENT_MAX (CSL_EPWM_TZ_EVENT_CYCLE_BY_CYCLE) |
EPWM Trip zone status flags | |
| typedef uint32_t | CSL_EpwmTzStsFlg_t |
| Trip zone status flags. | |
| #define | CSL_EPWM_TZ_STS_FLG_OST (PWMSS_EPWM_TZFLG_OST_MASK) |
| #define | CSL_EPWM_TZ_STS_FLG_CBC (PWMSS_EPWM_TZFLG_CBC_MASK) |
| #define | CSL_EPWM_TZ_STS_FLG_INT (PWMSS_EPWM_TZFLG_INT_MASK) |
EPWM Interrupt (EPWMx_INT) Selection Options | |
| typedef uint32_t | CSL_EpwmEtIntrEvt_t |
| ePWM Interrupt (EPWMx_INT) Selection Options. | |
| #define | CSL_EPWM_ET_INTR_EVT_CNT_EQ_ZRO (PWMSS_EPWM_ETSEL_INTSEL_CTR_0) |
| #define | CSL_EPWM_ET_INTR_EVT_CNT_EQ_PRD (PWMSS_EPWM_ETSEL_INTSEL_CTR_PERIOD) |
| #define | CSL_EPWM_ET_INTR_EVT_CNT_EQ_CMPA_INC (PWMSS_EPWM_ETSEL_INTSEL_CTR_CMPA_INCR) |
| #define | CSL_EPWM_ET_INTR_EVT_CNT_EQ_CMPA_DEC (PWMSS_EPWM_ETSEL_INTSEL_CTR_CMPA_DECR) |
| #define | CSL_EPWM_ET_INTR_EVT_CNT_EQ_CMPB_INC (PWMSS_EPWM_ETSEL_INTSEL_CTR_CMPB_INCR) |
| #define | CSL_EPWM_ET_INTR_EVT_CNT_EQ_CMPB_DEC (PWMSS_EPWM_ETSEL_INTSEL_CTR_CMPB_DECR) |
EPWM Interrupt (EPWMx_INT) Period Select | |
| typedef uint32_t | CSL_EpwmEtIntrPeriod_t |
| ePWM Interrupt (EPWMx_INT) Period Select. These values determine how many selected events need to occur before an interrupt is generated. | |
| #define | CSL_EPWM_ET_INTR_PERIOD_DIS_INTR (PWMSS_EPWM_ETPS_INTPRD_DISABLE) |
| #define | CSL_EPWM_ET_INTR_PERIOD_FIRST_EVT (PWMSS_EPWM_ETPS_INTPRD_GEN_FIRST_EVT) |
| #define | CSL_EPWM_ET_INTR_PERIOD_SECOND_EVT (PWMSS_EPWM_ETPS_INTPRD_GEN_SECOND_EVT) |
| #define | CSL_EPWM_ET_INTR_PERIOD_THIRD_EVT (PWMSS_EPWM_ETPS_INTPRD_GEN_THIRD_EVT) |
EPWM Delay Bus Selection | |
| typedef uint32_t | CSL_EpwmHrDelayBusSelMode_t |
| Delay Bus Selection, that selects which bus is used to select the delay for the PWM pulse. | |
| #define | CSL_EPWM_HR_DELAY_BUS_SEL_CMPAHR (PWMSS_EPWM_HRCTL_DELBUSSEL_SEL_CMPAHR) |
| #define | CSL_EPWM_HR_DELAY_BUS_SEL_TBPHSHR (PWMSS_EPWM_HRCTL_DELBUSSEL_SEL_TBPHSHR) |
EPWM Delay Mode Configuration | |
| typedef uint32_t | CSL_EpwmHrDelayEdgeCtrl_t |
| Delay Mode Configuration, that selects which edge of the PWM pulse the delay is inserted. | |
| #define | CSL_EPWM_HR_DELAY_EDGE_CTRL_NO_DELAY (PWMSS_EPWM_HRCTL_DELMODE_NO_DELAY) |
| #define | CSL_EPWM_HR_DELAY_EDGE_CTRL_RISING (PWMSS_EPWM_HRCTL_DELMODE_DELAY_RISING_EDGE) |
| #define | CSL_EPWM_HR_DELAY_EDGE_CTRL_FALLING (PWMSS_EPWM_HRCTL_DELMODE_DELAY_FALLING_EDGE) |
| #define | CSL_EPWM_HR_DELAY_EDGE_CTRL_BOTH (PWMSS_EPWM_HRCTL_DELMODE_DELAY_ON_BOTH_EDGES) |
EPWM Pulse selection | |
| typedef uint32_t | CSL_EpwmHrRegActLoad_t |
| Pulse selection, that selects which pulse to use for timing events in the HRPWM module. | |
| #define | CSL_EPWM_HR_REG_ACT_LOAD_CNT_ZRO_PULSE (PWMSS_EPWM_HRCTL_PULSESEL_SEL_CNT_ZERO_PULSE) |
| #define | CSL_EPWM_HR_REG_ACT_LOAD_PRD_EQ_PULSE (PWMSS_EPWM_HRCTL_PULSESEL_SEL_PRD_EQ_PULSE) |
| #define CSL_EPWM_AQ_ACTION_DONOTHING (PWMSS_EPWM_AQCTLA_ZRO_DISABLED) |
Do nothing (Action disabled).
| #define CSL_EPWM_AQ_ACTION_HIGH (PWMSS_EPWM_AQCTLA_ZRO_SET) |
Set: Force EPWMx output high.
| #define CSL_EPWM_AQ_ACTION_LOW (PWMSS_EPWM_AQCTLA_ZRO_CLEAR) |
Clear: Force EPWMx output low.
| #define CSL_EPWM_AQ_ACTION_TOLLGE (CSL_EPQM_AQ_ACTION_TOLLGE) |
Toggle EPWMx output: low output signal will be forced high, and a high signal will be forced low.
| #define CSL_EPWM_AQ_CSFRC_REG_RELOAD_CNT_EQ_PRD (PWMSS_EPWM_AQSFRC_RLDCSF_CTR_PERIOD) |
Load on event counter equals period.
| #define CSL_EPWM_AQ_CSFRC_REG_RELOAD_CNT_EQ_ZRO (PWMSS_EPWM_AQSFRC_RLDCSF_CTR_0) |
Load on event counter equals zero.
| #define CSL_EPWM_AQ_CSFRC_REG_RELOAD_CNT_EQ_ZRO_OR_PRD (PWMSS_EPWM_AQSFRC_RLDCSF_CTR_0_OR_PERIOD) |
Load on event counter equals zero or counter equals period.
| #define CSL_EPWM_AQ_CSFRC_REG_RELOAD_IMMEDIATE (PWMSS_EPWM_AQSFRC_RLDCSF_IMMEDIATE) |
Load immediately.
| #define CSL_EPWM_AQ_SW_TRIG_CONT_ACTION_HIGH (PWMSS_EPWM_AQCSFRC_CSFA_HIGH_OUTPUT) |
Forces a continuous high on output A.
| #define CSL_EPWM_AQ_SW_TRIG_CONT_ACTION_LOW (PWMSS_EPWM_AQCSFRC_CSFA_LOW_OUTPUT) |
Forces a continuous low on output A.
| #define CSL_EPWM_AQ_SW_TRIG_CONT_ACTION_NOEFFECT (PWMSS_EPWM_AQCSFRC_CSFA_DISABLED) |
Forcing disabled, that is, has no effect.
| #define CSL_EPWM_AQ_SW_TRIG_CONT_ACTION_SW_DISBALED (PWMSS_EPWM_AQCSFRC_CSFA_NO_EFFECT) |
Software forcing is disabled and has no effect.
| #define CSL_EPWM_AQ_SW_TRIG_OT_ACTION_DONOTHING (PWMSS_EPWM_AQSFRC_ACTSFA_DISABLED) |
Do nothing (Action disabled).
| #define CSL_EPWM_AQ_SW_TRIG_OT_ACTION_HIGH (PWMSS_EPWM_AQSFRC_ACTSFA_SET) |
Set: Output high.
| #define CSL_EPWM_AQ_SW_TRIG_OT_ACTION_LOW (PWMSS_EPWM_AQSFRC_ACTSFA_CLEAR) |
Clear: Output Low.
| #define CSL_EPWM_AQ_SW_TRIG_OT_ACTION_TOGGLE (PWMSS_EPWM_AQSFRC_ACTSFA_TOGGLE) |
Toggle output.
| #define CSL_EPWM_CC_CMP_A (CSL_EPWM_CC_CMP_MIN) |
Counter Comparator A.
| #define CSL_EPWM_CC_CMP_B (1U) |
Counter Comparator B.
| #define CSL_EPWM_CC_CMP_LOAD_MODE_CNT_EQ_PRD (PWMSS_EPWM_CMPCTL_LOADAMODE_CTR_PRD) |
Load on CTR = PRD: Time-base counter equal to period.
| #define CSL_EPWM_CC_CMP_LOAD_MODE_CNT_EQ_ZERO (PWMSS_EPWM_CMPCTL_LOADAMODE_CTR_0) |
Load on CTR = 0: Time-base counter equal to zero.
| #define CSL_EPWM_CC_CMP_LOAD_MODE_CNT_EQ_ZERO_OR_PRD (PWMSS_EPWM_CMPCTL_LOADAMODE_CTR_0_OR_PRD) |
Load on either CTR = 0 or CTR = PRD.
| #define CSL_EPWM_CC_CMP_LOAD_MODE_NO_LOAD (PWMSS_EPWM_CMPCTL_LOADAMODE_FREEZE) |
Freeze (no loads possible).
| #define CSL_EPWM_CC_CMP_MAX (CSL_EPWM_CC_CMP_B) |
Maximum value of enumeration. Used for input validation.
| #define CSL_EPWM_CC_CMP_MIN (0U) |
Minimum value of enumeration. Used for input validation.
| #define CSL_EPWM_CHP_CLK_FREQ_DIV_BY_1 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_1) |
Divide by 1 (no prescale).
| #define CSL_EPWM_CHP_CLK_FREQ_DIV_BY_2 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_2) |
Divide by 2.
| #define CSL_EPWM_CHP_CLK_FREQ_DIV_BY_3 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_3) |
Divide by 3.
| #define CSL_EPWM_CHP_CLK_FREQ_DIV_BY_4 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_4) |
Divide by 4.
| #define CSL_EPWM_CHP_CLK_FREQ_DIV_BY_5 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_5) |
Divide by 5.
| #define CSL_EPWM_CHP_CLK_FREQ_DIV_BY_6 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_6) |
Divide by 6.
| #define CSL_EPWM_CHP_CLK_FREQ_DIV_BY_7 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_7) |
Divide by 7.
| #define CSL_EPWM_CHP_CLK_FREQ_DIV_BY_8 (PWMSS_EPWM_PCCTL_CHPFREQ_DIV_8) |
Divide by 8.
| #define CSL_EPWM_CHP_DUTY_CYCLE_PERC_12PNT5 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_12_5) |
Duty cycle 1/8 (12.5%).
| #define CSL_EPWM_CHP_DUTY_CYCLE_PERC_25 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_25) |
Duty cycle 2/8 (25%).
| #define CSL_EPWM_CHP_DUTY_CYCLE_PERC_37PNT5 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_37_5) |
Duty cycle 3/8 (37.5%).
| #define CSL_EPWM_CHP_DUTY_CYCLE_PERC_50_PER (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_50) |
Duty cycle 4/8 (50%).
| #define CSL_EPWM_CHP_DUTY_CYCLE_PERC_62PNT5 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_62_5) |
Duty cycle 5/8 (62.5%).
| #define CSL_EPWM_CHP_DUTY_CYCLE_PERC_75 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_75) |
Duty cycle 6/8 (75%).
| #define CSL_EPWM_CHP_DUTY_CYCLE_PERC_87PNT5 (PWMSS_EPWM_PCCTL_CHPDUTY_DUTY_87_5) |
Duty cycle 7/8 (87.5%).
| #define CSL_EPWM_CHP_OSHT_WIDTH_10XSYSOUT_BY_8 (9U) |
10 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_11XSYSOUT_BY_8 (10U) |
11 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_12XSYSOUT_BY_8 (11U) |
12 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_13XSYSOUT_BY_8 (12U) |
13 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_14XSYSOUT_BY_8 (13U) |
14 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_15XSYSOUT_BY_8 (14U) |
15 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_16XSYSOUT_BY_8 (15U) |
16 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_1XSYSOUT_BY_8 (CSL_EPWM_CHP_OSHT_WIDTH_MIN) |
1 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_2XSYSOUT_BY_8 (1U) |
2 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_3XSYSOUT_BY_8 (2U) |
3 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_4XSYSOUT_BY_8 (3U) |
4 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_5XSYSOUT_BY_8 (4U) |
5 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_6XSYSOUT_BY_8 (5U) |
6 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_7XSYSOUT_BY_8 (6U) |
7 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_8XSYSOUT_BY_8 (7U) |
8 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_9XSYSOUT_BY_8 (8U) |
9 x SYSCLKOUT/8 wide.
| #define CSL_EPWM_CHP_OSHT_WIDTH_MAX (CSL_EPWM_CHP_OSHT_WIDTH_16XSYSOUT_BY_8) |
Maximum value of enumeration. Used for input validation.
| #define CSL_EPWM_CHP_OSHT_WIDTH_MIN (0U) |
Minimum value of enumeration. Used for input validation.
| #define CSL_EPWM_DB_IN_MODE_A_RED_A_FED (PWMSS_EPWM_DBCTL_IN_MODE_SRC_ARED_AFED) |
EPWMxA In (from the action-qualifier) is the source for both falling-edge and rising-edge delay.
| #define CSL_EPWM_DB_IN_MODE_A_RED_B_FED (PWMSS_EPWM_DBCTL_IN_MODE_SRC_ARED_BFED) |
EPWMxA In (from the action-qualifier) is the source for rising-edge delayed signal. EPWMxB In (from the action-qualifier) is the source for falling-edge delayed signal.
| #define CSL_EPWM_DB_IN_MODE_B_RED_A_FED (PWMSS_EPWM_DBCTL_IN_MODE_SRC_BRED_AFED) |
EPWMxB In (from the action-qualifier) is the source for rising-edge delayed signal. EPWMxA In (from the action-qualifier) is the source for falling-edge delayed signal.
| #define CSL_EPWM_DB_IN_MODE_B_RED_B_FED (PWMSS_EPWM_DBCTL_IN_MODE_SRC_BRED_BFED) |
EPWMxB In (from the action-qualifier) is the source for both rising-edge delay and falling-edge delayed signal.
| #define CSL_EPWM_DB_OUT_MODE_A_RED_B_FED (PWMSS_EPWM_DBCTL_OUT_MODE_ENABLED) |
Dead-band is fully enabled for both rising-edge delay on output EPWMxA and falling-edge delay on output EPWMxB.
| #define CSL_EPWM_DB_OUT_MODE_A_RED_NO_FED (PWMSS_EPWM_DBCTL_OUT_MODE_DISABLE_FALLING_EDGE) |
Disable falling-edge delay. The EPWMxB signal from the action-qualifier is passed straight through to the EPWMxB input of the PWM-chopper sub-module. The rising-edge delayed signal is seen on output EPWMxA.
| #define CSL_EPWM_DB_OUT_MODE_BYPASS (PWMSS_EPWM_DBCTL_OUT_MODE_DISABLED) |
Dead-band generation is bypassed for both output signals. In this mode, both the EPWMxA and EPWMxB output signals from the action-qualifier are passed directly to the PWM-chopper sub-module.
| #define CSL_EPWM_DB_OUT_MODE_NO_RED_B_FED (PWMSS_EPWM_DBCTL_OUT_MODE_DISABLE_RISING_EDGE) |
Disable rising-edge delay. The EPWMxA signal from the action-qualifier is passed straight through to the EPWMxA input of the PWM-chopper sub-module. The falling-edge delayed signal is seen on output EPWMxB
| #define CSL_EPWM_DB_POL_SEL_ACTV_HIGH (PWMSS_EPWM_DBCTL_POLSEL_ACTIVE_HIGH) |
Neither EPWMxA nor EPWMxB is inverted (default).
| #define CSL_EPWM_DB_POL_SEL_ACTV_HIGH_COMPLEMENTARY (PWMSS_EPWM_DBCTL_POLSEL_ACTIVE_HIGH_COMPLEMENTARY) |
EPWMxB is inverted.
| #define CSL_EPWM_DB_POL_SEL_ACTV_LOW (PWMSS_EPWM_DBCTL_POLSEL_ACTIVE_LOW) |
Both EPWMxA and EPWMxB are inverted.
| #define CSL_EPWM_DB_POL_SEL_ACTV_LOW_COMPLEMENTARY (PWMSS_EPWM_DBCTL_POLSEL_ACTIVE_LOW_COMPLEMENTARY) |
EPWMxA is inverted.
| #define CSL_EPWM_ET_INTR_EVT_CNT_EQ_CMPA_DEC (PWMSS_EPWM_ETSEL_INTSEL_CTR_CMPA_DECR) |
Enable event time-base counter equal to CMPA when the timer is decrementing.
| #define CSL_EPWM_ET_INTR_EVT_CNT_EQ_CMPA_INC (PWMSS_EPWM_ETSEL_INTSEL_CTR_CMPA_INCR) |
Enable event time-base counter equal to CMPA when the timer is incrementing.
| #define CSL_EPWM_ET_INTR_EVT_CNT_EQ_CMPB_DEC (PWMSS_EPWM_ETSEL_INTSEL_CTR_CMPB_DECR) |
Enable event: time-base counter equal to CMPB when the timer is decrementing.
| #define CSL_EPWM_ET_INTR_EVT_CNT_EQ_CMPB_INC (PWMSS_EPWM_ETSEL_INTSEL_CTR_CMPB_INCR) |
Enable event: time-base counter equal to CMPB when the timer is incrementing.
| #define CSL_EPWM_ET_INTR_EVT_CNT_EQ_PRD (PWMSS_EPWM_ETSEL_INTSEL_CTR_PERIOD) |
Enable event time-base counter equal to period (TBCNT = TBPRD).
| #define CSL_EPWM_ET_INTR_EVT_CNT_EQ_ZRO (PWMSS_EPWM_ETSEL_INTSEL_CTR_0) |
Enable event time-base counter equal to zero. (TBCNT = 0000h).
| #define CSL_EPWM_ET_INTR_PERIOD_DIS_INTR (PWMSS_EPWM_ETPS_INTPRD_DISABLE) |
Disable the interrupt event counter. No interrupt will be generated.
| #define CSL_EPWM_ET_INTR_PERIOD_FIRST_EVT (PWMSS_EPWM_ETPS_INTPRD_GEN_FIRST_EVT) |
Generate an interrupt on the first event.
| #define CSL_EPWM_ET_INTR_PERIOD_SECOND_EVT (PWMSS_EPWM_ETPS_INTPRD_GEN_SECOND_EVT) |
Generate an interrupt on the second event.
| #define CSL_EPWM_ET_INTR_PERIOD_THIRD_EVT (PWMSS_EPWM_ETPS_INTPRD_GEN_THIRD_EVT) |
Generate an interrupt on the third event.
| #define CSL_EPWM_HR_DELAY_BUS_SEL_CMPAHR (PWMSS_EPWM_HRCTL_DELBUSSEL_SEL_CMPAHR) |
Select CMPAHR(8) bus from compare module of EPWM (default on reset).
| #define CSL_EPWM_HR_DELAY_BUS_SEL_TBPHSHR (PWMSS_EPWM_HRCTL_DELBUSSEL_SEL_TBPHSHR) |
Select TBPHSHR(8) bus from time base module.
| #define CSL_EPWM_HR_DELAY_EDGE_CTRL_BOTH (PWMSS_EPWM_HRCTL_DELMODE_DELAY_ON_BOTH_EDGES) |
Delay inserted on both edges.
| #define CSL_EPWM_HR_DELAY_EDGE_CTRL_FALLING (PWMSS_EPWM_HRCTL_DELMODE_DELAY_FALLING_EDGE) |
Delay inserted falling edge.
| #define CSL_EPWM_HR_DELAY_EDGE_CTRL_NO_DELAY (PWMSS_EPWM_HRCTL_DELMODE_NO_DELAY) |
No delay inserted (default on reset).
| #define CSL_EPWM_HR_DELAY_EDGE_CTRL_RISING (PWMSS_EPWM_HRCTL_DELMODE_DELAY_RISING_EDGE) |
Delay inserted rising edge.
| #define CSL_EPWM_HR_REG_ACT_LOAD_CNT_ZRO_PULSE (PWMSS_EPWM_HRCTL_PULSESEL_SEL_CNT_ZERO_PULSE) |
Select CNT_zero pulse.
| #define CSL_EPWM_HR_REG_ACT_LOAD_PRD_EQ_PULSE (PWMSS_EPWM_HRCTL_PULSESEL_SEL_PRD_EQ_PULSE) |
Select CNT_zero pulse.
| #define CSL_EPWM_OUTPUT_CH_A (CSL_EPWM_OUTPUT_CH_MIN) |
Output channel A.
| #define CSL_EPWM_OUTPUT_CH_B (1U) |
Output channel B.
| #define CSL_EPWM_OUTPUT_CH_MAX (CSL_EPWM_OUTPUT_CH_B) |
Maximum value of enumeration. Used for input validation.
| #define CSL_EPWM_OUTPUT_CH_MIN (0U) |
Minimum value of enumeration. Used for input validation.
| #define CSL_EPWM_SHADOW_REG_CTRL_DISABLE (PWMSS_EPWM_TBCTL_PRDLD_LOAD_IMMEDIATELY) |
Shadow register is disabled and active register value will be used.
| #define CSL_EPWM_SHADOW_REG_CTRL_ENABLE (PWMSS_EPWM_TBCTL_PRDLD_LOAD_FROM_SHADOW) |
Shadow register value will be used.
| #define CSL_EPWM_TB_CNT_DIR_AFT_SYNC_DOWN (PWMSS_EPWM_TBCTL_PHSDIR_COUNT_DOWN) |
Count down after the synchronization event.
| #define CSL_EPWM_TB_CNT_DIR_AFT_SYNC_UP (PWMSS_EPWM_TBCTL_PHSDIR_COUNT_UP) |
Count up after the synchronization event.
| #define CSL_EPWM_TB_COUNTER_DIR_DOWN (PWMSS_EPWM_TBCTL_CTRMODE_DOWN_COUNT) |
Down count mode.
| #define CSL_EPWM_TB_COUNTER_DIR_STOP (PWMSS_EPWM_TBCTL_CTRMODE_STOP_FREEZE) |
stop-freeze counter operation (default on reset).
| #define CSL_EPWM_TB_COUNTER_DIR_UP (PWMSS_EPWM_TBCTL_CTRMODE_UP_COUNT) |
Up Count mode.
| #define CSL_EPWM_TB_COUNTER_DIR_UP_DOWN (PWMSS_EPWM_TBCTL_CTRMODE_UP_DOWN_COUNT) |
Up down count mode.
| #define CSL_EPWM_TB_EMU_MODE_STP_AFT_COMPLETE_CYCLE (PWMSS_EPWM_TBCTL_FREE_SOFT_STOP_AFTER_CYCLE) |
Stop after the next time-base counter increment or decrement. Up-count mode: stop when the time-base counter = period. Down-count mode: stop when the time-base counter = 0000. Up-down-count mode: stop when the time-base counter = 0000.
| #define CSL_EPWM_TB_EMU_MODE_STP_AFT_NEXT_CYCLE (PWMSS_EPWM_TBCTL_FREE_SOFT_STOP_AFTER_NEXT_CTR) |
Stop after the next time-base counter increment or decrement.
| #define CSL_EPWM_TB_SYNC_OUT_EVT_CNT_EQ_CMP_B (PWMSS_EPWM_TBCTL_SYNCOSEL_CTR_CPMB) |
Time-base counter equal to counter-compare B (TBCNT = CMPB).
| #define CSL_EPWM_TB_SYNC_OUT_EVT_CNT_EQ_ZERO (PWMSS_EPWM_TBCTL_SYNCOSEL_CTR_0) |
Time-base counter equal to zero.
| #define CSL_EPWM_TB_SYNC_OUT_EVT_DISABLE (PWMSS_EPWM_TBCTL_SYNCOSEL_DISABLE_EPWMXSYNCO) |
Disable EPWMxSYNCO(Sync Output) signal.
| #define CSL_EPWM_TB_SYNC_OUT_EVT_SYNCIN (PWMSS_EPWM_TBCTL_SYNCOSEL_EPWMXSYNC) |
Sync Input signal.
| #define CSL_EPWM_TZ_EVENT_CYCLE_BY_CYCLE (0x1U) |
Cycle by cycle trip zone event.
| #define CSL_EPWM_TZ_EVENT_MAX (CSL_EPWM_TZ_EVENT_CYCLE_BY_CYCLE) |
Maximum value of enumeration. Used for input validation.
| #define CSL_EPWM_TZ_EVENT_MIN (0x0U) |
Minimum value of enumeration. Used for input validation.
| #define CSL_EPWM_TZ_EVENT_ONE_SHOT (CSL_EPWM_TZ_EVENT_MIN) |
One shot trip zone event.
| #define CSL_EPWM_TZ_STS_FLG_CBC (PWMSS_EPWM_TZFLG_CBC_MASK) |
Latched Status Flag for Cycle-By-Cycle Trip Event.
| #define CSL_EPWM_TZ_STS_FLG_INT (PWMSS_EPWM_TZFLG_INT_MASK) |
Latched status for Trip Interrupt .
| #define CSL_EPWM_TZ_STS_FLG_OST (PWMSS_EPWM_TZFLG_OST_MASK) |
Latched Status Flag for A One-Shot Trip Event.
| #define CSL_EPWM_TZ_TRIP_ACTION_DO_NOTHING (PWMSS_EPWM_TZCTL_TZA_DO_NOTHING) |
Do nothing, no action is taken on EPWMxA.
| #define CSL_EPWM_TZ_TRIP_ACTION_HIGH (PWMSS_EPWM_TZCTL_TZA_HIGH_STATE) |
Force EPWMxA to a high state.
| #define CSL_EPWM_TZ_TRIP_ACTION_LOW (PWMSS_EPWM_TZCTL_TZA_LOW_STATE) |
Force EPWMxA to a low state.
| #define CSL_EPWM_TZ_TRIP_ACTION_TRI_STATE (PWMSS_EPWM_TZCTL_TZA_HIGH_IMPEDANCE) |
High impedance (EPWMxA = High-impedance state).
| #define EPWM_TB_EMU_MODE_FREE_RUN (PWMSS_EPWM_TBCTL_FREE_SOFT_RUN2) |
Counter is in Free run.
| #define EPWM_TB_STS_CTR_DIR (PWMSS_EPWM_TBSTS_CTRDIR_MASK) |
Time-Base Counter Direction Status.
| #define EPWM_TB_STS_CTR_MAX (PWMSS_EPWM_TBSTS_CTRMAX_MASK) |
Time-Base Counter Max Latched Status.
| #define EPWM_TB_STS_SYNCI (PWMSS_EPWM_TBSTS_SYNCI_MASK) |
Input Synchronization Latched Status.
| typedef uint32_t CSL_EpwmAqAction_t |
Types of Actions that Action Qualifier can take on the Output when the supported counter compare event occurs.
Same actions will be applicable for all the supported events and same actions are applicable for both A and B channel PWM outputs.
| typedef uint32_t CSL_EpwmAqSwTrigContAction_t |
Types of Continuous software forced actions on output.
Same macros will be used for configuration of both A and B PWM outputs, because bit field values for both A and B are same.
| typedef uint32_t CSL_EpwmAqSwTrigOtAction_t |
Actions to be taken on the output, when Software triggered one time events will occur.
Same macros will be used for both A and B channel outputs because the bit field values are same.
| typedef uint32_t CSL_EpwmCcCmp_t |
\ Counter Comparator type either A or B.
| typedef uint32_t CSL_EpwmCcCmpLoadMode_t |
Counter-Comparator registers(A and B) load mode flags from shadow register.
Same macros will be used to control the following registers
| typedef uint32_t CSL_EpwmShadowRegCtrl_t |
Shadow register enable or disable control.
Same macros will be used to control the following shadow registers
| typedef uint32_t CSL_EpwmTzTripAction_t |
Action to be taken on PWM output When a trip event occurs.
Same macros will be used to control both A and B outputs because the bit field values are same for A and B channels.
| void CSL_epwmAqActionOnOutputCfg | ( | uint32_t | baseAddr, |
| uint32_t | pwmOutputCh, | ||
| const CSL_EpwmAqActionCfg_t * | pCfg | ||
| ) |
This API configures the action to be taken on output by the Action qualifier module upon receiving the events. This will determine the output waveform.
| baseAddr | Base Address of PWMSS instance used. |
| pwmOutputCh | PWM Output channel type either A or B 'pwmOutputCh' can take values from the following enum |
| pCfg | Pointer to the following structure which contains the action configuration variables for different events |
| void CSL_epwmAqSwTriggerContAction | ( | uint32_t | baseAddr, |
| uint32_t | pwmOutputCh, | ||
| uint32_t | swTrigAction, | ||
| uint32_t | activeRegReloadMode | ||
| ) |
This API forces output value continuously on PWM output channel. The output can be forced to low or high.
| baseAddr | Base Address of PWMSS instance used. |
| pwmOutputCh | PWM Output channel type either A or B 'pwmOutputCh' can take values from the following enum |
| swTrigAction | Value to be forced on the output This parameter can take values from the following enum |
| activeRegReloadMode | Shadow to active reg load trigger. This parameter can take values from the following enum |
| void CSL_epwmAqSwTriggerOneTimeAction | ( | uint32_t | baseAddr, |
| uint32_t | pwmOutputCh, | ||
| uint32_t | swTrigAction | ||
| ) |
This API triggers the SW forced single event on the PWM output.
This can be used for testing the AQ sub-module. Every call to this API will trigger a single event.
| baseAddr | Base Address of PWMSS instance used. |
| pwmOutputCh | PWM Output channel type either A or B 'pwmOutputCh' can take values from the following enum |
| swTrigAction | Action that needs to be taken on the PWM output. 'swTrigAction' can take one of the following enum values |
| void CSL_epwmChopperCfg | ( | uint32_t | baseAddr, |
| const CSL_EpwmChopperCfg_t * | pCfg | ||
| ) |
This API performs the configuration of the chopper sub-module. This API configures chopping clock duty cycle, chopping clock frequency and pulse width of first pulse of chopping clock.
| baseAddr | Base Address of PWMSS instance used. |
| pCfg | Pointer to the structure CSL_EpwmChopperCfg_t containing the chopper configuration parameters. |
| void CSL_epwmChopperEnable | ( | uint32_t | baseAddr, |
| uint32_t | enableChopper | ||
| ) |
This API controls the enabling or disabling of chopper sub-module.
| baseAddr | Base Address of PWMSS instance used. |
| enableChopper | Flag controlling the enabling or disabling 'enableChopper' can take one of the following values
|
| int32_t CSL_epwmClockDisable | ( | uint32_t | baseAddr | ) |
This functions disables clock for EPWM sub-module in the PWM subsystem.
| baseAddr | Base Address of PWMSS instance used. |
| CSL_PASS | for success |
| CSL_EUNSUPPORTED_CMD | for unsupported API on this SOC |
| int32_t CSL_epwmClockEnable | ( | uint32_t | baseAddr | ) |
This functions enables clock for EPWM module in PWM subsystem.
| baseAddr | Base Address of PWMSS instance used. |
| CSL_PASS | for success |
| CSL_EUNSUPPORTED_CMD | for unsupported API on this SOC |
| uint32_t CSL_epwmCounterComparatorCfg | ( | uint32_t | baseAddr, |
| uint32_t | cmpType, | ||
| uint32_t | cmpVal, | ||
| uint32_t | enableShadowWrite, | ||
| uint32_t | shadowToActiveLoadTrigger, | ||
| uint32_t | overwriteShadow | ||
| ) |
This API configures the counter comparator and loads the comparator value. When Counter comparator value equals the counter value, then an event is generated both in the up direction and down direction.
| baseAddr | Base Address of PWMSS instance used. |
| cmpType | Comparator Type A or B. 'cmpType' can take values from the following enum |
| cmpVal | Comparator value that needs to be loaded. |
| enableShadowWrite | Enable write to shadow register. 'enableShadowWrite' can take values from the following enum |
| shadowToActiveLoadTrigger | Shadow to active register load mode. 'shadowToActiveLoadTrigger' can take values from the following enum |
| overwriteShadow | Overwrite even if previous value is not loaded to active register. 'overwriteShadow' can take following values
|
| TRUE | Comparator value is written successfully. |
| FALSE | Comparator value write is failed. |
| void CSL_epwmDeadbandBypass | ( | uint32_t | baseAddr | ) |
This API bypasses the Dead-band sub-module.
| baseAddr | Base Address of PWMSS instance used. |
| void CSL_epwmDeadbandCfg | ( | uint32_t | baseAddr, |
| const CSL_EpwmDeadbandCfg_t * | pCfg | ||
| ) |
This API performs the configuration of the dead band sub-module. This API configures the input source, output mode, polarity, rising and falling edge delays.
The Dead band generator has two sub-modules, one for raising edge delay and the other for falling edge delay. This can be configured when a delay is need between two signals during signal change. The dead band generator is useful in full-inverters.
| baseAddr | Base Address of PWMSS instance used. |
| pCfg | Pointer to the structure CSL_EpwmDeadbandCfg_t containing the dead band configuration parameters. |
| uint16_t CSL_epwmEtGetEventCount | ( | uint32_t | baseAddr | ) |
This API returns the number of events occurred.
| baseAddr | Base Address of PWMSS instance used. |
| eventCount | number of events occurred. This will have values in the range 0 to 3. |
| void CSL_epwmEtIntrCfg | ( | uint32_t | baseAddr, |
| uint32_t | intrEvtSrc, | ||
| uint32_t | intrPrd | ||
| ) |
This API configures the Event Trigger sub-module. This API configures the interrupt source and interrupt period.
| baseAddr | Base Address of PWMSS instance used. |
| intrEvtSrc | Event source which triggers interrupt. This parameter can take values from the following enum |
| intrPrd | prescalar value(This determines how may selected events need to occur before an interrupt is generated). This parameter can take values from the following enum |
| void CSL_epwmEtIntrClear | ( | uint32_t | baseAddr | ) |
This API clears the interrupt. This will clear the interrupt flag bit and enable further interrupts pulses to be generated.
| baseAddr | Base Address of PWMSS instance used. |
| void CSL_epwmEtIntrDisable | ( | uint32_t | baseAddr | ) |
This API disables the ePWM Event interrupt.
| baseAddr | Base Address of PWMSS instance used. |
| void CSL_epwmEtIntrEnable | ( | uint32_t | baseAddr | ) |
This API enables the ePWM Event interrupt.
| baseAddr | Base Address of PWMSS instance used. |
| uint16_t CSL_epwmEtIntrStatus | ( | uint32_t | baseAddr | ) |
This API returns the ePWM event interrupt status.
| baseAddr | Base Address of PWMSS instance used. |
| 0 | Interrupt is not generated. |
| 1 | Interrupt is generated. |
| void CSL_epwmEtIntrTrigger | ( | uint32_t | baseAddr | ) |
This API forces interrupt to be generated. This API is used for testing purpose.
| baseAddr | Base Address of PWMSS instance used. |
| int32_t CSL_epwmHighResolutionCfg | ( | uint32_t | baseAddr, |
| uint32_t | ctrlMode, | ||
| uint32_t | mepCtrlEdge | ||
| ) |
This API configures control mode and edge mode of high resolution sub-module. In also enables the HR sub-module.
| baseAddr | Base Address of PWMSS instance or EHRPWM instance used. |
| ctrlMode | phase control or duty control. This parameter can take values from the following enum |
| mepCtrlEdge | Edge on which MEP to be applied.(rising,falling,both) This parameter can take values from the following enum |
| CSL_PASS | for success |
| CSL_EUNSUPPORTED_CMD | for unsupported API on this SOC |
| int32_t CSL_epwmHighResolutionDisable | ( | uint32_t | baseAddr | ) |
This API disables the high-resolution feature of ePWM.
| baseAddr | Base Address of PWMSS instance used. |
| CSL_PASS | for success |
| CSL_EUNSUPPORTED_CMD | for unsupported API on this SOC |
| int32_t CSL_epwmHrLoadCmpAHrValue | ( | uint32_t | baseAddr, |
| uint32_t | compAHighResVal, | ||
| uint32_t | ShadowToActiveLoadTrigger | ||
| ) |
This API loads Counter-Comparator A high resolution value and also configure the pulse select bits, that select which pulse to use for timing events in the HRPWM module.
| baseAddr | Base Address of PWMSS instance used. |
| compAHighResVal | Counter-comparator A high resolution value |
| ShadowToActiveLoadTrigger | Condition when the active reg to be loaded. This parameter can take values from the following enum |
| CSL_PASS | for success |
| CSL_EUNSUPPORTED_CMD | for unsupported API on this SOC |
| void CSL_epwmHrLoadTbPhaseHrValue | ( | uint32_t | baseAddr, |
| uint32_t | tbPhsHighResVal | ||
| ) |
This API loads the Timebase Phase high resolution register value.
| baseAddr | Base Address of PWMSS instance used. |
| tbPhsHighResVal | Time-base phase high resolution value. |
| uint16_t CSL_epwmTbGetStatus | ( | uint32_t | baseAddr, |
| uint32_t | tbStatusMask | ||
| ) |
This API gets the Time Base status as indicated by the tbStatusMask parameter.
| baseAddr | Base Address of PWMSS instance used. |
| tbStatusMask | Flag indicating the type of status needed. 'tbStatusMask' can take values from the following enum |
| tbStatus | Requested status is returned. |
| void CSL_epwmTbPwmFreqCfg | ( | uint32_t | baseAddr, |
| uint32_t | tbClk, | ||
| uint32_t | pwmFreq, | ||
| uint32_t | counterDir, | ||
| uint32_t | enableShadowWrite | ||
| ) |
This API configures the PWM Time base counter Frequency/Period.
The period count determines the period of the final output waveform.
| baseAddr | Base Address of PWMSS instance used. |
| tbClk | Timebase clock in Hz. |
| pwmFreq | Frequency of the PWM Output in Hz. |
| counterDir | Direction of the counter(up, down, up-down). 'counterDir' can take values from the following enum |
| enableShadowWrite | Flag controlling Whether write to Period register is to be shadowed or not. 'enableShadowWrite' can take values from the following enum |
| uint16_t CSL_epwmTbReadTbCount | ( | uint32_t | baseAddr | ) |
This API gets the Time base counter current value. The count operation is not affected by the read.
| baseAddr | Base Address of PWMSS instance used. |
| tbCount | Current Timebase count value. |
| void CSL_epwmTbSetEmulationMode | ( | uint32_t | baseAddr, |
| uint32_t | mode | ||
| ) |
This API configures emulation mode. This setting determines the behaviour of Timebase counter during emulation (debugging).
| baseAddr | Base Address of PWMSS instance used. |
| mode | Emulation mode. 'mode' can take values from the following enum |
| void CSL_epwmTbSetSyncOutMode | ( | uint32_t | baseAddr, |
| uint32_t | syncOutMode | ||
| ) |
This API selects the source of the synchronization output signal. It determines on which of the supported events sync-out has to be generated.
| baseAddr | Base Address of PWMSS instance used. |
| syncOutMode | Sync out mode. 'syncOutMode' can take values from the following enum |
| void CSL_epwmTbStatusClear | ( | uint32_t | baseAddr, |
| uint32_t | tbStatusClrMask | ||
| ) |
This API clears the Time base status bits indicated by the tbStatusClrMask parameter.
| baseAddr | Base Address of PWMSS instance used. |
| tbStatusClrMask | Mask indicating which status bit need to be cleared 'tbStatusClrMask' can take following values |
| void CSL_epwmTbSyncDisable | ( | uint32_t | baseAddr | ) |
This API disables the synchronization. Even if sync-in event occurs the count value will not be reloaded.
| baseAddr | Base Address of PWMSS instance used. |
| void CSL_epwmTbSyncEnable | ( | uint32_t | baseAddr, |
| uint32_t | tbPhsValue, | ||
| uint32_t | counterDir | ||
| ) |
This API enables the synchronization of time base sub-module and also configures the phase count value to be loaded after sync event, counter direction after sync event.
When a sync-in event is generated the the time base counter is reloaded with the new value. After sync the counter will use the new value and direction as specified after sync event.
| baseAddr | Base Address of PWMSS instance used. |
| tbPhsValue | Phase value to be reloaded after sync |
| counterDir | Count direction after sync. 'counterDir' can take values from the following enum |
| void CSL_epwmTbTimebaseClkCfg | ( | uint32_t | baseAddr, |
| uint32_t | tbClk, | ||
| uint32_t | moduleClk | ||
| ) |
This API configures the clock divider of the Time base module.
The clock divider can be calculated using the equation TBCLK = SYSCLKOUT/(HSPCLKDIV × CLKDIV)
| baseAddr | Base Address of PWMSS instance used. |
| tbClk | Timebase clock to be generated in Hz. |
| moduleClk | Input clock of the PWM module (sysclk2) in Hz. |
| void CSL_epwmTbTriggerSwSync | ( | uint32_t | baseAddr | ) |
This API generates software triggered sync pulse.
| baseAddr | Base Address of PWMSS instance used. |
| void CSL_epwmTbWriteTbCount | ( | uint32_t | baseAddr, |
| uint32_t | tbCount | ||
| ) |
This API loads the Time base counter. The new value is taken immediately.
| baseAddr | Base Address of PWMSS instance used. |
| tbCount | Time base count value to be loaded. |
| uint16_t CSL_epwmTzEventStatus | ( | uint32_t | baseAddr, |
| uint32_t | eventMask | ||
| ) |
This API returns the selected trip zone event status.
| baseAddr | Base Address of PWMSS instance used. |
| eventMask | Type of status which has to be read. This parameter can take values from the following enum |
| Status | Status of the required status flag. |
| void CSL_epwmTzEventStatusClear | ( | uint32_t | baseAddr, |
| uint32_t | eventMask | ||
| ) |
This API clears the selected trip zone event status.
| baseAddr | Base Address of PWMSS instance used. |
| eventMask | Type of status which has to be read. This parameter can take values from the following enum |
| void CSL_epwmTzIntrDisable | ( | uint32_t | baseAddr, |
| uint32_t | tzEventType | ||
| ) |
This API disables the trip interrupt.
| baseAddr | Base Address of PWMSS instance used. |
| tzEventType | Trip zone event for which interrupt has to be enabled. This parameter can take values form the following enum |
| void CSL_epwmTzIntrEnable | ( | uint32_t | baseAddr, |
| uint32_t | tzEventType | ||
| ) |
This API enables the trip interrupt. When trip event occurs the sub-module can be configured to interrupt CPU.
| baseAddr | Base Address of PWMSS instance used. |
| tzEventType | Trip zone event for which interrupt has to be enabled. This parameter can take values form the following enum |
| void CSL_epwmTzTriggerSwEvent | ( | uint32_t | baseAddr, |
| uint32_t | tzEventType | ||
| ) |
This API enables to generate Software forced trip condition.
| baseAddr | Base Address of PWMSS instance used. |
| tzEventType | Type of trip condition which has to be generated. This parameter can take values from the following enum |
| void CSL_epwmTzTriggerTripAction | ( | uint32_t | baseAddr, |
| uint32_t | tripAction, | ||
| uint32_t | pwmOutputCh | ||
| ) |
This API configures the o/p on PWM channel when a trip event is recognized. The output can be set to high or low or high impedance.
| baseAddr | Base Address of PWMSS instance used. |
| tripAction | Action to be taken on the PWM output. This parameter can take values from the following enum |
| pwmOutputCh | PWM Output channel type either A or B 'pwmOutputCh' can take values from the following enum |
| void CSL_epwmTzTripEventDisable | ( | uint32_t | baseAddr, |
| uint32_t | tzEventType, | ||
| uint32_t | pinNum | ||
| ) |
This API disable the trip event. The disabled trip events will be ignored.
| baseAddr | Base Address of PWMSS instance used. |
| tzEventType | Disable OST or CBC trip zone event This parameter can take values from the following enum |
| pinNum | Pin number on which trip zone event has to be disabled. |
| void CSL_epwmTzTripEventEnable | ( | uint32_t | baseAddr, |
| uint32_t | tzEventType, | ||
| uint32_t | pinNum | ||
| ) |
This API enables the trip event.
The trip signals indicates external fault, and the ePWM outputs can be programmed to respond accordingly when faults occur.
| baseAddr | Base Address of PWMSS instance used. |
| tzEventType | Enable OST or CBC trip zone event This parameter can take values from the following enum |
| pinNum | Pin number on which trip zone event has to be enabled. |


Email Experiment
My long standing dislike of emails (well, email software) is well known as I moan about it here and here. Well this came to a head this week again when I decided to slim down my hard drive due to boot camping again.
Part of this involved running JDiskReport to see what was taking up space. As part of this, I ended up moving my iPad to back up to iCloud and will then eventually remove all the apps from being kept on my machine (as that’s a fairly hefty 7GB - which adds up when you only have 320 to play with and you want at least 60 of that for Windows!) Anyhow, the point is I ended up finding at least 4GB of emails on my hard drive from the various programs I’ve used in the past. Even though I checked “do not download messages to the hard drive”, Postbox and Mail were saving messages. I just want an iOS Mail.app style client where the messages aren’t downloaded (and if they are, they’re not kept on the device - at least as far as I’m aware they aren’t).
 I’ve liked webmail in the past when Google Mail was actually useable - now with it’s VIP rubbish and then it’s horrendous change in style made it unusable, amongst a few other considerations (back when I tried it, there was no mailto: integration for browsers etc) meant I firmly stuck with an email client. Back then it was Thunderbird but I moved when I changed to the Mac - using Mail.app and then Sparrow and then finally Postbox.
All of them weren’t great and so now I’ve spent a week with the webmail (and iOS) and I’m not missing it to much.
Web Mail Service
I decided to investigate the different webmail options open to me before making a choice. The Wikipedia page on web based email was extremely helpful (link) and I narrowed my solution down to Zoho, based on a number of factors, one of which was that I could change my domain name. I ended up getting a domain name, solely for email to go with it. Anyhow, signup to Zoho was free, easy and painless.
Migration
Unlike when I switched to iCloud for email, I didn’t migrate my email - I don’t recall there actually being a tool to do so (sure, there’s some workarounds) but there was no simple way of doing it. Zoho offered to migrate the emails using a simple service in the settings. This worked perfectly, though I did need to move over the Sent Items into the Sent folder, thanks to some inconsistencies in folder naming between the two services. Once that had done, I didn’t have any issues.
It was all done via IMAP access by filling out the form below and proceeds without any further action by the user.
Mail Evaluation
By setting up forwarding from my iCloud account and POP collection from my Gmail account, I’ve been able to re-evaluate all the mails I’ve been getting and have slowly been either:
-
Moving them to my new email
-
Unsubscribing from the mailing list
-
Consigning them to junk folders where the emails either refuse to honour my unsubscribe or don’t offer an unsubscribe option
It’s amazing how much stuff I’d actually signed up for and tended to auto pilot drop it straight into the bin!
Hotkeys
Zoho, like Gmail, supports the use of hotkeys which means that you can easily use the webpage with hotkeys, something I find essential. The benefit of the web based email is that the settings are set once and then apply where ever and when ever you access the website. This has to be one area where I feel that Zoho could improve - the accuracy of the hotkeys is a bit hit and miss - sometime the hotkeys work but other times I find myself having to click to remove or archive the email as the hotkey doesn’t seem to be working. This is a pain, especially as my browser is on the supported list (Firefox 16).
Overall
To date, I’ve not really had many issues in the move to webmail. In fact, it’s helped somewhat by the fact it’s easier to check my email from any computer (such as work) and having App tabs in Chrome and Firefox - though for some reason the app tab on Firefox on the Mac causes some issues (I’ve noticed some playback errors in iTunes when the App tab is in the background at random intervals - I think these coincide with the page refreshing).
Another upside is the excellent Markdown Here plugin I mentioned in a previous post. This means I can easily write emails in Markdown and then have it sent in normal format. Now, to find the same sort of think for Outlook for work!
So for the foreseeable future, it looks like I’ll be using a webmail solution for my email and Zoho seems to excel where Gmail falls down (adverts, email tracking and user interface - what happened Google?!). It’s not without its downsides but I feel these are fairly minimal in the long run.


The goal of tidyVA is to provide simple features of Veterans Health Administration geographies. Data included are tidy data frames of VHA spatial data obtained from data.va.gov. Please note the site is no longer operational while VA establishes a new open data portal.
The benefit of simple features in R is that they allow for tidy spatial analysis.
The following included datasets are sf-tibbles of VHA geographies with a common CRS - EPSG: 4326.
Summarized descriptions from data.va.gov
county
: The county layer is the base geographic unit of the VISN-Market-Submarket-Sector-County hierarchy.
sector
: A sector is a cluster of geographically adjacent counties within a VA Submarket.
submarket
: Submarkets reflect a clustering of the enrolled population within a market and are an aggregation of Sectors.
market
: Each market is built from submarkets and represent an aggregated geographic area having sufficient population and geographic size to benefit from planning healthcare services. Markets cross state borders where necessary to keep the catchment area within the same market
visn
: VISNs are the upper echelon in the VHA hierarchy. VISN boundaries align with those of their constituent markets and can span across non-contiguous areas.
states
: Simple features of states and territories of the US (CRS - EPSG: 4326). Used for spatial joins and geometric manipulations.
VAloc
: Simple features (CRS - EPSG: 4326) of all VA facilities - from all Administrations: Veterans Health Administration, Veterans Benefits Administration, and National Cemetery Administration
This is a basic example which shows you how to solve a common problem:
VHA Submarkets are an aggregation of Sectors; and Sectors are comprised of one or more counties. Since each VISN is defined in a hierarchy, this dataset contains attributes of all echelons above submarket - that is, Market and VISN.
Although accurate, this output is not very easy to work with. Since this is in tidy format, though, we can easily filter and manipulate the data.
glimpse(submarket)
#> Observations: 153
#> Variables: 6
#> $ VISN <chr> "01", "01", "01", "01", "02", "02", "02", "02", "02", "0...
#> $ MARKET <chr> "01-a", "01-b", "01-c", "01-d", "02-a", "02-b", "02-d", ...
#> $ SUBMARKET <chr> "01-a-9", "01-b-9", "01-c-9", "01-d-9", "02-a-9", "02-b-...
#> $ Shape_Leng <dbl> 38.391428, 81.160361, 13.413957, 14.839457, 13.081583, 1...
#> $ Shape_Area <dbl> 1.78751288, 9.66806953, 5.47709016, 2.19550641, 4.907932...
#> $ geometry <MULTIPOLYGON [°]> MULTIPOLYGON (((-71.56974 4..., MULTIPOLYGO...
#> Simple feature collection with 10 features and 5 fields
#> geometry type: MULTIPOLYGON
#> dimension: XY
#> bbox: xmin: -79.13745 ymin: 39.50577 xmax: -71.85615 ymax: 45.01585
#> epsg (SRID): 4326
#> proj4string: +proj=longlat +datum=WGS84 +no_defs
#> # A tibble: 10 x 6
#> VISN MARKET SUBMARKET Shape_Leng Shape_Area geometry
#> * <chr> <chr> <chr> <dbl> <dbl> <MULTIPOLYGON [°]>
#> 1 02 02-a 02-a-9 13.1 4.91 (((-73.34312 45.01084, -73.3446~
#> 2 02 02-b 02-b-9 18.8 4.01 (((-76.18704 43.66566, -76.1869~
#> 3 02 02-d 02-d-9 6.58 1.25 (((-78.90518 42.93351, -78.9050~
#> 4 02 02-e 02-e-1 2.49 0.191 (((-77.97621 43.36874, -77.9753~
#> 5 02 02-e 02-e-2 6.01 0.656 (((-76.94668 43.25894, -76.9463~
#> 6 02 02-f 02-f-2 6.14 1.63 (((-76.94756 42.76441, -76.9477~
#> 7 02 02-g 02-g-9 25.2 0.335 (((-73.72961 40.59637, -73.7289~
#> 8 02 02-h 02-h-1 9.51 0.999 (((-73.89687 40.79565, -73.8970~
#> 9 02 02-h 02-h-3 5.92 0.0717 (((-74.20241 40.57956, -74.2023~
#> 10 02 02-i 02-i-9 17.4 1.24 (((-74.30019 39.50628, -74.3048~
shift_geo
shift_geo()
will project and re-position Alaska and Hawaii, When supplied a complete dataset (from VHA Geographies).
theme_va()
theme_va()
is a copy of theme_ipsum
from hrbrthemes. It’s a ggplot theme with some color and plotting modifications to the defaults.
sail_tidy
sail_tidy
will return a tibble of VA SAIL metrics when provided a data table url.
sail_tidy("https://www.va.gov/QUALITYOFCARE/SAIL_FY19_Q1/SAIL-5_clarksburg_fy19q1.xlsx")
#> # A tibble: 63 x 8
#> label measure_unit preferred_direc~ best_10_percent ntiles_10_50_90 site
#> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 Acut~ O/E <U+2193> 0.469 0.469 - 0.857 ~ Clar~
#> 2 Acut~ O/E <U+2193> 0.740 0.740 - 0.952 ~ Clar~
#> 3 AMI ~ % <U+2193> 7.219 7.219 - 7.666 ~ Clar~
#> 4 CHF ~ % <U+2193> 5.676 5.676 - 6.820 ~ Clar~
#> 5 Pneu~ % <U+2193> 7.820 7.820 - 9.026 ~ Clar~
#> 6 COPD~ % <U+2193> 4.402 4.402 - 5.942 ~ Clar~
#> 7 Stro~ % <U+2193> 5.134 5.134 - 5.933 ~ Clar~
#> 8 In-h~ O/E <U+2193> 0.000 0.000 - 0.834 ~ Clar~
#> 9 Cath~ inf/1k devi~ <U+2193> 0.000 0.000 - 0.446 ~ Clar~
#> 10 Cent~ inf/1k devi~ <U+2193> 0.000 0.000 - 0.395 ~ Clar~
#> # ... with 53 more rows, and 2 more variables: value <chr>, measure <chr>


Google Voice vs. Happy Birthday
Google Voice’s transcription does funny things to people singing Happy Birthday.
I’d include the audio, but it’d be a copyright violation.
From my sister and brother-in-law. What’s funny is how close it is to what they actually were saying.
Dean, yup the, and a Yahoo The, and year, I man stable are good, a jacuzzi to. I’m going on man. Happy Birthday. And hey, we’re good and I’ll talk to you later. I love you bye. You were born. Bye.
From my dad and stepmom.
Hi, Happy Birthday interview. Happy Birthday to You. Happy Birthday Dear Ryan, Happy Birthday to you, man, Randall. Alright then. Marry a man. Ohh man. Bye bye.
Their support of gay marriage is nice (if somewhat misguided), but I wish they’d remembered my name. Seems like they struggled with that a bit.


Online Download Windows Registry Editor Version 5 00 Download
Windows 10 Registry How To Create And Edit The Reg File Businessnewsdaily Com
Change Font For Registry Editor In Windows 10 Tutorials
4 Tools To Decode And Convert Windows Registry Hex Values To Text Raymond Cc
How To Block The Windows 10 Upgrade Batchpatch The Ultimate Windows Update Tool
Windows Registry Editor Version 5 00 Download Disassembly Video Converter Windows Registry
Windows Registry Repair With And Without Registry Cleaners
How To Remove Administrator Privileges On Windows 8 8 1
Download Free Window Registry Repair Majorgeeks
Free Window Registry Repair A Windows Registry Repair Freeware
Download Free Window Registry Repair 4 3
Glarysoft Registry Repair 5 0 1 91 Free Download
Download Registry Repair Pro 4 5 0 0
Windows Registry Editor Version 5 00 Pl Download Exclusive Ircufely S Ownd
34 Best Free Registry Cleaner Programs April 2021
Registry Editor For Mac Softisreview
Free Window Registry Repair Download
Windows Repair 2021 V4 9 5 Unlocked Full Free Download Repair Windows Tool Design
Fix Windows Registry Free How To Fix 2020
Enable Windows Update Features On Demand And Turn Windows Features On Or Off In Wsus Environments The Tech Journal
Registry Repair 5 0 1 102 Download For Pc Free
Download Glarysoft Registry Repair Majorgeeks


187. Twist and whirl - want to cheat
time limit per test: 0.5 sec.
memory limit per test: 1024
KB
input: standard input
output: standard
output
A well-known sharper I*** invented a new way to swindle people.
There are N thimbles on the table, and there is a small ball with the number
under each of them. The balls are numbered with numbers from 1 to N from left to
right. At one operation I*** changes the order of some subsequence of successive
thimbles to the opposite. Your task is to find the order of numbers (from left
to right) in sequence after all of his manipulations. The total number of
manipulations is M.
Input
The first line contains two integer numbers N and M
(1<=N<=130000, 1<=M<=2000) separated by a space. Each of the
following M lines contains two integer numbers Pi, Qi (1<=Pi<=Qi<=N) -
positions of the leftmost and rightmost thimbles in rotated sequence.
Output
Output the sequence of N numbers - the numbers of balls in the
thimbles from left to right.
Sample test(s)
Input
Test #1
5 2
1 3
4 5
Test #2
5 2
1 4
2 5
Output
Test #1
3 2 1 5 4
Test #2
4 5 1 2 3
| Author: |
Michael R. Mirzayanov |
| Resource: |
ACM International Collegiate Programming Contest 2003-2004
North-Eastern European Region, Southern Subregion |
| Date: |
2003 October, 9
|
| Server time: 2004-01-14 11:16:36 |
Online Contester Team © 2002 - 2003. All
rights
reserved. | | |


regnar
BOT
05-Jun-18 11:27 AM
"from longest chain to publicly witnessed chain. Even if the attacker mines a longer chain, the fact that the attacker’s older blocks were not witnessed publicly is grounds for rejection of his fork." @gamecredits @KomodoPlatform use Komodo Consensus #dpow https://t.co/w...
Do we like "Komodo Consensus # dPoW" ?
it is a question for Steve
not as a name change obviously, but as a simple way of describing the function of dPoW as a notary service that involves consensus on what the notarized hash says. <@U6ZES59AA>
bleh, its early, not sure if that came out right
I only made a very small change to satoshi consensus rules, not sure it deserves its own consensus label. It even uses the same checkpointing process the normal inside the sourcecode checkpointing does, just dynamically, every 10 minutes
but I have seen a lot of FUD about checkpointing being centralized...
I dont really care what it is marketed as
yea that is a tricky part, "64 nodes?! that's not decentralized" says the bitcoin and XRP bag holder
but there are still miners in KMD
well see what Steve thinks about it, I know Hansen, Fishy, Mylo and a few others were discussing it earlier today
64 nodes running the same notarization dapp
and the notaries will be the first to admit it is quite random which 13 notaries are selected for each round
and 64 might be small compared to BTC but for a lot of the small coins that is almost as many as their entire mining set of mining nodes
also BTC mining pools are much less than 64 to get majority hashrate
before complaining about the centralization of another project, maybe best to make sure 6 mining pools dont control the majority of your hashrate
and before the maximalist retorts that each pool represents potentially thousands of different miners, I ask them, which of those thousands of miners controls the blocktemplate that is being mined?
any of the thousand miners or the pool operator?
yep, this similar problem came up earlier. the comparison may not be fair, but it will be made. so we just best prepare ourselves for an answer
if it is the pool operator, then doesnt that mean that 6 people control the BTC majority hashrate?
and they would complain about our 64 notaries?
like atomic swap DEX vs CEX for trade times...
I don't think I know this one haha
it is a big enough number to be impractical to easily dominate
yet it isnt so large that a N*N fully connected network wont explode with traffic
so having 256 notaries is not only impractical from an elections standpoint as I doubt three are even 256 people who have the skills to be notaries, it dilutes notary rewards 8fold and increases network traffic 16 fold
and still the maximalists would say that "only 256 notaries" is centralized
It sounds like you recently got into a debate with a maximalist haha
I don't often hear "Notary nodes are centralized"
maximalists used to be a real annoyance back when BTC dominance was 90%, nowadays most are much more realistic, even if their rhetoric doesnt reflect it
and dont get me wrong, BTC's network effect will ensure it will be here long term and KMD notarizes to BTC for a good reason. I am not against BTC in any way
its just that some maximalists sound like fiat officials saying BTC is backed by nothing, as if all the fiat paper is


Manage quiz data
Retrieve
and list all quiz records
Create
a new quiz record
Update
a quiz record
Delete
a quiz record
Generate
test data
Clear
database
Retrieve and list all quizzes
ISBN
Title
Year
Edition
Back to menu
Create a new quiz record
ISBN:
Title:
Year:
Edition:
Save
Back to menu
Update a quiz record
Select quiz:
ISBN:
Title:
Year:
Edition:
Save
Back to menu
Delete a quiz record
Select quiz:
Delete
Back to menu


We decided to pack light, and to add item to our luggage while traveling if needed. So
we only have one big backpack (60 liter) and one small school size backpack for the both
of us. But let's be real, it’s summer clothing. You don’t need a winter jacket and 4
pair of shoes, it's easier to pack light that way. We packed one good pair of running
shoes and a comfortable pair of flip flops (I insist on the comfortable part). We also
had one hoody each and one pair of long pants (mainly for the planes ride which tend to
by pretty well climatised…). The rest was summer clothes, short, dress, top tank,
t-shirt and dress. (to be honest, most of the clothing are mine….but I was incredibly
happy to have dresses, even long one are often less warm than short). In the bag, there
was also our toiletry items, like soap toothbrush and other. Don’t forget your swimsuit,
2-3 even because sand and sun are not kind to swimsuits… We also had our own towels but
we didn’t bring reusable water bottle. You won’t use them, tap water is undrinkable. We
use tap water for brushing our teeth most of the time without problem (expect Bali… we
got a little sick….) but never drink it. Therefore, you have to buy plastic bottle all
the time.
You don’t need a lot of clothes, there’s laundry places everywhere and they are pretty
cheap (in Bangkok it costs around 50 bath (2$) for a big basket of clothing). We also
hand wash a few items (Here’s more information about laundry)
Worse case scenario you need to buy more clothes and that's not what’s missing in Asia.
If my 6.6 bear can find clothes you can for sure! And the clothes are also way cheaper
there.
Our smaller backpack mainly contained our electronic (computer, tablet, readers and all
chargers that come with those)


IntroductionFrequently asked questionsSyntax, keywords and built-in functionsStandard distributionimport implementationBrowser interface
Introduction - DOM API
Creating a document Accessing elements Attributes and methods Events Mouse events Keyboard events Focus events Drag events Query string Using Javascript objects and libraries Brython-specific built-in modules
browser
browser.ajax browser.html browser.local_storage browser.markdown browser.object_storage browser.session_storage browser.svg browser.timer browser.websocket javascript Working with Brython
Options of function
brython()
Installing the development environment Testing and debugging Deploying an application Brython for Firefox OSCookbook |
Keyboard eventsKeyboard events are
For keyboard events, the |
altKey
This attribute is not set for the input event It is usually used with keypress, to be able to test if Alt+<key> was entered, or just <key> |
ExampleEnter text in the field below, with or without pressing the Alt key
Codefrom browser import document def altKey(ev): document["traceAltKey"].text = 'altKey : %s ' %ev.altKey # the entry field has the id "altKey" document['altKey'].bind('keypress', altKey) |
charCode
The Unicode reference number of the key This attribute is used only by the keypress event It is set to a different value if the Shift key is pressed or not |
ExampleEnter text in the entry below. Note that the character can be read bych(ev.charCode)
Codefrom browser import document def charCode(ev): trace = document["traceCharCode"] char = chr(ev.charCode) trace.text = 'charCode : %s, ' %ev.charCode trace.text += 'character : %s' %char document['charCode'].bind('keypress', charCode) |
||
ctrlKey
This attribute is not set for the input event It is usually used with keypress, to be able to test if Ctrl+<key> was entered, or just <key> |
ExampleEnter text in the field below, with or without pressing the Ctrl keyCodefrom browser import document def ctrlKey(ev): trace = document["traceCtrlKey"] trace.text = 'ctrlKey : %s ' %ev.ctrlKey ev.preventDefault() document['ctrlKey'].bind('keypress', ctrlKey) ev.preventDefault() is used to avoid the default behaviour of some keyboard shortcuts using the Ctrl key
|
||||
keyCode
A system and implementation dependent numerical code identifying the unmodified value of the pressed key The value doesn't change if the keys Alt, Ctrl or Shift are pressed Note that the result is not the same depending on the handled events keydown, keyup or keypress |
ExampleEnter text in the entry fields below. Note that the character can be read bych(ev.charCode) with the keypress event
with keydown
with keypress with keyup Codefrom browser import document def keyCode(ev): trace = document["traceKeyCode"] trace.text = 'event %s '%ev.type trace.text += ', keyCode : %s ' %ev.keyCode ev.stopPropagation() document['keyCodeKeydown'].bind('keydown', keyCode) document['keyCodeKeypress'].bind('keypress', keyCode) document['keyCodeKeyup'].bind('keyup', keyCode) |
||||
shiftKey
This attribute is not set for the input event It is usually used with keypress, to be able to test if Shift+<key> was entered, or just <key> |
ExampleEnter text in the field below, with or without pressing the Shift keyCodefrom browser import document def shiftKey(ev): trace = document["traceShiftKey"] trace.text = 'shiftKey : %s ' %ev.shiftKey document['shiftKey'].bind('keypress', shiftKey) |
||||
which
A system and implementation dependent numeric code identifying the unmodified value of the pressed key Note that the result is not the same depending on the handled events keydown, keyup or keypress |
ExampleEnter text in the entry below. Note that the character can be read bychr(ev.which) for the keypress event
|


person(1) has YEAR_PERCENT_MORE% more money today than he(1) did this time last year. If person(1) has $YEAR_THIS today, how much money did he(1) make over this past year? (Round to the nearest cent, or hundredth of a dollar.)
round((YEAR_THIS - YEAR_LAST) * 100) / 100
Let x
be the amount of money that he(1) had last year.
x + YEAR_PERCENT_MORE / 100x = $YEAR_THIS
(100 + YEAR_PERCENT_MORE) / 100x = $YEAR_THIS
x = \dfrac{$YEAR_THIS}{(100 + YEAR_PERCENT_MORE) / 100}
x = $YEAR_LAST
(rounding to the nearest penny in this step)
So, he(1) had $YEAR_LAST last year, but we want to know how much he(1) has made over the past year!
\text{money made over the past year} = \text{amount of money today} - \text{amount of money last year}
\qquad =$YEAR_THIS-$YEAR_LAST
\qquad \approx $round((YEAR_THIS - YEAR_LAST) * 100) / 100
So, the answer is $round((YEAR_THIS - YEAR_LAST) * 100) / 100.
person(1) has $DOLLARS to spend at a store. The store currently has a sale where the sale price is PERCENT_OFF% off the marked price. What is the highest marked price that person(1) can afford? (Round to the nearest cent, or hundredth of a dollar.)
HIGHEST_PRICE
Let x
be the highest marked price that person(1) can afford.
x-(PERCENT_OFF/100)x = \text{sale price} = \text{amount person( 1 ) has to spend}
((100-PERCENT_OFF)/100)x = $DOLLARS
x = $HIGHEST_PRICE


wildignore in macvim
-
Nick Carter
So I've tried setting this to both a quote-delimited string and without delimiters, but it doesn't seem to be excluding the directory I've specified.
In this case I'm running :set wildignore+=out/**
This should remove all files from the out directory (relative to the cwd at the moment) correct? I still see matches under out after running this.
-
Nick Carter
Seems I needed to add this to an autocommand, which I've done. I do see out/ results, but they're further down the list which is good enough for now.
-
Greg Hurrell
Yep,
:set wildignore+=out/**
should definitely work.Can you post the contents of your
~/.vimrc
and also the output of:set wildignore?
-
Nick Carter
Contents follow. This is from my work machine, which is slightly different from the one at home and which I haven't gotten CommandT working on yet:
color vilight set ic set hls is set si set foldmethod=indent set foldnestmax=10 set nofoldenable set foldlevel=1 set nu set backspace=indent,eol,start set noro set nowrap set tabstop=2 set shiftwidth=2 set autoindent set wildignore+=out/** filetype plugin on syntax on set guifont=Lucida_Console:h14:cANSI set guioptions=""
"this wildignore should also affect :vim searches is my understanding, and they are still coming back with results from out/
-
Greg Hurrell
Not sure if
'wildignore'
affects:vim
searches or not. Perhaps it does.In any case, You can test the effect of your
'wildignore'
setting by calling theexpand()
function.For example, just say your
'wildignore'
contains 'foo' and you're in a directory with files "foo" and "bar"::echo expand("foo")
will echo nothing at all, because the "foo" file in the current directory is filtered out by the'wildignore'
setting:echo expand("bar")
will echo "bar", because "bar" is not filtered out:echo expand("baz")
will echo "baz", because even though "baz" doesn't exist in the current directory, neither does it get filtered out
So, if your settings are correct, then
:echo expand("out/foo/bar")
should echo nothing at all.
Reply
This topic is now closed.


The skewness indicate the deviation of a distribution curve from a symmetrical curve.
A measure of the skewness is drived by MARDIA (1972, S. 35) from the second trigonometric moment.
From this we receive the second moment of the normalized vector sum:
The second moment of the direction is:
From these we receive the skewness (g1) WALLBRECHER (1986):
(m1 = direction of the resultant length vector)
When the data set consists of directions with lengths n is replaced by the sum of the lengths.


Before Change
reshaped_features = {}
for name in example_feature_columns:
if name not in features:
continue
batch_size = tf.shape(input=features[name])[0]
try:
reshaped_features[name] = utils.reshape_first_ndims(
features[name], 2, [batch_size * input_size])
After Change
reshaped_features = {}
for name in example_specs:
if name not in features:
tf.compat.v1.logging.warn("Feature {} is not found.".format(name))
continue
batch_size = tf.shape(input=features[name])[0]
try:
reshaped_features[name] = utils.reshape_first_ndims(
features[name], 2, [batch_size * input_size])