LEECH666

Untitled

Mar 24th, 2012
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.00 KB | None | 0 0
  1. /**************************************/
  2. /* Not so powerful Debouncing Example */
  3. /* No Interrupt needed                */
  4. /* Author: Peter Dannegger            */
  5. /**************************************/
  6. #define debounce(port,pin)({\
  7.     static uint8_t flag = 0;\
  8.     uint8_t i = 0;\
  9.     if( flag )\
  10.     {\
  11.         while(1)\
  12.         {\
  13.             if( !(port & 1<<pin) )\
  14.             {\
  15.                 i = 0;\
  16.                 break;\
  17.             }\
  18.             _delay_us( 98 );\
  19.             if( --i == 0 )\
  20.             {\
  21.                 flag = 0;\
  22.                 i = 0;\
  23.                 break;\
  24.             }\
  25.         }\
  26.     }\
  27.     else\
  28.     {\
  29.         while(1)\
  30.         {\
  31.             if( (port & 1<<pin) )\
  32.             {\
  33.                 i = 0;\
  34.                 break;\
  35.             }\
  36.             _delay_us( 98 );\
  37.             if( --i == 0 )\
  38.             {\
  39.                 flag = 1;\
  40.                 i = 1;\
  41.                 break;\
  42.             }\
  43.         }\
  44.     }\
  45.     i;\
  46. })
Advertisement
Add Comment
Please, Sign In to add comment