{"id":19012652,"url":"https://github.com/naguissa/utimerlib","last_synced_at":"2025-07-17T00:06:11.777Z","repository":{"id":93928761,"uuid":"121517888","full_name":"Naguissa/uTimerLib","owner":"Naguissa","description":"Arduino tiny and cross-device compatible timer library","archived":false,"fork":false,"pushed_at":"2025-04-22T14:48:08.000Z","size":32265,"stargazers_count":21,"open_issues_count":3,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-22T23:45:31.728Z","etag":null,"topics":["arduino","arduino-library","device-timer","interrupts","microseconds","naguissa","timer","timers"],"latest_commit_sha":null,"homepage":"https://www.foroelectro.net/electronica-digital-microcontroladores-f8/utimerlib-libreria-arduino-para-eventos-temporizad-t191.html","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Naguissa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"Naguissa","custom":"https://www.paypal.me/foroelectro"}},"created_at":"2018-02-14T14:09:19.000Z","updated_at":"2025-04-22T14:46:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"7caf59a1-279d-48c5-a6c5-6906bb457d3d","html_url":"https://github.com/Naguissa/uTimerLib","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/Naguissa/uTimerLib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naguissa%2FuTimerLib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naguissa%2FuTimerLib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naguissa%2FuTimerLib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naguissa%2FuTimerLib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Naguissa","download_url":"https://codeload.github.com/Naguissa/uTimerLib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naguissa%2FuTimerLib/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265553226,"owners_count":23787036,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","arduino-library","device-timer","interrupts","microseconds","naguissa","timer","timers"],"created_at":"2024-11-08T19:19:01.469Z","updated_at":"2025-07-17T00:06:11.727Z","avatar_url":"https://github.com/Naguissa.png","language":"C++","readme":"# Arduino tiny and cross-device compatible timer library - uTimerLib #\n\nMaster status:   [![Build Status](https://travis-ci.org/Naguissa/uTimerLib.svg?branch=master)](https://travis-ci.org/Naguissa/uTimerLib)\n\n## What is this repository for? ##\n\nTiny and cross-device compatible timer-driven timed function calls library.\n\nSupports Arduino AVR, SAM, STM32, ESP8266, ESP32 and SAMD21 microcontrollers.\n\n\n## Current status ##\n\nCurrently suported architectures:\n - Atmel ATtiny, Experimental - https://github.com/damellis/attiny and https://github.com/SpenceKonde/Disgispark AVRCore (25, 45 and 85)\n - DisgiSpark AVR, Experimental - https://github.com/digistump/DigistumpArduino\n - Atmel AVR 32U4\n - Atmel AVR, general\n - STM32 (both Roger Clark and ST cores)\n - SAM (Due)\n - ESP8266\n - ESP32\n - SAMD21 (Arduino Zero and Zero MKR; experimental support)\n - SAMD51 (Adafruit Feather M4, Adafruit Metro M4; work in progress, not functional -need for a SAMD51 board...)\n\n## Device timer usage ##\n\nDepending on wich architecture this library uses one or another device timer. Take in mind this because can caause conflicts with other libraries:\n - Atmel ATtiny:\tTimer1 (2nd timer).\n - DisgiSpark AVR:\tTimer0 (1st timer).\n - Atmel AVR 32U4:\tTimer3 (4rd timer).\n - Atmel AVR other:\tTimer2 (3rd timer).\n - STM32:\t\t\tTimer3 (3rd timer).\n - SAM (Due):\t\tTC3 (Timer1, channel 0).\n - ESP8266:\t\t\tOS Timer, one slot of seven available (Software timer provided by Arduino because ESP8266 has only two hardware timers and one is needed by it normal operation).\n - ESP32:\t\t\tOS Hardware Timer.\n - SAMD21:\t\t\tTimer 4, CC0 (TC3).\n - SAMD51:\t\t\tTimer 2 (TC1), 16 bits mode.\n\n*Note*: On ESP8266 this library uses \"ticker\" to manage timer, so it's maximum resolution is miliseconds. On \"_us\" functions times will be rounded to miliseconds.\n\n## Usage ##\n\nThis library defines a global variable when included called \"TimerLib\".\n\nYou have these methods:\n - *TimerLib.setInterval_us(callback_function, microseconds);* : callback_function will be called each microseconds.\n - *TimerLib.setInterval_s(callback_function, seconds);* : callback_function will be called each seconds.\n - *TimerLib.setTimeout_us(callback_function, microseconds);* : callback_function will be called once when microseconds have passed.\n - *TimerLib.setTimeout_s(callback_function, seconds);* : callback_function will be called once when seconds have passed.\n - *TimerLib.clearTimer();* : will clear any timed function if exists.\n\nIt only manages one function at a time, if you call any setXXX method it will cancel any running timed function and process new one.\n\nAn attached functions broker could be implemented, but then this would not be (micro)TimerLib. Maybe in other project.....\n\n## How do I get set up? ##\n\nYou can get it from Arduino libraries directly, searching by uTimerLib.\n\nFor manual installation:\n\n * Get the ZIP from releases link: https://github.com/Naguissa/uTimerLib/releases\n * Rename to uTimerLib.zip\n * Install library on Arduino\n\n## Documentation and extras ##\n\nYou can find all documentation and extras in this repository: https://github.com/Naguissa/uTimerLib_doc_and_extras\n\nYou can read documentation online here: https://naguissa.github.io/uTimerLib_doc_and_extras/\n\n\n\n## Examples ##\n\nIncluded on example folder, available on Arduino IDE.\n\n\n## Extra ##\n\nLook in extras folder for datasheets and extra info\n\n\n## Who do I talk to? ##\n\n * [Naguissa](https://github.com/Naguissa)\n * https://www.foroelectro.net/electronica-digital-microcontroladores-f8/utimerlib-libreria-arduino-para-eventos-temporizad-t191.html\n * https://www.naguissa.com\n\n\n## Contribute ##\n\nAny code contribution, report or comment are always welcome. Don't hesitate to use GitHub for that.\n\n\n * You can sponsor this project using GitHub's Sponsor button: https://github.com/Naguissa/uTimerLib\n * You can make a donation via PayPal: https://paypal.me/foroelectro\n\n\nThanks for your support.\n\n\nContributors hall of fame: https://www.foroelectro.net/hall-of-fame-f32/contributors-contribuyentes-t271.html\n","funding_links":["https://github.com/sponsors/Naguissa","https://www.paypal.me/foroelectro","https://paypal.me/foroelectro"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaguissa%2Futimerlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnaguissa%2Futimerlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaguissa%2Futimerlib/lists"}