// We use 4-character tabstops, so IN VIM: :set ts=4 // ...that's: ESCAPE key, colon key, then "s-e-t SPACE key t-s-=-4" /* Questions? Send mail to mschwage@gmail.com */ /* * The following was taken from the Arduino's code. DO NOT include any other external code in this file. * * I don't know why we need to turn off PWM but I'll follow digitalRead()'s lead and be * a good citizen, and do so as well. * The turnOffPWM code is taken from wiring_digital.c. Copyright follows: Copyright (c) 2005-2006 David A. Mellis This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Modified 28 September 2010 by Mark Sproul */ // gets us sbi() and cbi() #include void AdaEncoder::turnOffPWM(uint8_t timer) { switch (timer) { #if defined(TCCR1A) && defined(COM1A1) case TIMER1A: cbi(TCCR1A, COM1A1); break; #endif #if defined(TCCR1A) && defined(COM1B1) case TIMER1B: cbi(TCCR1A, COM1B1); break; #endif #if defined(TCCR2) && defined(COM21) case TIMER2: cbi(TCCR2, COM21); break; #endif #if defined(TCCR0A) && defined(COM0A1) case TIMER0A: cbi(TCCR0A, COM0A1); break; #endif #if defined(TIMER0B) && defined(COM0B1) case TIMER0B: cbi(TCCR0A, COM0B1); break; #endif #if defined(TCCR2A) && defined(COM2A1) case TIMER2A: cbi(TCCR2A, COM2A1); break; #endif #if defined(TCCR2A) && defined(COM2B1) case TIMER2B: cbi(TCCR2A, COM2B1); break; #endif #if defined(TCCR3A) && defined(COM3A1) case TIMER3A: cbi(TCCR3A, COM3A1); break; #endif #if defined(TCCR3A) && defined(COM3B1) case TIMER3B: cbi(TCCR3A, COM3B1); break; #endif #if defined(TCCR3A) && defined(COM3C1) case TIMER3C: cbi(TCCR3A, COM3C1); break; #endif #if defined(TCCR4A) && defined(COM4A1) case TIMER4A: cbi(TCCR4A, COM4A1); break; #endif #if defined(TCCR4A) && defined(COM4B1) case TIMER4B: cbi(TCCR4A, COM4B1); break; #endif #if defined(TCCR4A) && defined(COM4C1) case TIMER4C: cbi(TCCR4A, COM4C1); break; #endif #if defined(TCCR5A) case TIMER5A: cbi(TCCR5A, COM5A1); break; case TIMER5B: cbi(TCCR5A, COM5B1); break; case TIMER5C: cbi(TCCR5A, COM5C1); break; #endif } }