To be honest, I really not sure. I haven't really ever needed to worry about exactly how the ARM core clears the NVIC pending state. It happens automatically somehow, but I can't say from memory exactly how. You'd need to dive into the ARM...
Yes, wires are ok if you keep them reasonably short. Longer than about 4 inches / 10 cm would be risky.
Pins 6, 10, 11, 12, 13, 15 are optional. If you leave those off, try running examples like Synth > Guitar which don't use the SD card.
ARM implemented a nice "tail chaining" optimization in the hardware, because it is a common case where 1 or more other interrupts are already pending (at the same or lower priority) when your interrupt finishes. Rather than restoring the...
Every interrupt has a pending bit and a priority level. The priorities are 0 to 255, where 0 is the highest.
When the hardware event occurs, the interrupt's pending bit is set. The NVIC (Nested Vector Interrupt Controller) looks at all those...
One of the other changes I recall, but the details of when and which specific versions are now pretty distant and hazy memory, involved changes to the device discovery protocol. The protocol specifies a way for additional info about discovered...
Yes. In Boards Manager, 1.57.3 is Teensyduino 1.57.
The ".3" means it's the 4th time it's been packaged for Boards Manager (we started with ".0"). It's still the same 1.57 version.
Over the last year or so Arduino CLI / IDE has made changes...
Easy. Just download the 2 installers (on both sites, scroll down as the newer stuff is at the top of each page). Run Arduino 1.8.19 installer first. Then run the Teensyduino 1.59 installer. If you went with the default location in Arduino's...
In case anyone's wondering about 1.60-beta1, I lost a couple days because an update broke my Yubikey-based code signing for Windows. Things used to be so much simpler when it was just files and I could build inside a virtual machine. Just now...
Normally you can't get exactly 20 MHz because the timers run at 150 MHz and they can only create waveforms that are an integer division of 150 MHz. And to get exactly 50% duty cycle, that integer must be an even number, because you need the same...
First quick look, I don't understand why this?
Normally with DMA usage you would have the ADC or ADC_ETC trigger DMA only, and then DMA generates the interrupt when transfer is complete.
I also tried looking for "teensy-package-1.59.0.tar.zst". In the last 16 hours, looks like 174 downloads. All 174 have status 200 or 206. Not a single 404 status on any download over the last 16 hours.
Here are the logged downloads over the...
I looked at the web server logs. In the last 16 hours the package index has been downloaded 11175 times.
The majority are from 2 IP numbers, and interestingly those 2 are downloading it from the old URL before we officially supported IDE 2...
Here's an example (at line 57):
https://github.com/PaulStoffregen/Audio/blob/83434c797952f550d9e0305a0c14c7832006f061/examples/Synthesis/Wavetable/MidiSynthLarge/bassoon_samples.cpp#L57
Of course it's only possible if they are const data.
I gave FlexSerial a quick try, and indeed it does work with MIDI.h.
#include <FlexIO_t4.h>
#include <FlexSerial.h>
#include <MIDI.h>
// Demonstrate using FlexSerial for MIDI OUT, inspired by:
// https://forum.pjrc.com/index.php?threads/75818/...
Pin 30 is an XBAR pin (see Kurt's awesome pinout diagram) so you can reassign it to be the receive input for any of the 8 normal serial port. Details on the hardware serial page.
Pin 32 is a FlexIO pin. So you could try creating a FlexSerial...
It depends on which library code you use, but usually yes, most libraries using SPI support CS on any digital pin.
Maybe you're asking about a display, perhaps ILI9431 or ILI9488 or ST7789 since you also mentioned "D/C"?
This driver code exists within the audio library.
If you really want only the driver and not the rest of the audio library, you could dive into that code and copy the parts you need.
Yes, and that exactly what happens by placing the I2S node on the design tool, which ultimately causes this line in your program:
AudioInputI2S i2s1; //xy=388,50
This line causes an instance of the AudioInputI2S class to be...
Not for beta1.
Right now just running the script to look for compile errors, because all too often some subtle change in the core library has broken other stuff.
When any library the script builds has examples with errors, they generate a lot...
The script is also finding a different error with MTP_Teensy example CircuitMicroPython.ino.
Maybe it was written before the USB host library had the HID classes?
This 31 page tutorial is the best way to come up to speed on the design tool and basics of the audio library.
https://www.pjrc.com/store/audio_tutorial_kit.html
There is also a 45 minute full walk through video, so if you get stuck on any part...
I'm running the script which checks all library examples for compile errors. It's finding several in MTP_Teensy. :(
LFS_Program_MTP_Simple_Datalogger
LFS_SPI_MTP_Simple_Datalogger
SD_Program_MTP-logger
SD_SPI_QSPI_MTP-logger
simple...
Almost all projects require interrupts, for pretty basic stuff like USB communication and the timing functions like millis(), elapsedMillis, etc.
But if you truly don't need any of that stuff and your code is doing to really tight timing, sure...
Looks good and debug optimize builds. :)
Committed the pure virtual change.
https://github.com/PaulStoffregen/USBHost_t36/commit/f9971d3ddfc0403a369fc5888b45a68f6dbf4d45
That appears to be the issue, if I change the virtual functions in this class to:
virtual hidclaim_t claim_collection(USBHIDParser *driver, Device_t *dev, uint32_t topusage) = 0;
virtual bool hid_process_in_data(const Transfer_t...
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...
To get an idea of what XBAR can do, start with "Table 4-8. XBAR1 Output Assignments" which begins on page 68. Those are all the places XBAR can send a signal. At first it seems like a long list, but sadly there are so many things inside the...
Looks like my copy has 1 minor change (which would be lost if I just sync). Sent you a pull request. Please merge, and then I'll sync my copy and pull it into 1.60-beta1.
Which repository should I clone? Currently I have git@github.com:mjs513/ILI9488_t3.git. When I try to pull in the latest, I get this:
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running...
Any chance I can ask someone who's a C++ expert to look into a compile error with USBHost_t36? Looking specifically at the Mouse example, but others have the same issue.
It compiles fine with default settings. But when Tools > Optimize is set...
If some of this stuff is compile time constants, you can use PROGMEM to put it into the flash memory (base address is 0x60000000). Whether that gives any benefit compared to PSRAM is an open question...
I'm fixing issues and merging fixes in prep for 1.60-beta1.
Will merge new features for 1.60-beta2... but before merging new stuff I want to start 1.60 with a first beta focusing on fixes only (or mostly).
Please do not create duplicate threads.
As I mentioned on your other thread, look at the OpenGalvo and audio library code to get started.
Before I write more, I'm curious which specific ADC chip or device you're planning to use for 1 channel...
I've updated the reference manual annotations (pages 35-36) with this Teensy specific info.
Link to the manual is under Technical Information on the Teensy 4.1 product page.
Two reasons really.
1: NXP didn't rate the chip at such a speed.
2: So far there really hasn't been any compelling need for under-clocking to those specific speeds.
I just made that up.
But maybe you're reading more into the name than it really means? It's not any sort of limit or step size of how you can set the clock speed. Instead it's a scale factor for deciding how much to "over voltage" the CPU...
Yes, for static and global variables you need to use DMAMEM or EXTMEM in your code if you want them placed in those memory areas.
But I wouldn't call that "do the math". It's simply a matter of typing the keyword for the memory storage you...
Probably not usable for GPIO. On the old AVR chips you don't get a pin mux register like on Teensy 4.x and 3.x. So turning on a peripheral like SPI causes it to take over its pins. But those AVR chips do have some weird quirks like in some...
Just look at the memory usage info that prints every time you compile.
If using Arduino IDE with the console panel very small, you may need to increase its size or scroll up to see the memory usage info.