#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