Преглед на файлове

Add IntervalTimer update(microseconds)

https://forum.pjrc.com/threads/45518
teensy4-core
PaulStoffregen преди 7 години
родител
ревизия
5ecc562603
променени са 1 файла, в които са добавени 25 реда и са изтрити 0 реда
  1. +25
    -0
      teensy3/IntervalTimer.h

+ 25
- 0
teensy3/IntervalTimer.h Целия файл

@@ -73,6 +73,31 @@ public:
bool begin(void (*funct)(), double microseconds) {
return begin(funct, (float)microseconds);
}
void update(unsigned int microseconds) {
if (microseconds == 0 || microseconds > MAX_PERIOD) return;
uint32_t cycles = (F_BUS / 1000000) * microseconds - 1;
if (cycles < 36) return;
if (channel) channel->LDVAL = cycles;
}
void update(int microseconds) {
if (microseconds < 0) return;
return update((unsigned int)microseconds);
}
void update(unsigned long microseconds) {
return update((unsigned int)microseconds);
}
void update(long microseconds) {
return update((int)microseconds);
}
void update(float microseconds) {
if (microseconds <= 0 || microseconds > MAX_PERIOD) return;
uint32_t cycles = (float)(F_BUS / 1000000) * microseconds - 0.5;
if (cycles < 36) return;
if (channel) channel->LDVAL = cycles;
}
void update(double microseconds) {
return update((float)microseconds);
}
void end();
void priority(uint8_t n) {
nvic_priority = n;

Loading…
Отказ
Запис