#include "timer-api.h"  void setup() { Serial.begin(9600); // =1, =1 timer_init_ISR_1Hz(TIMER_DEFAULT); pinMode(13, OUTPUT); }  void loop() { Serial.println("Hello from loop!"); delay(5000); //   :    }  void timer_handle_interrupts(int timer) { Serial.println("goodbye from timer"); //   digitalWrite(13, !digitalRead(13)); }  void timer_handle_interrupts(int timer) { static unsigned long prev_time = 0; unsigned long _time = micros(); unsigned long _period = _time - prev_time; prev_time = _time; Serial.print("goodbye from timer: "); Serial.println(_period, DEC); //   digitalWrite(13, !digitalRead(13)); } 
  //timer_init_ISR_500KHz(TIMER_DEFAULT); //timer_init_ISR_200KHz(TIMER_DEFAULT); //timer_init_ISR_100KHz(TIMER_DEFAULT); //timer_init_ISR_50KHz(TIMER_DEFAULT); //timer_init_ISR_20KHz(TIMER_DEFAULT); //timer_init_ISR_10KHz(TIMER_DEFAULT); //timer_init_ISR_5KHz(TIMER_DEFAULT); //timer_init_ISR_2KHz(TIMER_DEFAULT); //timer_init_ISR_1KHz(TIMER_DEFAULT); //timer_init_ISR_500Hz(TIMER_DEFAULT); //timer_init_ISR_200Hz(TIMER_DEFAULT); //timer_init_ISR_100Hz(TIMER_DEFAULT); //timer_init_ISR_50Hz(TIMER_DEFAULT); //timer_init_ISR_20Hz(TIMER_DEFAULT); //timer_init_ISR_10Hz(TIMER_DEFAULT); //timer_init_ISR_5Hz(TIMER_DEFAULT); //timer_init_ISR_2Hz(TIMER_DEFAULT); //timer_init_ISR_1Hz(TIMER_DEFAULT);  #include"timer-api.h" void setup() { Serial.begin(9600); while(!Serial); // =10, =100 timer_init_ISR_10Hz(TIMER_DEFAULT); pinMode(13, OUTPUT); } void loop() { Serial.println("Hello from loop!"); delay(6000); //   :    } void timer_handle_interrupts(int timer) { static unsigned long prev_time = 0; //    static int count = 11; //     12  : //    10    100, //      100*12=1200 // (5   6 ) if(count == 0) { unsigned long _time = micros(); unsigned long _period = _time - prev_time; prev_time = _time; Serial.print("goodbye from timer: "); Serial.println(_period, DEC); //   digitalWrite(13, !digitalRead(13)); //   count = 11; } else { count--; } } 
 #include"timer-api.h" int _timer = TIMER_DEFAULT; void setup() { Serial.begin(9600); while(!Serial); pinMode(13, OUTPUT); } void loop() { Serial.println("Start timer"); timer_init_ISR_1Hz(_timer); delay(5000); Serial.println("Stop timer"); timer_stop_ISR(_timer); delay(5000); } void timer_handle_interrupts(int timer) { static unsigned long prev_time = 0; unsigned long _time = micros(); unsigned long _period = _time - prev_time; prev_time = _time; Serial.print("goodbye from timer: "); Serial.println(_period, DEC); //   digitalWrite(13, !digitalRead(13)); } 
 cd ~/Arduino/libraries/ git clone https://github.com/sadr0b0t/arduino-timer-api.git  #include"timer-api.h" //       // Pinout for CNC-shield // http://blog.protoneer.co.nz/arduino-cnc-shield/ // X #define STEP_PIN 2 #define DIR_PIN 5 #define EN_PIN 8 // Y //#define STEP_PIN 3 //#define DIR_PIN 6 //#define EN_PIN 8 // Z //#define STEP_PIN 4 //#define DIR_PIN 7 //#define EN_PIN 8 void setup() { Serial.begin(9600); // step-dir motor driver pins //    step-dir pinMode(STEP_PIN, OUTPUT); pinMode(DIR_PIN, OUTPUT); pinMode(EN_PIN, OUTPUT); //      , //       //    . //      //   : // https://github.com/sadr0b0t/stepper_h // 1/1: 1500  // 1/2: 650  // 1/4: 330  // 1/8: 180  // 1/16: 80  // 1/32: 40  //   1/1 // =500, =2 //timer_init_ISR_500Hz(TIMER_DEFAULT); //  timer_init_ISR_200Hz(TIMER_DEFAULT); //   1/2 // =1, =1 //timer_init_ISR_1KHz(TIMER_DEFAULT); //  //timer_init_ISR_500Hz(TIMER_DEFAULT); //   1/4 // =2, =500 //timer_init_ISR_2KHz(TIMER_DEFAULT); //  //timer_init_ISR_1KHz(TIMER_DEFAULT); //   1/8 // =5, =200 //timer_init_ISR_5KHz(TIMER_DEFAULT); //  //timer_init_ISR_2KHz(TIMER_DEFAULT); //   1/16 // =10, =100 //timer_init_ISR_10KHz(TIMER_DEFAULT); //  //timer_init_ISR_5KHz(TIMER_DEFAULT); //   1/32 // =20, =50 //timer_init_ISR_20KHz(TIMER_DEFAULT); //  //timer_init_ISR_10KHz(TIMER_DEFAULT); ///////// //     // EN=HIGH to disable digitalWrite(EN_PIN, HIGH); //      Serial.println("Choose direction: '<' '>', space or 's' to stop"); } void loop() { if(Serial.available() > 0) { //     : int inByte = Serial.read(); if(inByte == '<' || inByte == ',') { Serial.println("go back"); //  digitalWrite(DIR_PIN, HIGH); // EN=LOW to enable digitalWrite(EN_PIN, LOW); } else if(inByte == '>' || inByte == '.') { Serial.println("go forth"); //  digitalWrite(DIR_PIN, LOW); // EN=LOW to enable digitalWrite(EN_PIN, LOW); } else if(inByte == ' ' || inByte == 's') { Serial.println("stop"); //  // EN=HIGH to disable digitalWrite(EN_PIN, HIGH); } else { Serial.println("press '<' or '>' to choose direction, space or 's' to stop,"); } } delay(100); } void timer_handle_interrupts(int timer) { //    HIGH->LOW digitalWrite(STEP_PIN, HIGH); delayMicroseconds(1); digitalWrite(STEP_PIN, LOW); } Source: https://habr.com/ru/post/337430/
All Articles