Здравствуте.
Два вопроса :
1) При применении библиотеки GyverTimer1 все работает корректно, при - GyverTimer2 - не работает. ( пример в прикрепленных файлах - Тестовая програмка мигания диодом).
/*
* Тест библ. для Timer1 и выв. в Порт - setPin
*/
#include <GyverTimer1.h>
#include <GyverHacks.h>
#define Led_PR 11 // Св.Диод на PIN 11
uint16_t value_F = 4; // частота (4 Гц)
volatile boolean First = true; // для миг. Св_диодом
void Omega_Redy() // ф-ция ПРИР. для "Timer1"
//~~~~~~~~~~~~~~~~~~~
{
if ( First ) { setPin(Led_PR,1); // вкл. Диод
First =false;
}
else { setPin(Led_PR,0); // выкл. Диод
First =true;
}
}
void setup() {
timer1_ISR(Omega_Redy); // подкл. Функцию
timer1_setFrequency(value_F); // уст. частоту
timer1_start(); // старт таймер
}
void loop()
{
// Пусто
}
/*
* Тест библ. для Timer2 (!!! НЕ РАБОТАЕТ !!!) и выв. в Порт - setPin
*/
#include <GyverTimer2.h>
#include <GyverHacks.h>
#define Led_PR 11 // Св.Диод на PIN 11
uint16_t value_F = 4; // частота (Гц)
volatile boolean First = true; // для миг. Св_диодом
void Omega_Redy() // ф-ция ПРИР. для "Timer2"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
if ( First ) { setPin(Led_PR,1); // вкл. Диод
First =false;
}
else { setPin(Led_PR,0); // выкл. Диод
First =true;
}
}
void setup() {
timer2_ISR(Omega_Redy); // подкл. Функцию
timer2_setFrequency(value_F); // уст. частоту
timer2_start(); // старт таймер
}
void loop()
{
// Пусто
}
2) Может кто посоветует вариант совместимого применения библиотек для получения прерывания по Тimer1 (16 бит), Тimer2 и PWM 16-20кГц на Arduino UNO?
Два вопроса :
1) При применении библиотеки GyverTimer1 все работает корректно, при - GyverTimer2 - не работает. ( пример в прикрепленных файлах - Тестовая програмка мигания диодом).
/*
* Тест библ. для Timer1 и выв. в Порт - setPin
*/
#include <GyverTimer1.h>
#include <GyverHacks.h>
#define Led_PR 11 // Св.Диод на PIN 11
uint16_t value_F = 4; // частота (4 Гц)
volatile boolean First = true; // для миг. Св_диодом
void Omega_Redy() // ф-ция ПРИР. для "Timer1"
//~~~~~~~~~~~~~~~~~~~
{
if ( First ) { setPin(Led_PR,1); // вкл. Диод
First =false;
}
else { setPin(Led_PR,0); // выкл. Диод
First =true;
}
}
void setup() {
timer1_ISR(Omega_Redy); // подкл. Функцию
timer1_setFrequency(value_F); // уст. частоту
timer1_start(); // старт таймер
}
void loop()
{
// Пусто
}
/*
* Тест библ. для Timer2 (!!! НЕ РАБОТАЕТ !!!) и выв. в Порт - setPin
*/
#include <GyverTimer2.h>
#include <GyverHacks.h>
#define Led_PR 11 // Св.Диод на PIN 11
uint16_t value_F = 4; // частота (Гц)
volatile boolean First = true; // для миг. Св_диодом
void Omega_Redy() // ф-ция ПРИР. для "Timer2"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
if ( First ) { setPin(Led_PR,1); // вкл. Диод
First =false;
}
else { setPin(Led_PR,0); // выкл. Диод
First =true;
}
}
void setup() {
timer2_ISR(Omega_Redy); // подкл. Функцию
timer2_setFrequency(value_F); // уст. частоту
timer2_start(); // старт таймер
}
void loop()
{
// Пусто
}
2) Может кто посоветует вариант совместимого применения библиотек для получения прерывания по Тimer1 (16 бит), Тimer2 и PWM 16-20кГц на Arduino UNO?
Вложения
-
1.3 KB Просмотры: 5
-
1.3 KB Просмотры: 2
Изменено: