{"id":13781091,"url":"https://github.com/GreyGnome/PinChangeInt","last_synced_at":"2025-05-11T14:34:36.854Z","repository":{"id":17966940,"uuid":"20961017","full_name":"GreyGnome/PinChangeInt","owner":"GreyGnome","description":"Pin Change Interrupt library for the Arduino","archived":false,"fork":false,"pushed_at":"2015-04-03T18:46:57.000Z","size":472,"stargazers_count":173,"open_issues_count":8,"forks_count":70,"subscribers_count":37,"default_branch":"master","last_synced_at":"2024-11-17T16:42:20.898Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Arduino","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GreyGnome.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-18T12:20:46.000Z","updated_at":"2024-06-22T03:32:52.000Z","dependencies_parsed_at":"2022-09-24T20:20:33.831Z","dependency_job_id":null,"html_url":"https://github.com/GreyGnome/PinChangeInt","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreyGnome%2FPinChangeInt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreyGnome%2FPinChangeInt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreyGnome%2FPinChangeInt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreyGnome%2FPinChangeInt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GreyGnome","download_url":"https://codeload.github.com/GreyGnome/PinChangeInt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253580291,"owners_count":21930917,"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":[],"created_at":"2024-08-03T18:01:22.828Z","updated_at":"2025-05-11T14:34:36.574Z","avatar_url":"https://github.com/GreyGnome.png","language":"Arduino","readme":"---- README --------------------------------------------------------------------\n\tPinChangeInt README. Find instructions and more information at\n\thttps://github.com/GreyGnome/PinChangeInt/wiki\n\nNOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE\nThis library is deprecated as of April 3, 2015. This means that I will be\nproviding bug fixes for some time, but users are encouraged to migrate to\nthe EnableInterrupt library, at https://github.com/GreyGnome/EnableInterrupt .\nIt is faster and easier to use. Thank you.\n\n\n---- DESCRIPTION ---------------------------------------------------------------\nThis is the PinChangeInt library for the Arduino. It provides an extension to\nthe interrupt support for ATmega328 and ATmega2560-based Arduinos, and some\nATmega32u4 and Sanguinos. It adds pin change interrupts, giving a way for users\nto have interrupts drive off of any pin (ATmega328-based Arduinos), by the Port\nB, J, and K pins on the Arduino Mega and its ilk, and on the appropriate ports\n(including Port A) on the Sanguino and its ilk. Yun and Sanguino support are\nweak, quite honestly, as I don't have either a Sanguino or a Yun. Theoretically\nthe library would work with a Leonardo but I have no reports regarding that\nplatform. The ATmega32u4 has port B (8 pins) pin change interrupts only.\n\nFor more information refer to avr-gcc header files, Arduino source and Atmega\ndatasheet.\n\nThis library was inspired by and derived from Chris J. Kiick's PCInt Arduino\nPlayground example here: http://playground.arduino.cc/Main/PcInt\n\nThe following pins are usable PinChangeInt pins on the Mega (ATmega1280 and\nATmega2560-based Arduinos**):\n\nArduino              Arduino              Arduino\n  Pin*  PORT PCINT     Pin   PORT PCINT     Pin   PORT PCINT\n  A8     PK0  16       10     PB4   4       SS     PB0   0\n  A9     PK1  17       11     PB5   5       SCK    PB1   1\n A10     PK2  18       12     PB6   6       MOSI   PB2   2\n A11     PK3  19       13     PB7   7**     MISO   PB3   3\n A12     PK4  20       14     PJ1  10\n A13     PK5  21       15     PJ0   9\n A14     PK6  22       \n A15     PK7  23\n...indeed, the ATmega2560 chip supports many more Pin Change Interrupt pins but\nthey are unavailable on the Arduino, unless you want to solder teeny tiny wires.\n\n* Note: Arduino Pin 0 is PE0 (PCINT8), which is RX0 and thus is not supported by\nthis library.  It is the same pin the Arduino uses to upload sketches, and they\nare connected to the FT232RL USB-to-Serial chip (ATmega16U2 on the R3).\n** On the MegaADK, according to http://arduino.cc/en/Main/ArduinoBoardMegaADK:\n\"USB Host: MAX3421E. The MAX3421E comunicate with Arduino with the SPI bus. So\nit uses the following pins:\nDigital: 7 (RST), 50 (MISO), 51 (MOSI), 52 (SCK). NB: Please do not use Digital\npin 7 as input or output because is used in the comunication (sic) with\nMAX3421E \"\n\n---- LICENSE -------------------------------------------------------------------\nLicensed under the Apache2.0 license. See the source files for the license\nboilerplate, the LICENSE file for the full text, and the NOTICE file which the\nApache2.0 license requires that you distribute with any code that you distribute\nthat uses this library. The copyright holders for this code are Chris J. Kiick,\nLex Talionis, and Michael Schwager. Chris and Lex have graciously agreed to the\nApache 2.0 license for this code, and beginning with version 2.40-rc1 this is\nthe license that applies.\n\n---- ACKNOWLEDGMENTS -----------------------------------------------------------\nThis library was originally written by Chris J. Kiick, Robot builder and all\naround geek, who said of it,\n\t\"Hi, Yeah, I wrote the original PCint library. It was a bit of a hack\n\tand the new one has better features.  I intended the code to be freely\n\tusable.  Didn't really think about a license.  Feel free to use it in\n\tyour code: I hereby grant you permission.\"\nThanks, Chris! A hack? I dare say not, if I have taken this any further it's\nmerely by standing on the shoulders of giants. This library was the best\n\"tutorial\" I found on Arduino Pin Change Interrupts and because of that I\ndecided to continue to maintain and (hopefully) improve it. We, the Arduino\ncommunity of robot builders and geeks, owe you a great debt of gratitude for\nyour hack- a hack in the finest sense.\n\nThe library was then picked up by Lex Talionis, who created the Google Code\nwebsite. We all owe a debt of thanks to Lex, too, for all his hard work! He is\ncurrently the other official maintainer of this code.\n\nMany thanks to all the contributors who have contributed bug fixes, code, and\nsuggestions to this project: \n\nJohn Boiles and Baziki (who added fixes to PcInt), Maurice Beelen, nms277,\nAkesson Karlpetter, and Orly Andico for various fixes to this code, Rob Tillaart\nfor some excellent code reviews and nice optimizations, Andre' Franken for a\ngood bug report that kept me thinking, cserveny.tamas a special shout out for\nproviding the MEGA code to PinChangeInt, and Pat O'Brien for testing and\nreporting on the Arduino Yun.- Thanks!\n\nA HUGE thanks to JRHelbert for fixing the PJ0 and PJ1 interrupt PCMSK1 issue on\nthe Mega... 06/2014\n\nA HUGE thanks to Jan Baeyens (\"jantje\"), who has graciously DONATED an Arduino\nMega ADK to the PinChangeInt project!!! Wow, thanks Jan! This makes the\n2560-based Arduino Mega a first class supported platform- I will be able to test\nit and verify that it works.\n\nFinally, a shout out to Leonard Bernstein. I was inspired by him\n(https://www.youtube.com/watch?feature=player_detailpage\u0026v=R9g3Q-qvtss#t=1160)\nfrom a Ted talk by Itay Talgam. None of the contributors, myself included, has\nany interest in making money from this library and so I decided to free up the\ncode as much as possible for any purpose.  ...But! You must give credit where\ncredit is due (it's not only a nice idea, it's the law- as in, the license\nterms)!\n\n\"If you love something,  give it away.\"\n\nIf apologize if I have forgotten anyone here. Please let me know if so.\n","funding_links":[],"categories":["Libraries"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGreyGnome%2FPinChangeInt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGreyGnome%2FPinChangeInt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGreyGnome%2FPinChangeInt/lists"}