I'm not seeing a problem in the Time library with this, rather the hardcoded unix timestamp in the sketch (1725879425) is one hour behind the specified timestamp of 11:57:05 9-9-2024. This is confirmed by www.unixtimestamp.com .
I'm curious what you're doing that has such tight timing requirements?
Lots of other things can delay execution by up to 200ns. PSRAM access to uncached data is a big one, accessing flash is another.
It can work fine with nothing connected to the USB port, provided you don't write code that does one particular thing...
Sometimes at the beginning of setup(), it can be helpful to have a line of code similar to while (!Serial);
This makes the...
No. Any usb serial communication requires interrupts, including the systick timer. Lots of code relies on the systick timer, either directly or via delay().
A better question might be what works without interrupts.
Serial output will eventually stop working. millis() will never update, affecting anything that relies on it or delay(). Anything related to audio or USB definitely won't work.
Had a quick look, it seems like there are several virtual functions in USBHIDInput that are declared but not defined, intended to be implemented by derived classes. They should be declared as pure virtual (e.g. "virtual void...
FS class requires a virtual destructor
I consider this a bug since it prevents the interface being used as intended (inherited by other classes, if they are dynamically managed).
Of course, headers are included in compilation.
If you declare an array as float input[250]; you cannot change its size at runtime. If you're using dynamic arrays (using malloc), those will go in RAM2. If you're worried about exhausting RAM2...
XBAR is mostly used for inter-module triggers without requiring the CPU to get involved, e.g. using a timer to trigger ADC sampling at a regular interval. It can't be used to reroute arbitrary pins, especially in this case where the bootloader...
The linker will use RAM1 by default and complain (fail compilation) if it doesn't fit. So unless that actually happens you don't need to worry about manually specifying which memory to use.
It should work, the only possible catch would be if you were trying to call it from c++ code without the right declaration:
extern "C" uint32_t set_arm_clock(uint32_t frequency);
Why clone set_arm_clock() instead of just using the existing function?
Regarding overclock step size, we actually ran into some trouble with the SDRAM devboards because they use industrial temperature, 500MHz rated chips instead of 600MHz and...
What you're asking doesn't really make sense. The location of an array is determined either by its definition (if it is static) or the functions used to allocate it (if it is dynamic).
Probably not accurate, the basic Teensyduino code is pretty rigid and based around powers-of-2 resolution. A 528MHz CPU clock would run the bus clock at 132MHz, which could be divided by 4 to give 33MHz...
A while ago I did discover FlexPWM...
As far as keeping your changes while updating cores, using git with a separate branch for your changes and rebasing whenever there's an update makes it very easy.
If it helps, the copy of makeTime() included in the cores library (in Time.cpp) is the one that has issues calculating leap days while the version in TimeLib works as expected.
You're much better off using either a unidirectional shifter or one with directional control. TXS0108 is known to have problems detecting the direction of a signal when in push-pull mode.
(Also why are there both pull-up and pull-down resistors...
It's possible, but you'd have to learn a lot of stuff about both USB and SCSI (used to send commands/control the CD drive) to be able to do it.
I wrote my own USB Host library for Teensy 4.x and included some sample code to handle CDs like...
Even without knowing what thread library/implementation is being used, the part about the timer interrupt calling try_lock() sounds incorrect.
Interrupt routines run outside of threads and should not be able to own mutexes.
The frequency generated using PWM has to either be a multiple or integer factor of that module's clock source, so some values will be rounded up or down.
analogWrite() sets the duty cycle of the signal, in this case 128 out of 256 time units per...
These are practically all bots/spam accounts. Most of them aren't bothering to post messages, they're just filling their profile/'About" pages with links as a form of SEO.
If the About pages could be turned off, would anyone really miss them?
I don't really understand how DMA can cause a recording delay? While its timing can be non-deterministic, it's typically only used to move recorded samples from one hardware buffer to RAM, while recording continues to another hardware buffer...
Default pinmode is input so they are floating.
digitalWriteFast() has to be used (to set the output level before setting the output mode) because historically with Arduino boards, using digitalWrite() when a pin is configured for input toggles...
I'm certainly not an expert but shouldn't the load be on the high side of the MOSFET, since the switching (gate) voltage is relative to S?
Also, you want to put ~5V into VIN on the Teensy rather than 3.3V. Anywhere between 3.6-5.5 will probably...
The name of "mProgramChange" sounds like it is a member function of a c++ class, if that is the case it can't be used as a callback and should give a compilation error unless there is an explicit cast being used.
Again, it would really help to...
Yes the SD library only caches one sector at a time (512 bytes), so if you switch back and forth between concurrent files it improves performance a lot to keep file writes/reads at a multiple of that size.
How do you figure that?
uint32_t cycles = ((600000000>>16) * 6) / (1000000000UL>>16);
simplifies to:
uint32_t cycles = ((9155) * 6) / 15258;
which evaluates to 3.
This code is only intended to delay for a period of time, not any specific...
Seems doubtful. At 200fps, the pixel rate at a resolution of 720p is ~184MHz and the maximum speed of the Teensy's IO pins is roughly 200MHz... so they're not likely to be able to keep up.
It's technically possible to boot from any address rather than the ROM by changing the initial VTOR address in GPR16. But then you have to manually take care of all the startup stuff that the ROM usually does (and GPR16 will always revert to...
The processor has a built-in ROM which is the very first code that gets executed on startup. It checks the built-in fuses and/or the current status of some of the GPIOs to decide how to attempt loading an executable image. In the case of the...
It may require interrupts, it depends how much data is currently being queued. delay() doesn't disable interrupts so it's not a concern.
I haven't used it myself but several people on the forum regularly recommend TyCommander for serial monitoring.
The idea would be that you use the GPS signal as a clock source to ensure they are synchronized (GPS isn't only useful for location).
Could you measure the round-trip latency instead? So one Teensy would signal the other, which would then signal...
You can use shift registers 0 and 1 in logic mode to "clone" input signals on FlexIO3 D2 to D4 and D3 to D5. So that gives you 8 consecutive input signals on D4-D11 (logic modes update asynchronously so all signals would be in sync). That leaves...