Serial Wombat Arduino Library
SerialWombatPWM.h
Go to the documentation of this file.
1 #pragma once
2 /*
3 Copyright 2020-2021 Broadwell Consulting Inc.
4 
5 "Serial Wombat" is a registered trademark of Broadwell Consulting Inc. in
6 the United States. See SerialWombat.com for usage guidance.
7 
8 Permission is hereby granted, free of charge, to any person obtaining a
9  * copy of this software and associated documentation files (the "Software"),
10  * to deal in the Software without restriction, including without limitation
11  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12  * and/or sell copies of the Software, and to permit persons to whom the
13  * Software is furnished to do so, subject to the following conditions:
14 
15 The above copyright notice and this permission notice shall be included in
16  * all copies or substantial portions of the Software.
17 
18 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
22  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
23  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24  * OTHER DEALINGS IN THE SOFTWARE.
25 */
26 
27 
28 #include <stdint.h>
29 #include "SerialWombat.h"
33 typedef enum
34 {
52 
77 
79 {
80 public:
83  SerialWombatPWM(SerialWombatChip& serialWombat );
84 
89  void begin(uint8_t pin, uint16_t dutyCycle = 0,bool invert = false);
90 
93  void writeDutyCycle(uint16_t dutyCycle);
94 
96 private:
97 };
98 
99 
102 {
103 public:
104  SerialWombatPWM_4AB(SerialWombatChip& serialWombat);
118 };
119 
122 {
123 public:
124  SerialWombatPWM_18AB(SerialWombatChip& serialWombat);
125 
126 
127 
131  void writeFrequency_Hz(uint32_t frequency_Hz);
132 
136  void writePeriod_uS(uint32_t period_uS);
137 
140  uint8_t pin();
143  uint8_t swPinModeNumber();
144 };
145 
SerialWombatPWM_18AB::SerialWombatPWM_18AB
SerialWombatPWM_18AB(SerialWombatChip &serialWombat)
Definition: SerialWombatPWM.cpp:31
SerialWombatChip
Class for a Serial Wombat chip. Each Serial Wombat chip on a project should have its own instance.
Definition: SerialWombat.h:267
SW4AB_PWMFrequency_15625_Hz
@ SW4AB_PWMFrequency_15625_Hz
Definition: SerialWombatPWM.h:49
SerialWombatPWM_18AB::pin
uint8_t pin()
fulfills a virtual function requirement of SerialWombatAbstractScaledOutput
Definition: SerialWombatPWM.cpp:50
SW4AB_PWMFrequency_31250_Hz
@ SW4AB_PWMFrequency_31250_Hz
Definition: SerialWombatPWM.h:50
SW4AB_PWMFrequency_244_Hz
@ SW4AB_PWMFrequency_244_Hz
Definition: SerialWombatPWM.h:43
SW4AB_PWMFrequency_1_Hz
@ SW4AB_PWMFrequency_1_Hz
Definition: SerialWombatPWM.h:35
SW4AB_PWMFrequency_488_Hz
@ SW4AB_PWMFrequency_488_Hz
Definition: SerialWombatPWM.h:44
SW4AB_PWMFrequency_63_Hz
@ SW4AB_PWMFrequency_63_Hz
Definition: SerialWombatPWM.h:41
SerialWombatPWM::SerialWombatPWM
SerialWombatPWM(SerialWombatChip &serialWombat)
Constructor for SerialWombatPWM class.
Definition: SerialWombatPWM.cpp:3
SW4AB_PWMFrequency_4_Hz
@ SW4AB_PWMFrequency_4_Hz
Definition: SerialWombatPWM.h:37
SerialWombatPWM_4AB
Extends the SerialWombatPWM class with SW4A/SW4B specific functionality.
Definition: SerialWombatPWM.h:101
SW4AB_PWMFrequency_8_Hz
@ SW4AB_PWMFrequency_8_Hz
Definition: SerialWombatPWM.h:38
SerialWombatAbstractScaledOutput
SerialWombatServo, SerialWombatPWM and other proportional ouptut classes inherit from this class....
Definition: SerialWombatAbstractScaledOutput.h:61
SerialWombatPWM
A class representing a Serial Wombat PWM output.
Definition: SerialWombatPWM.h:78
SW4AB_PWMFrequency_976_Hz
@ SW4AB_PWMFrequency_976_Hz
Definition: SerialWombatPWM.h:45
SerialWombatPWM_4AB::setFrequency_SW4AB
void setFrequency_SW4AB(Wombat4A_B_PWMFrequencyValues_t frequency)
Set PWM Frequency (Adjusts all PWM outputs' frequency on a SerialWombat 4A/B chip)
Definition: SerialWombatPWM.cpp:25
SerialWombat.h
SerialWombatPWM::writeDutyCycle
void writeDutyCycle(uint16_t dutyCycle)
Set PWM duty cycle.
Definition: SerialWombatPWM.cpp:15
SerialWombatPWM_18AB::writePeriod_uS
void writePeriod_uS(uint32_t period_uS)
Set the PWM period on a Serial Wombat 18AB chip's PWM.
Definition: SerialWombatPWM.cpp:44
SerialWombatPWM_18AB::swPinModeNumber
uint8_t swPinModeNumber()
fulfills a virtual function requirement of SerialWombatAbstractScaledOutput
Definition: SerialWombatPWM.cpp:55
SerialWombatPin
Describes a Serial Wombat Pin. Is base class for other pin modes.
Definition: SerialWombat.h:727
SerialWombatPWM_4AB::SerialWombatPWM_4AB
SerialWombatPWM_4AB(SerialWombatChip &serialWombat)
Definition: SerialWombatPWM.cpp:21
SerialWombatPWM::~SerialWombatPWM
~SerialWombatPWM()
Definition: SerialWombatPWM.cpp:64
Wombat4A_B_PWMFrequencyValues_t
Wombat4A_B_PWMFrequencyValues_t
Definition: SerialWombatPWM.h:33
SW4AB_PWMFrequency_1952_Hz
@ SW4AB_PWMFrequency_1952_Hz
Definition: SerialWombatPWM.h:46
SW4AB_PWMFrequency_7800_Hz
@ SW4AB_PWMFrequency_7800_Hz
Definition: SerialWombatPWM.h:48
SerialWombatPin::pin
uint8_t pin()
Returns the current SW pin number. Used primarily for virtual calls by derived classes.
Definition: SerialWombat.h:789
SerialWombatPWM_18AB
Extends the SerialWombatPWM class with SW18AB specific functionality, including SerialWombatAbstractS...
Definition: SerialWombatPWM.h:121
SerialWombatPWM::begin
void begin(uint8_t pin, uint16_t dutyCycle=0, bool invert=false)
Initialize a pin that has been declared as PWM.
Definition: SerialWombatPWM.cpp:8
SW4AB_PWMFrequency_3900_Hz
@ SW4AB_PWMFrequency_3900_Hz
Definition: SerialWombatPWM.h:47
SW4AB_PWMFrequency_16_Hz
@ SW4AB_PWMFrequency_16_Hz
Definition: SerialWombatPWM.h:39
SerialWombatPWM_18AB::writeFrequency_Hz
void writeFrequency_Hz(uint32_t frequency_Hz)
Set the PWM frequency on a Serial Wombat 18AB chip's PWM.
Definition: SerialWombatPWM.cpp:37
SW4AB_PWMFrequency_32_Hz
@ SW4AB_PWMFrequency_32_Hz
Definition: SerialWombatPWM.h:40
SW4AB_PWMFrequency_2_Hz
@ SW4AB_PWMFrequency_2_Hz
Definition: SerialWombatPWM.h:36
SW4AB_PWMFrequency_125_Hz
@ SW4AB_PWMFrequency_125_Hz
Definition: SerialWombatPWM.h:42