Questions tagged [timers]
Timers are the hardware in the processor used to count and time events. Use this tag for questions about the hardware timers.
452 questions
0
votes
1
answer
86
views
Use of 3 synchronized PWM pins on Arduino Nano
I try to use three PWM pins on an Arduino Nano, each with 10kHz. I know that there are timer0, timer1 and timer3 but I wonder if I can combine them while ensuring all three PWM pins to be in sync and ...
0
votes
0
answers
78
views
Gross timing error between crystals
Got two boards, getting a stable counter error ratio between the two of ~0.9895 (counted ticks divided by calculated ticks). Is this not a bit too low ? With +/- 50 ppm between the two crystals I was ...
1
vote
1
answer
42
views
How can I achieve <50 ppm timing with a Sparkfun Artemis ATP?
I want to sample an ADC at very regular intervals. Right now, using millis/micros (which are driven by the internal RC oscillator), I'm off by around 3000 ppm, and it drifts.
Here are some things that ...
1
vote
1
answer
96
views
Generate all frequencies between 5 and 8 kHz in steps of 1Hz
Is it possible generate all frequencies between 5000 and 8000Hz, 1Hz in between with an ATmega328?
When I create a c-program outside the Arduino IDE to calculate the frequencies with the formula ...
1
vote
2
answers
109
views
Unwanted toggle on OC1A
The code below for the ATmega328P (Arduino Pro Mini 5V @ 16 MHz) produces a periodic sequence on timer1 pins OC1A and OC1B:
#include "Arduino.h"
// For Arduino Pro Mini 5V @ 16 MHz
// ...
2
votes
2
answers
764
views
Arduino Uno Serial.write() how many bits are actually transmitted at once by UART and effect of baudrate on other interrupts
With Arduino Uno Rev3, I am trying to maintain a delicate timing while handling data transmission. I want to send 6 bytes at a time, which takes around ~44 us when I time Serial.write(). The time it ...
1
vote
1
answer
187
views
Does changing the prescale for Timer 0 or Timer 2 affect the micros() function?
I am using an ATTiny88 to drive a PWM device. First of all, digging through the literature, it's hard to tell what the differences between the ATTiny85 and ATTiny88 are, and the vast majority of ...
0
votes
2
answers
118
views
Timer setup interferes with LED blinking logic
This example is a simplified version of what I really need to do, but I think it demonstrates the problem (= my misunderstanding?). I need to use a timer to count microseconds; my code shows how I ...
0
votes
1
answer
111
views
Arduino Mega 2560 time delays counting between events on different pins
I am wondering how I can precisely count time delays between rise events happening on 4 different lines/pins using Input Capture of Arduino Mega 2560. How can I synchronize timer/counters? Appreciate ...
2
votes
1
answer
780
views
Emulating Arduino Uno with QEMU: interrupts do not work
So I wrote this code for Arduino Uno:
// file qemu.ino
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(millis());
}
And then compiled and uploaded it to the real ...
-1
votes
2
answers
1k
views
I need a 10KHZ PWM signal from pin 3 and 11 using timer 2
The op of pin 11 should be inverse of pin 3. I used digitalreadfast and digitalwritefast and used simple if else. But the delay is high as 10us. What should i do?
I found this code in forum but its ...
0
votes
1
answer
182
views
Unable to get keypad key in while loop [closed]
I'm a beginner into Arduino so I have a little problem where I'm trying to do a countdown on LCD using while loop but I'm also trying to get a key input inside that same while loop. Problem is that ...
0
votes
1
answer
117
views
Use TCC1 timer to generate PWM on personnal board built with SAMD21E18A
I'm trying to generate a PWM signal from TCC1. I have a personnal board built with SAMD21E18A. I want to use pin 27 PA30, in my variant.cpp I have this line:
{ PORTA, 30, PIO_PWM, PIN_ATTR_DIGITAL|...
1
vote
1
answer
376
views
Square wave generator generates a shorter pulse from time to time
I am using an arduino Micro to generate 8 square waves on 8 pins. The idea is as follows: on pin 13 is the main square wave. It represents a certain BPM (beats per minute). The other 7 pins should ...
0
votes
1
answer
212
views
Problem with Bing generated code for automated chicken coop door
Glenn from Sweden here. I was wondering if some kind soul could help me out here.
My partner bought a cheap chinese knock-off automatic chicken coop door that operates based on sunlight. Link to the ...
2
votes
2
answers
673
views
Using Internal Timer Interrupt to Read Analog Sensor
I'm having difficultly using an internal timer interrupt with my Arduino Nano to properly capture a specific value from a linear potentiometer and then instantly stopping the actuator.
I basically ...
1
vote
0
answers
254
views
ESP32 trouble with running ledcWrite inside of ISR
ESP32-S2 (Wemos/Lolin S2 mini)
Arduino 2.1.1 on Windows 11
Hello,
Thank you for taking the time to read this post and for any assistance you can provide. I consider myself a newbie when it comes to ...
1
vote
2
answers
163
views
Arduino UNO Power interruption
Do you have to upload the UNO after the applied power is disconnected?
Does the UNO retain the code without any power?
And when the power is disconnected, if the code is retained, will the timers ...
1
vote
0
answers
311
views
Using library functions in timer ISR ESP32
I'm trying to use a library function in my ISR function that uses the internal timer to trigger every 1 ms. The chip that I'm using is an ESP32-C3-MINI. Here is my current code:
main.cpp
#include <...
1
vote
1
answer
710
views
50% duty cycle PWM signal with calculated frequency
#include <PWM.h>
int led = 9;
void setup()
{
InitTimersSafe();
Serial.begin(115200);
Serial.println();
variable_freq();
pinMode(A0,INPUT);
}
void variable_freq()
{
while(true)
{
...
0
votes
0
answers
246
views
SDI-12 protocol, working with SoftwareSerial
I have a Teros 11 moisture sensor that I have managed to make it work with the SDI-12 arduino library.
However, this library does not work with SoftwareSerial and this is critical for me.
There is a ...
1
vote
2
answers
645
views
Timer 1 "Set on Compare Match" in Normal Mode - Not working
I'm using the hardware timers on the 328 for phase angle control of a triac with zero-crossing detection. I am encountering some strange behavior with the "Set on Compare Match" feature not ...
0
votes
2
answers
380
views
DS3231 with Arduino Nano for Timing precision
I need to synchronize two separate circuit boards working with Arduino Nano. The need is to activate one relay using Arduino-1 after 45 minutes, and another relay using Arduino-2 after 45.36 seconds. ...
2
votes
2
answers
316
views
Arudino receiving interrupt command BEFORE entering sleep mode causing it not to receive any interrupt commands in order to wake up
I've written code for an Arduino Nano that when a button is pressed, it sends an IR command. It is set so that if no button press has been received for a period of 10 seconds, it will enter sleep mode ...
0
votes
1
answer
989
views
Arduino nano timing precision
How precisely can an Arduino nano be timed? The project I am working on needs two Arduino nano to work synchronously. Arduino one have to activate a relay after 2700 sec and Arduino two have to ...
-1
votes
1
answer
264
views
How to read analog sensor data with different timers in arduino
I have three analog sensors like voltage, temperature and pressure. I need to measure the voltage and temperature every 10 ms and I need to measure the pressure alone every 30 ms by using the timers ...
2
votes
1
answer
160
views
Ramping servo motor taking longer than calculated
I'm learning how to code a "BOE Shield bot" with a partner at my university (first year). To clarify for those that do not know: a BOE Shield bot is a small robot equipped with 2 servo ...
-2
votes
1
answer
334
views
1Hz & 32Hz from 32.768 kHz on ATmega328P at 8MHz & DS3231 32K
I have a 32.768 kHz signal at the ATmega328P input.
I need to get 2 signals from this signal: 1Hz and 32Hz.
How well will it work?
How to do this with a ATmega328P Timer/Counter?
What gain will the ...
-1
votes
1
answer
692
views
Stopwatch stop/start button and reset
i am trying to make a stop watch with a stop/start button and a reset button
i have made this
#include "RTClib.h"
//Setup the Real Time Clock, DS3231
RTC_DS3231 rtc;
const byte SQWinput = 2;...
0
votes
1
answer
2k
views
Teensy 4.1 / 4.0 When to use FlexPWM vs QuadTimer pins to strobe LEDs
I want to strobe 3 LEDs (at independent frequencies and duty cycles) via mosfets with a duty cycle of 0.05%-1% at a frequency range of 24-100 hz. I would like to hold 1% or better accuracy for both ...
4
votes
1
answer
681
views
ISR for very fast processes, strange code found. Has ISR effect on timer behaviour?
I found the following code within an example for performing very fast changes on a PWM-output. It works, however I'm wondering about some details.
TIMER2 was set up in setup() as follows:
TCCR2A = 0; ...
1
vote
4
answers
2k
views
How to efficiently code a long duration timer
I'm working on a battery-powered project. I'm trying to write code, which checks the battery voltage every 30 minutes and changes the color of a LED accordingly. Should I still be using millis() or is ...
3
votes
2
answers
3k
views
Attach the Arduino ISR function to the class member
I intended to use a timer interrupt for limited instances of a class in my ESP32 Arduino project. My first code conception was as follows:
portEXIT_CRITICAL_ISR(&lock0);
}
...
0
votes
1
answer
166
views
Safely extend TCNT1 / ICR1 to 24 bits using TOV1
I'm hoping to time external events on a '328p Arduino that will occur slowly enough that they'll overflow the 16-bit counter TCNT1. In a different scenario I'd prescale the counter, but I need the ...
1
vote
1
answer
686
views
Interval timer on Arduino: Doubt about TimerOne library
I want to synchronize a timer interrupt from a button is pressed. I want to read a button state 3 seconds later from the first pulse moment (to identify long pressed button, 3 seconds for this example)...
1
vote
1
answer
237
views
Where am I going wrong in modifying Timer0 and the ISR interrupts in this example?
(Arduino) Hello I don't know where I am going wrong here, please advise.
In the end I want to step a bipolar motor, HIGH/LOW, using Timer0 with OCR0A and OCR0B interrupts to adjust the motors step ...
1
vote
0
answers
941
views
Pulse period capture with SAMD21
I need to count the number of pulses in a moving window (e.g. last 60 seconds) using as less CPU time as possible.
The first step is to use TCC to capture pulse period.
The pulses arrive randomly at ...
0
votes
1
answer
185
views
Why do I get different times when using analogRead() inside while loop?
I have the following code which checks the latency of another board.
int triggerPin = 13;
int dataPin = 9;
int ejectorPin = A0;
unsigned long t_start = 0;
unsigned long t_end = 0;
...
1
vote
1
answer
141
views
Arduino pro mini sampling rate
what are the possible sampling rate the user can set in Arduino pro mini using ADCSRA registers.
I want to set my desired sampling rate through registers, is it possible?
1
vote
1
answer
160
views
I am trying to add a countdown to my Arduino code but it does 0 days, 04:09:36 instead of starting at 7 days
The code I use probably has a math problem since an Arduino can only count a 16 bit integer. This problem is with the WeekDelay() function.
The project is for an Aerogarden. It pumps water into the ...
-1
votes
1
answer
190
views
I have been having a lot of trouble adding a countdown to a piece of code [closed]
This is the code. The /// are where I added the countdown. Unfortunately the countdown only goes down 9 seconds. What I want it to do is go down the full 24 hours. I have been trying to fix this error ...
-1
votes
1
answer
181
views
Can't get 1 second on a ATMega168 timer
TCCR1A = 0;
TCCR1B = 0;
OCR1B = 0xFF00;
TCCR1A = (1<<WGM10) ;
TCCR1B = (1<<CS12) | (1<<CS10);; //set the pre-scalar as 1024
TIMSK1 = (1 << OCIE1A);
This doesn't ...
-1
votes
1
answer
101
views
Cannot change pointer for port in main loop
I am testing on an Arduino UNO. I want to use timer1 and interrupts to create various LED patterns. The LEDs may span multiple ports i.e PORTB and PORTD. I want to use a "volatile uint8_t*" ...
1
vote
0
answers
92
views
Millis() based timer program for 24x7 usage in Arduino [duplicate]
I have made an irrigation system using Arduino. Timer program is based on comparing the previous Millis() and current Millis(). I want to know the chance for error when the currentMillis() overflows ...
0
votes
1
answer
484
views
Timer to send a periodic pulse [closed]
I am looking for a very low power, small component (perhaps an arduino) that will send a pulse 3.3V logic HIGH pulse once every X seconds to another system. I want to be able to configure X (maybe a ...
3
votes
2
answers
2k
views
MPU6050 Arduino Jeff Rowberg library interrupt Issue
I was trying to get the data from MPU6050 using the Arduino library mentioned here.
The following code is an edited version of the sample code given in the library folder which seems to be working ...
1
vote
0
answers
262
views
Variable frequency PWM, without changing timers
I need variable frequency output - 0-5000Hz with some duty cycle. I do not want to change timers, because I am using delays, serial and CAN, so I do not want them to be affected by changed timers. I ...
2
votes
0
answers
501
views
External Interrupt and Input Capture pin | Arduino MEGA
I have a code for finding the rpm of one system calling here as engine , the engine have a hall sensor output and I have tried the following Code
#define SERVO_MIN 2000
#define SERVO_MAX 4000
struct ...
0
votes
1
answer
2k
views
Seeeduino XIAO write and read PWM duration (period) using timers
I am trying to communicate between two Seeeduino XIAO (chip: ATSAMD21G18A-MU) by way of TCC capture using register timers.
Square wave pulse duration varies from 200ns to 4us.
I found these two code ...
2
votes
0
answers
157
views
Is a PWM phase duration set with OCR1A a reliable way to communicate values to other Arduinos?
I am working on communicating 4 switch states across multiple Arduinos using only one pin. It must be as fast as conceivably possible.
Currently I have a master Arduino reading all 4 switches (...