Your ROOT_URL in app.ini is https://source.parasitstudio.de:63000/ but you are visiting https://source.parasitstudio.de/wirtz/MicroDexed/blame/commit/1938e987a531143cf81dcab4ab6d054092514e9f/third-party/TeensyTimerTool/examples/99_Misc/PinInformation/PWM_TimerInfo.h You should set ROOT_URL correctly, otherwise the web may not work correctly.

62 lines
1.8 KiB

#pragma once
#include "core_pins.h"
#include <cstdio>
struct PWM_TimerInfo_t
{
inline PWM_TimerInfo_t(unsigned _pin = 0);
unsigned type;
unsigned module;
char name[20];
};
//===========================================================================================================
#if defined(ARDUINO_TEENSY40) || defined(ARDUINO_TEENSY41) || defined(ARDUINO_TEENSY_MICROMOD)
// holds core info about used pwm timers. Struct is defined in pwm.c.
// There is no header declaring it. So, we need to do this here:
struct pwm_pin_info_struct
{
uint8_t type; // 0=no pwm, 1=flexpwm, 2=quad
uint8_t module; // 0-3, 0-3
uint8_t channel; // 0=X, 1=A, 2=B
uint8_t muxval; //
};
extern pwm_pin_info_struct pwm_pin_info[]; // This array holds the pwm timer info
PWM_TimerInfo_t::PWM_TimerInfo_t(unsigned pin)
{
constexpr char timerNames[][9] = {"FLEX_PWM", "QUAD"};
type = pwm_pin_info[pin].type;
module = (pwm_pin_info[pin].module >> 4) + 1;
if (type != 0)
snprintf(name, 20, "%s%d", timerNames[type - 1], module);
else
snprintf(name, 20, "no pwm");
}
//===========================================================================================================
#elif defined(ARDUINO_TEENSYLC) || \
defined(ARDUINO_TEENSY30) || defined(ARDUINO_TEENSY32) || \
defined(ARDUINO_TEENSY35) || defined(ARDUINO_TEENSY36)
extern "C" const int PwmTimerModule[CORE_NUM_DIGITAL];
extern "C" const int PwmTimerType[CORE_NUM_DIGITAL];
PWM_TimerInfo_t::PWM_TimerInfo_t(unsigned pin)
{
constexpr char timerNames[][9] = {"FTM", "TPM"};
type = PwmTimerType[pin];
module = PwmTimerModule[pin];
if (type != 0)
snprintf(name, 20, "%s%d", timerNames[type - 1], module);
else
snprintf(name, 20, "none");
}
#endif