{"action":"created","issue":{"url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/275","labels_url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/275/labels{/name}","comments_url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/275/comments","events_url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/275/events","html_url":"https://github.com/MarlinFirmware/MarlinDev/issues/275","id":115751625,"number":275,"title":"Conflicting definition when compiling VIKI display configuration","user":{"login":"Wackerbarth","id":505323,"avatar_url":"https://avatars.githubusercontent.com/u/505323?v=3","gravatar_id":"","url":"https://api.github.com/users/Wackerbarth","html_url":"https://github.com/Wackerbarth","followers_url":"https://api.github.com/users/Wackerbarth/followers","following_url":"https://api.github.com/users/Wackerbarth/following{/other_user}","gists_url":"https://api.github.com/users/Wackerbarth/gists{/gist_id}","starred_url":"https://api.github.com/users/Wackerbarth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Wackerbarth/subscriptions","organizations_url":"https://api.github.com/users/Wackerbarth/orgs","repos_url":"https://api.github.com/users/Wackerbarth/repos","events_url":"https://api.github.com/users/Wackerbarth/events{/privacy}","received_events_url":"https://api.github.com/users/Wackerbarth/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-11-08T18:47:27Z","updated_at":"2015-11-13T15:54:04Z","closed_at":null,"body":"In file included from .../ultralcd.cpp:36:0:\r\n.../ultralcd_implementation_hitachi_HD44780.h:54:0: warning: \"LCD_CLICKED\" redefined [enabled by default]\r\n       #define LCD_CLICKED (buttons&(B_MI|B_RI))\r\n ^\r\nIn file included from .../ultralcd.cpp:1:0:\r\n.../ultralcd.h:70:0: note: this is the location of the previous definition\r\n     #define LCD_CLICKED (buttons&EN_C)\r\n ^\r\n"},"comment":{"url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/comments/156470967","html_url":"https://github.com/MarlinFirmware/MarlinDev/issues/275#issuecomment-156470967","issue_url":"https://api.github.com/repos/MarlinFirmware/MarlinDev/issues/275","id":156470967,"user":{"login":"Wackerbarth","id":505323,"avatar_url":"https://avatars.githubusercontent.com/u/505323?v=3","gravatar_id":"","url":"https://api.github.com/users/Wackerbarth","html_url":"https://github.com/Wackerbarth","followers_url":"https://api.github.com/users/Wackerbarth/followers","following_url":"https://api.github.com/users/Wackerbarth/following{/other_user}","gists_url":"https://api.github.com/users/Wackerbarth/gists{/gist_id}","starred_url":"https://api.github.com/users/Wackerbarth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Wackerbarth/subscriptions","organizations_url":"https://api.github.com/users/Wackerbarth/orgs","repos_url":"https://api.github.com/users/Wackerbarth/repos","events_url":"https://api.github.com/users/Wackerbarth/events{/privacy}","received_events_url":"https://api.github.com/users/Wackerbarth/received_events","type":"User","site_admin":false},"created_at":"2015-11-13T15:54:04Z","updated_at":"2015-11-13T15:54:04Z","body":"I don't disagree with the desired functionality.\r\n\r\nHowever, my thinking is that we should be micro-coding these \"complex\" operations rather than generating additional special purpose sections of code.\r\n\r\nOriginally, all of the \"codes\" (G,M, etc.) were primitive operations. It was up to the host to send an appropriate sequence to tell the bot what to do.\r\n\r\nThat model has since been \"corrupted\" (with the addition of functions like G29, et. al.)\r\nPerhaps what we should do is return to the primitive concept just as computers went from complex logic to RISC architecture. In that context, we might have a primitive \"wait for event\" and various ways to generate these events. One of the events might be \"USER_SIGNAL\" and we could have a primitive to map the \"PROXIMITY_SENSOR_#_\" to this USER_SIGNAL.\r\nThe \"LCD_USER_BUTTON_#\" could also be mapped in similar fashion.\r\n\r\nWith such a structure, we can write signal handlers as strings of primitives. We could even store some of them in RAM, ROM, or EPROM since they would be used infrequently and need not execute \"quickly\".\r\n\r\nWere it not for the fact that our memory resources are quite limited, we could have much of the logic reprogrammable. But the limited resources will require that most of the functions at constants at compile time rather than configurable at run time."}}