Infrared4Arduino 1.2.3
Loading...
Searching...
No Matches
IrSenderPwmSoft.h
Go to the documentation of this file.
1/*
2Copyright (C) 2020 Bengt Martensson.
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation; either version 2 of the License, or (at
7your option) any later version.
8
9This program is distributed in the hope that it will be useful, but
10WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12General Public License for more details.
13
14You should have received a copy of the GNU General Public License along with
15this program. If not, see http://www.gnu.org/licenses/.
16*/
17
18#pragma once
19
20#include <Arduino.h>
21#include "IrSenderPwm.h"
22
29protected:
30 IrSenderPwmSoft(pin_t outputPin); // no default!
31 virtual ~IrSenderPwmSoft() {}
33 void sendMark(microseconds_t time);
34 static constexpr unsigned int PULSE_CORRECTION = 3U;
35
36 virtual void sleepMicros(microseconds_t us) = 0;
37 virtual void sleepUntilMicros(uint32_t terminateTime) = 0;
41};
int8_t dutycycle_t
Type for duty cycle in percent.
Definition: InfraredTypes.h:36
uint16_t microseconds_t
Type for durations in micro seconds.
Definition: InfraredTypes.h:15
uint32_t frequency_t
Type for modulation frequency in Hz.
Definition: InfraredTypes.h:31
uint8_t pin_t
Type for GPIO pin, compatible with Arduino libs.
Definition: InfraredTypes.h:41
static constexpr dutycycle_t defaultDutyCycle
Default duty cycle to use.
Definition: Board.h:69
Sending function using timer PWM.
microseconds_t periodTime
virtual void sleepMicros(microseconds_t us)=0
virtual void sleepUntilMicros(uint32_t terminateTime)=0
microseconds_t periodOnTime
microseconds_t periodOffTime
void enable(frequency_t hz, dutycycle_t dutyCycle=Board::defaultDutyCycle)
void sendMark(microseconds_t time)
static constexpr unsigned int PULSE_CORRECTION
virtual ~IrSenderPwmSoft()
Sending function using timer PWM.
Definition: IrSenderPwm.h:29