Serial Wombat Arduino Library

Loading...
Searching...
No Matches
SerialWombatHSClock.h
Go to the documentation of this file.
1#pragma once
2/*
3 Copyright 2023-2024 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"
30
31
34
60
61 class SerialWombatHSClock : public SerialWombatPin
62{
63 public:
68 SerialWombatHSClock(SerialWombatChip &sw):SerialWombatPin(sw){}
69
75 */
76 int32_t begin(uint8_t pin, uint32_t frequency_Hz)
77 {
78 _pin = pin;
79 _pinMode = PIN_MODE_HS_CLOCK;
80
81 uint8_t tx[] =
82 {
83 (uint8_t)SerialWombatCommands::CONFIGURE_PIN_MODE0,
84 _pin,
85 _pinMode,
86 SW_LE32(frequency_Hz),
87 0x55
88 };
89 uint8_t rx[8];
90 int16_t result = _sw.sendPacket(tx, rx);
91 if (result < 0)
92 {
93 return (result);
94 }
95
96 int32_t returnval = (((uint32_t)rx[5]) << 16) + (((uint32_t)rx[4]) << 8) + rx[3];
97 return (returnval);
98 }
99
100};
SerialWombat.h
SerialWombatCommands::CONFIGURE_PIN_MODE0
@ CONFIGURE_PIN_MODE0
(200)
Definition SerialWombat.h:228
SW_LE32
#define SW_LE32(_a)
Convert a uint32_t to four bytes in little endian format for array initialization.
Definition SerialWombat.h:44
PIN_MODE_HS_CLOCK
@ PIN_MODE_HS_CLOCK
Definition SerialWombat.h:277
SerialWombatChip
Class for a Serial Wombat chip. Each Serial Wombat chip on a project should have its own instance.
Definition SerialWombat.h:297
SerialWombatHSClock::SerialWombatHSClock
SerialWombatHSClock(SerialWombatChip &sw)
Class constructor for SerialWombatHSClock pin mode.
Definition SerialWombatHSClock.h:68
SerialWombatHSClock::begin
int32_t begin(uint8_t pin, uint32_t frequency_Hz)
Begin outputing a clock at a frequency on a specified pin /.
Definition SerialWombatHSClock.h:76
SerialWombatPin::_sw
SerialWombatChip & _sw
Definition SerialWombatPin.h:194
SerialWombatPin::SerialWombatPin
SerialWombatPin(SerialWombatChip &serialWombatChip)
Instantiates a Serial Wombat Pin.
Definition SerialWombatPin.h:45
SerialWombatPin::_pin
uint8_t _pin
Definition SerialWombatPin.h:193
SerialWombatPin::pin
uint8_t pin()
Returns the current SW pin number. Used primarily for virtual calls by derived classes.
Definition SerialWombatPin.h:121
SerialWombatPin::_pinMode
uint8_t _pinMode
Definition SerialWombatPin.h:195