Infrared4Arduino 1.2.3
Loading...
Searching...
No Matches
IrSenderPwmSpinWait.cpp
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#include <Arduino.h>
19#include "IrSenderPwmSpinWait.h"
20
22}
23
24void inline IrSenderPwmSpinWait::sleepMicros(microseconds_t us) {
25 sleepUntilMicros(micros() + us);
26}
27
28void inline IrSenderPwmSpinWait::sleepUntilMicros(uint32_t targetTime) {
29 while (micros() < targetTime) {
30#if ! defined(ARDUINO) && ! defined(REAL_TIME)
31 // increment the simulated time, otherwise will loop forever
32 delayMicroseconds(1);
33#endif
34 yield();
35 }
36}
uint16_t microseconds_t
Type for durations in micro seconds.
Definition: InfraredTypes.h:15
uint8_t pin_t
Type for GPIO pin, compatible with Arduino libs.
Definition: InfraredTypes.h:41
Sending function using timer PWM.
IrSenderPwmSpinWait(pin_t sendPin)