Loop Back Error -

TampaTIM

New member
Hi All,

New to Teensy, some experience with arduino and I'm having trouble...

When I run the Loop Back program I get the follwing:??

Any ideas would be appreciated.

----------------------------------------
#include <PulsePosition.h>
// Simple loopback test: create 1 output to transmit
// test pulses, and 1 input to receive the pulses
PulsePositionOutput myOut;
PulsePositionInput myIn;
void setup() {
myOut.begin(9); // connect pins 9 and 10 together...
myIn.begin(10);
myOut.write(1, 600.03);
myOut.write(2, 1500);
myOut.write(3, 759.24);
// slots 4 and 5 will default to 1500 us
myOut.write(6, 1234.56);
}
int count=0;
void loop() {
int i, num;
// Every time new data arrives, simply print it
// to the Arduino Serial Monitor.
num = myIn.available();
if (num > 0) {
count = count + 1;
Serial.print(count);
Serial.print(" : ");
for (i=1; i <= num; i++) {
float val = myIn.read(i);
Serial.print(val);
Serial.print(" ");
}
Serial.println();
}
}___________________________________________________________________________



c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp: In constructor 'PulsePositionOutput::pulsePositionOutput()':
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:83:65: error: 'CLOCKS_PER_MICROSECOND' was not declared in this scope; did you mean 'CLOCKS_PER_SEC'?
83 | #define TX_MINIMUM_FRAME_CLOCKS (uint32_t)(TX_MINIMUM_FRAME * CLOCKS_PER_MICROSECOND)
| ^~~~~~~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:109:26: note: in expansion of macro 'TX_MINIMUM_FRAME_CLOCKS'
109 | pulse_width[0] = TX_MINIMUM_FRAME_CLOCKS;
| ^~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp: In constructor 'PulsePositionOutput::pulsePositionOutput(int)':
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:83:65: error: 'CLOCKS_PER_MICROSECOND' was not declared in this scope; did you mean 'CLOCKS_PER_SEC'?
83 | #define TX_MINIMUM_FRAME_CLOCKS (uint32_t)(TX_MINIMUM_FRAME * CLOCKS_PER_MICROSECOND)
| ^~~~~~~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:119:26: note: in expansion of macro 'TX_MINIMUM_FRAME_CLOCKS'
119 | pulse_width[0] = TX_MINIMUM_FRAME_CLOCKS;
| ^~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp: In member function 'bool PulsePositionOutput::begin(uint8_t, uint8_t)':
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:142:13: error: 'FTM0_MOD' was not declared in this scope
142 | if (FTM0_MOD != 0xFFFF || (FTM0_SC & 0x7F) != FTM0_SC_VALUE) {
| ^~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:142:36: error: 'FTM0_SC' was not declared in this scope
142 | if (FTM0_MOD != 0xFFFF || (FTM0_SC & 0x7F) != FTM0_SC_VALUE) {
| ^~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:88:24: error: 'FTM_SC_TOIE' was not declared in this scope; did you mean 'FTM0_SC_VALUE'?
88 | #define FTM0_SC_VALUE (FTM_SC_TOIE | FTM_SC_CLKS(1) | FTM_SC_PS(0))
| ^~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:142:55: note: in expansion of macro 'FTM0_SC_VALUE'
142 | if (FTM0_MOD != 0xFFFF || (FTM0_SC & 0x7F) != FTM0_SC_VALUE) {
| ^~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:88:38: error: 'FTM_SC_CLKS' was not declared in this scope; did you mean 'FTM0_SC_VALUE'?
88 | #define FTM0_SC_VALUE (FTM_SC_TOIE | FTM_SC_CLKS(1) | FTM_SC_PS(0))
| ^~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:142:55: note: in expansion of macro 'FTM0_SC_VALUE'
142 | if (FTM0_MOD != 0xFFFF || (FTM0_SC & 0x7F) != FTM0_SC_VALUE) {
| ^~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:88:55: error: 'FTM_SC_PS' was not declared in this scope
88 | #define FTM0_SC_VALUE (FTM_SC_TOIE | FTM_SC_CLKS(1) | FTM_SC_PS(0))
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:142:55: note: in expansion of macro 'FTM0_SC_VALUE'
142 | if (FTM0_MOD != 0xFFFF || (FTM0_SC & 0x7F) != FTM0_SC_VALUE) {
| ^~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:144:17: error: 'FTM0_CNT' was not declared in this scope
144 | FTM0_CNT = 0;
| ^~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:152:40: error: 'FTM0_C4SC' was not declared in this scope
152 | case 6: channel = 4; reg = &FTM0_C4SC; break;
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:153:40: error: 'FTM0_C2SC' was not declared in this scope
153 | case 9: channel = 2; reg = &FTM0_C2SC; break;
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:154:40: error: 'FTM0_C3SC' was not declared in this scope
154 | case 10: channel = 3; reg = &FTM0_C3SC; break;
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:155:40: error: 'FTM0_C5SC' was not declared in this scope
155 | case 20: channel = 5; reg = &FTM0_C5SC; break;
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:156:40: error: 'FTM0_C0SC' was not declared in this scope
156 | case 22: channel = 0; reg = &FTM0_C0SC; break;
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:157:40: error: 'FTM0_C1SC' was not declared in this scope
157 | case 23: channel = 1; reg = &FTM0_C1SC; break;
| ^~~~~~~~~
In file included from C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/core_pins.h:33,
from C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/wiring.h:39,
from C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/WProgram.h:46,
from C:\Users\Primary\AppData\Local\Temp\arduino\sketches\4730A64DCBFCAA04CCDF1113FFE2733D/pch/Arduino.h:6,
from c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.h:29,
from c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:31:
C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/pins_arduino.h:142:71: error: cannot convert 'volatile uint32_t*' {aka 'volatile long unsigned int*'} to 'volatile uint8_t*' {aka 'volatile unsigned char*'} in assignment
142 | #define portOutputRegister(pin) ((digital_pin_to_info_PGM[(pin)].reg + 0))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
| |
| volatile uint32_t* {aka volatile long unsigned int*}
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:166:31: note: in expansion of macro 'portOutputRegister'
166 | framePinReg = portOutputRegister(framePin);
| ^~~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:169:17: error: 'FRAME_PIN_SET' was not declared in this scope
169 | FRAME_PIN_SET();
| ^~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:178:9: error: 'CSC_CHANGE' was not declared in this scope; did you mean 'CHANGE'?
178 | CSC_CHANGE(ftm, cscSet); // set on compare match & interrupt
| ^~~~~~~~~~
| CHANGE
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:181:38: error: 'PORT_PCR_MUX' was not declared in this scope
181 | *portConfigRegister(txPin) = PORT_PCR_MUX(4) | PORT_PCR_DSE | PORT_PCR_SRE;
| ^~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:181:56: error: 'PORT_PCR_DSE' was not declared in this scope
181 | *portConfigRegister(txPin) = PORT_PCR_MUX(4) | PORT_PCR_DSE | PORT_PCR_SRE;
| ^~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:181:71: error: 'PORT_PCR_SRE' was not declared in this scope
181 | *portConfigRegister(txPin) = PORT_PCR_MUX(4) | PORT_PCR_DSE | PORT_PCR_SRE;
| ^~~~~~~~~~~~
In file included from C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/core_pins.h:32,
from C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/wiring.h:39,
from C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/WProgram.h:46,
from C:\Users\Primary\AppData\Local\Temp\arduino\sketches\4730A64DCBFCAA04CCDF1113FFE2733D/pch/Arduino.h:6,
from c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.h:29,
from c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:31:
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:182:27: error: 'IRQ_FTM0' was not declared in this scope; did you mean 'IRQ_CTI0'?
182 | NVIC_SET_PRIORITY(IRQ_FTM0, 32);
| ^~~~~~~~
C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/imxrt.h:10069:83: note: in definition of macro 'NVIC_SET_PRIORITY'
10069 | #define NVIC_SET_PRIORITY(irqnum, priority) (*((volatile uint8_t *)0xE000E400 + (irqnum)) = (uint8_t)(priority))
| ^~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp: In member function 'bool PulsePositionOutput::write(uint8_t, float)':
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:193:33: error: 'CLOCKS_PER_MICROSECOND' was not declared in this scope; did you mean 'CLOCKS_PER_SEC'?
193 | clocks = microseconds * CLOCKS_PER_MICROSECOND;
| ^~~~~~~~~~~~~~~~~~~~~~
| CLOCKS_PER_SEC
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp: In member function 'void PulsePositionOutput::isr()':
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:84:63: error: 'CLOCKS_PER_MICROSECOND' was not declared in this scope; did you mean 'CLOCKS_PER_SEC'?
84 | #define TX_PULSE_WIDTH_CLOCKS (uint32_t)(TX_PULSE_WIDTH * CLOCKS_PER_MICROSECOND)
| ^~~~~~~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:223:28: note: in expansion of macro 'TX_PULSE_WIDTH_CLOCKS'
223 | ftm->cv += TX_PULSE_WIDTH_CLOCKS;
| ^~~~~~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:224:17: error: 'CSC_CHANGE_INTACK' was not declared in this scope
224 | CSC_CHANGE_INTACK(ftm, cscClear); // clear on compare match & interrupt
| ^~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:84:63: error: 'CLOCKS_PER_MICROSECOND' was not declared in this scope; did you mean 'CLOCKS_PER_SEC'?
84 | #define TX_PULSE_WIDTH_CLOCKS (uint32_t)(TX_PULSE_WIDTH * CLOCKS_PER_MICROSECOND)
| ^~~~~~~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:237:57: note: in expansion of macro 'TX_PULSE_WIDTH_CLOCKS'
237 | width = pulse_buffer[channel] - TX_PULSE_WIDTH_CLOCKS;
| ^~~~~~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:244:41: error: 'FRAME_PIN_SET' was not declared in this scope
244 | FRAME_PIN_SET();
| ^~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:246:41: error: 'FRAME_PIN_CLEAR' was not declared in this scope
246 | FRAME_PIN_CLEAR();
| ^~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:255:25: error: 'CSC_CHANGE_INTACK' was not declared in this scope
255 | CSC_CHANGE_INTACK(ftm, cscSet); // set on compare match & interrupt
| ^~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:259:25: error: 'CSC_INTACK' was not declared in this scope
259 | CSC_INTACK(ftm, cscClear); // clear on compare match & interrupt
| ^~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp: In function 'void ftm0_isr()':
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:268:13: error: 'FTM0_SC' was not declared in this scope
268 | if (FTM0_SC & 0x80) {
| ^~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:279:33: error: 'FTM0_C0SC' was not declared in this scope
279 | if ((maskin & 0x01) && (FTM0_C0SC & 0x80)) PulsePositionInput::list[0]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:280:33: error: 'FTM0_C1SC' was not declared in this scope
280 | if ((maskin & 0x02) && (FTM0_C1SC & 0x80)) PulsePositionInput::list[1]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:281:33: error: 'FTM0_C2SC' was not declared in this scope
281 | if ((maskin & 0x04) && (FTM0_C2SC & 0x80)) PulsePositionInput::list[2]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:282:33: error: 'FTM0_C3SC' was not declared in this scope
282 | if ((maskin & 0x08) && (FTM0_C3SC & 0x80)) PulsePositionInput::list[3]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:283:33: error: 'FTM0_C4SC' was not declared in this scope
283 | if ((maskin & 0x10) && (FTM0_C4SC & 0x80)) PulsePositionInput::list[4]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:284:33: error: 'FTM0_C5SC' was not declared in this scope
284 | if ((maskin & 0x20) && (FTM0_C5SC & 0x80)) PulsePositionInput::list[5]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:290:34: error: 'FTM0_C0SC' was not declared in this scope
290 | if ((maskout & 0x01) && (FTM0_C0SC & 0x80)) PulsePositionOutput::list[0]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:291:34: error: 'FTM0_C1SC' was not declared in this scope
291 | if ((maskout & 0x02) && (FTM0_C1SC & 0x80)) PulsePositionOutput::list[1]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:292:34: error: 'FTM0_C2SC' was not declared in this scope
292 | if ((maskout & 0x04) && (FTM0_C2SC & 0x80)) PulsePositionOutput::list[2]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:293:34: error: 'FTM0_C3SC' was not declared in this scope
293 | if ((maskout & 0x08) && (FTM0_C3SC & 0x80)) PulsePositionOutput::list[3]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:294:34: error: 'FTM0_C4SC' was not declared in this scope
294 | if ((maskout & 0x10) && (FTM0_C4SC & 0x80)) PulsePositionOutput::list[4]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:295:34: error: 'FTM0_C5SC' was not declared in this scope
295 | if ((maskout & 0x20) && (FTM0_C5SC & 0x80)) PulsePositionOutput::list[5]->isr();
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp: In member function 'bool PulsePositionInput::begin(uint8_t)':
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:327:13: error: 'FTM0_MOD' was not declared in this scope
327 | if (FTM0_MOD != 0xFFFF || (FTM0_SC & 0x7F) != FTM0_SC_VALUE) {
| ^~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:327:36: error: 'FTM0_SC' was not declared in this scope
327 | if (FTM0_MOD != 0xFFFF || (FTM0_SC & 0x7F) != FTM0_SC_VALUE) {
| ^~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:88:24: error: 'FTM_SC_TOIE' was not declared in this scope; did you mean 'FTM0_SC_VALUE'?
88 | #define FTM0_SC_VALUE (FTM_SC_TOIE | FTM_SC_CLKS(1) | FTM_SC_PS(0))
| ^~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:327:55: note: in expansion of macro 'FTM0_SC_VALUE'
327 | if (FTM0_MOD != 0xFFFF || (FTM0_SC & 0x7F) != FTM0_SC_VALUE) {
| ^~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:88:38: error: 'FTM_SC_CLKS' was not declared in this scope; did you mean 'FTM0_SC_VALUE'?
88 | #define FTM0_SC_VALUE (FTM_SC_TOIE | FTM_SC_CLKS(1) | FTM_SC_PS(0))
| ^~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:327:55: note: in expansion of macro 'FTM0_SC_VALUE'
327 | if (FTM0_MOD != 0xFFFF || (FTM0_SC & 0x7F) != FTM0_SC_VALUE) {
| ^~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:88:55: error: 'FTM_SC_PS' was not declared in this scope
88 | #define FTM0_SC_VALUE (FTM_SC_TOIE | FTM_SC_CLKS(1) | FTM_SC_PS(0))
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:327:55: note: in expansion of macro 'FTM0_SC_VALUE'
327 | if (FTM0_MOD != 0xFFFF || (FTM0_SC & 0x7F) != FTM0_SC_VALUE) {
| ^~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:329:17: error: 'FTM0_CNT' was not declared in this scope
329 | FTM0_CNT = 0;
| ^~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:337:40: error: 'FTM0_C4SC' was not declared in this scope
337 | case 6: channel = 4; reg = &FTM0_C4SC; break;
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:338:40: error: 'FTM0_C2SC' was not declared in this scope
338 | case 9: channel = 2; reg = &FTM0_C2SC; break;
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:339:40: error: 'FTM0_C3SC' was not declared in this scope
339 | case 10: channel = 3; reg = &FTM0_C3SC; break;
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:340:40: error: 'FTM0_C5SC' was not declared in this scope
340 | case 20: channel = 5; reg = &FTM0_C5SC; break;
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:341:40: error: 'FTM0_C0SC' was not declared in this scope
341 | case 22: channel = 0; reg = &FTM0_C0SC; break;
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:342:40: error: 'FTM0_C1SC' was not declared in this scope
342 | case 23: channel = 1; reg = &FTM0_C1SC; break;
| ^~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:356:36: error: 'PORT_PCR_MUX' was not declared in this scope
356 | *portConfigRegister(pin) = PORT_PCR_MUX(4);
| ^~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:357:9: error: 'CSC_CHANGE' was not declared in this scope; did you mean 'CHANGE'?
357 | CSC_CHANGE(ftm, cscEdge); // input capture & interrupt on rising edge
| ^~~~~~~~~~
| CHANGE
In file included from C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/core_pins.h:32,
from C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/wiring.h:39,
from C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/WProgram.h:46,
from C:\Users\Primary\AppData\Local\Temp\arduino\sketches\4730A64DCBFCAA04CCDF1113FFE2733D/pch/Arduino.h:6,
from c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.h:29,
from c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:31:
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:358:27: error: 'IRQ_FTM0' was not declared in this scope; did you mean 'IRQ_CTI0'?
358 | NVIC_SET_PRIORITY(IRQ_FTM0, 32);
| ^~~~~~~~
C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\cores\teensy4/imxrt.h:10069:83: note: in definition of macro 'NVIC_SET_PRIORITY'
10069 | #define NVIC_SET_PRIORITY(irqnum, priority) (*((volatile uint8_t *)0xE000E400 + (irqnum)) = (uint8_t)(priority))
| ^~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp: In member function 'void PulsePositionInput::isr()':
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:368:9: error: 'CSC_INTACK' was not declared in this scope
368 | CSC_INTACK(ftm, cscEdge); // input capture & interrupt on rising edge
| ^~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:85:65: error: 'CLOCKS_PER_MICROSECOND' was not declared in this scope; did you mean 'CLOCKS_PER_SEC'?
85 | #define RX_MINIMUM_SPACE_CLOCKS (uint32_t)(RX_MINIMUM_SPACE * CLOCKS_PER_MICROSECOND)
| ^~~~~~~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:377:22: note: in expansion of macro 'RX_MINIMUM_SPACE_CLOCKS'
377 | if (count >= RX_MINIMUM_SPACE_CLOCKS) {
| ^~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp: In member function 'float PulsePositionInput::read(uint8_t)':
c:\Users\Primary\Documents\Arduino\libraries\PulsePosition\PulsePosition.cpp:417:38: error: 'CLOCKS_PER_MICROSECOND' was not declared in this scope; did you mean 'CLOCKS_PER_SEC'?
417 | return (float)value / (float)CLOCKS_PER_MICROSECOND;
| ^~~~~~~~~~~~~~~~~~~~~~
| CLOCKS_PER_SEC
Multiple libraries were found for "PulsePosition.h"
Used: C:\Users\Primary\Documents\Arduino\libraries\PulsePosition
Not used: C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\libraries\PulsePosition
exit status 1

Compilation error: exit status 1
 
Example program LoopBack in the PulsePosition library builds with no errors for me for T4.1. I'm using Arduino 1.8.19 and TeensyDuino 1.59 on Windows 7 (but Paul always recommends 10+).

Please tell us which Teensy, IDE, TeensyDuino, platform, etc.? I'm guessing you have not specified your target or another simple issue like that.
 
Teensyduino comes with its own PulsePosition library.
You should delete the one here C:\Users\Primary\Documents\Arduino\libraries\PulsePosition.
Then your code compiles fine (just tried).

Paul
 
Yes, those errors are from using the old Teensy-3-only library.

Just delete it, because it's overriding the newer version that came with 1.59.0. Arduino IDE is trying to tell you about this with these lines:

Used: C:\Users\Primary\Documents\Arduino\libraries\PulsePosition
Not used: C:\Users\Primary\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\libraries\PulsePosition
 
Back
Top