{"action":"created","issue":{"url":"https://api.github.com/repos/GreyGnome/EnableInterrupt/issues/13","labels_url":"https://api.github.com/repos/GreyGnome/EnableInterrupt/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/GreyGnome/EnableInterrupt/issues/13/comments","events_url":"https://api.github.com/repos/GreyGnome/EnableInterrupt/issues/13/events","html_url":"https://github.com/GreyGnome/EnableInterrupt/issues/13","id":95934812,"number":13,"title":"This library does not coexist with other code using interrupts","user":{"login":"TomWS1","id":10307855,"avatar_url":"https://avatars.githubusercontent.com/u/10307855?v=3","gravatar_id":"","url":"https://api.github.com/users/TomWS1","html_url":"https://github.com/TomWS1","followers_url":"https://api.github.com/users/TomWS1/followers","following_url":"https://api.github.com/users/TomWS1/following{/other_user}","gists_url":"https://api.github.com/users/TomWS1/gists{/gist_id}","starred_url":"https://api.github.com/users/TomWS1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TomWS1/subscriptions","organizations_url":"https://api.github.com/users/TomWS1/orgs","repos_url":"https://api.github.com/users/TomWS1/repos","events_url":"https://api.github.com/users/TomWS1/events{/privacy}","received_events_url":"https://api.github.com/users/TomWS1/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-07-19T17:36:36Z","updated_at":"2015-07-21T17:13:25Z","closed_at":null,"body":"I tried to use this library to add pinChange interrupt capability to an existing sketch.  When I simply added #include <EnableInterrupt.h> into my main sketch, the build failed with multiple duplicate references.  \r\nAfter exploring a bit I discovered that all I had to do was use the 'Simple' example, #include a reference one of my other libraries (which supports hardware with its own interrupt handler) and that build failed.   I then created a very simple extension to 'Simple' example in which there was a secondary file with its own interrupt handler and was not surprised that that failed as well.  (I'd include the source files here but don't see how to do it)\r\n\r\nAlso, the EnableInterrupt.h file is peppered with references to actual Arduino boards, not to the underlying processor.   Consequently any board that is NOT included in the set will not be built properly, these include new Arduino designs or designs using AVR processors that are not 'official' Arduino designs.\r\n"},"comment":{"url":"https://api.github.com/repos/GreyGnome/EnableInterrupt/issues/comments/123405979","html_url":"https://github.com/GreyGnome/EnableInterrupt/issues/13#issuecomment-123405979","issue_url":"https://api.github.com/repos/GreyGnome/EnableInterrupt/issues/13","id":123405979,"user":{"login":"GreyGnome","id":3449497,"avatar_url":"https://avatars.githubusercontent.com/u/3449497?v=3","gravatar_id":"","url":"https://api.github.com/users/GreyGnome","html_url":"https://github.com/GreyGnome","followers_url":"https://api.github.com/users/GreyGnome/followers","following_url":"https://api.github.com/users/GreyGnome/following{/other_user}","gists_url":"https://api.github.com/users/GreyGnome/gists{/gist_id}","starred_url":"https://api.github.com/users/GreyGnome/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GreyGnome/subscriptions","organizations_url":"https://api.github.com/users/GreyGnome/orgs","repos_url":"https://api.github.com/users/GreyGnome/repos","events_url":"https://api.github.com/users/GreyGnome/events{/privacy}","received_events_url":"https://api.github.com/users/GreyGnome/received_events","type":"User","site_admin":false},"created_at":"2015-07-21T17:13:25Z","updated_at":"2015-07-21T17:13:25Z","body":"Yes, I am working on adding compiler directives to exclude interrupt handlers that may conflict with handlers in other libraries. The problem is that other libraries may consume ISRs that they don't need, so you may have to edit their files. Note that the AltSoftSerial library avoids some of those issues that are caused by the SoftwareSerial library (and it is superior, IMHO).\r\n\r\nLook for a new version in the next week or two. You can download the EnableInterrupt.h file today which will have the directives in it already.\r\n\r\nTo add files you could simply include a link to Github Gist or pastebin.\r\n\r\nThe EnableInterrupt.h is peppered with references, but that's only to simplify the #ifdef's in the file. For example, I have supported the non-Arduino ATmega1284 by doing this:\r\n\r\n    #elif defined __AVR_ATmega1284P__ || defined __AVR_ATmega1284__ || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__)\r\n    #define MIGHTY1284\r\nSimilarly, I look for the processor definitions and then define an Arduino name so that further ifdef's don't require that long ugly string."}}