The scope traces look good, I now think your analysis of the issue is correct. May I ask what type of device is driving the signal / why is it slow? Are you relying on just the Teensy internal pulldown to produce the...
Your scope capture shows some coupling between Ch1 and Ch2. For example at the falling edge on Ch1, Ch2 shows a slight bump. After the interrupt, the general noise on Ch1 is mirrored on Ch2. Perhaps your scope ground...
To answer my own question, run time size of arrays are valid in C now and without the C++ new and delete keywords as in your link. This link has a good discussion of potential issues, most notable is the possible...
I am asking this as a question because I do not know the answer.
uint16_t bufCopy;
Does C++ allow dynamically allocated size of auto class arrays? As a C programmer I am surprised that this line compiles...
Looking at peak in the audio library
bool available(void) {
__disable_irq();
bool flag = new_output;
if (flag) new_output = false;
__enable_irq();
return flag;
}
The most likely scenario is that your 30 feet of wire is acting as an antenna and picking up stray 60 (50) cycle fields. It could also pick up nearby transmitters such as FM stations, ethernet access points, whatever...
See if this works better....and if it does, see if you can see why.
void updateMux1 () {
for (int i = 0; i < 8; i++){
digitalWrite(pin_Out_S0, i & B00000001);
digitalWrite(pin_Out_S1, i & B00000010);
...
Maybe check your wiring? This sounds like a half duplex, full duplex issue. It would seem that in your T3.5 setup, your DIR pin prevents your transmitted signal from appearing on the serial RX pin but on the T4.1...
You appear to be generating a CRC on 24 bytes, or 192 bits; not on 3 bytes or 24 bits.
Could the data just be int8 type. Why is it in a string?
If it needs to be in a string, you could write a function to...
I have. I did this sort of an exercise to see how it would work out. I think it would make much more sense to use the audio board. The readme on github has a fairly good explaination of the project.
...
Possibly the difference is due to the difference in VIH, VIL of the Arduino vs the Teensy, one being a 5 volt input and the other 3.3 volt . They will detect high and low at different levels of signal. A slow slew...
I suggest just start with a delayMicroseconds(500) in your updateMux1() function. See if that helps with your unstable readings. My other idea is sort of like the blink without delay example where you can distribute...
https://www.ti.com/lit/ds/symlink/cd4051b.pdf?ts=1655186591995&ref_url=https%253A%252F%252Fwww.google.com%252F
To find the amount of delay needed, look at the switching characteristics and the parameter called...
This would seem to indicate that you have 5 volts on the pots instead of 3.3 volts. If fed with 5 volts the Teensy LC may be destroyed.
void updateMux1 () {
for (int i = 0; i < 8; i++){
...
To convert your code to Teensy could be as simple as changing one line:
#define srxl2port Serial
Change this line to
#define srxl2port Serial1
You would then add the diode circuit to enable the half duplex...
If you look at the one-wire protocol, you will see it is completely different from half duplex serial ( rs232 type ) communication. You will not be able to use the OneWire Library.
In one of my programs I used one bi-quad of high pass and 3 bi-quads of low pass. For the narrow band mode of CW, the bandwidth is split plus and minus from the center frequency of 700 hz. You can ignore the wv...
Q is a value without units. I have used this online calculator for cascading highpass, lowpass filters. I did not have good results with the bandpass filter type and cascaded highpass and lowpass filters in order to...