Closed GoogleCodeExporter closed 9 years ago
By the way, this code works on an Arduino Uno. It doesn't work on an Arduino
Mega.
Original comment by davidpru...@gmail.com
on 30 Oct 2012 at 10:19
There is a link from the front page to the "Groups", which is the forum. I wish
the forum were more prominent, *sigh*.
Regarding your issue, there are a couple of problems with your code. You have
correctly set encoderPos to be volatile, but not A_set and B_set. Those are
used in both of your interrupts. The general rule is, if a variable is shared
with any interrupt, you must make it volatile. Sharing a variable between two
interrupts means they should be volatile.
Also, you do not perform the digitalWrite(PIN, HIGH) to turn on the resistors
on your input pins. I can imagine that the high input impedance is creating all
sorts of noise on the pins and preventing the code from reaching your "Start!"
print statement.
You do not need to use the digitalRead() commands in your interrupt handlers.
See http://code.google.com/p/arduino-pinchangeint/wiki/Usage . The
PCintPort::pinState variable will tell you if it's HIGH or LOW. That will save
a few micros, anyway. Besides, the pinState may have changed (because of switch
bounce) by the time you read it in the Interrupt handler. Switch bounce is a
very annoying thing.
Finally, if you are working on rotary encoders, you may want to refer to
http://code.google.com/p/adaencoder/ . There I have a rotary encoder class.
Maybe I have already done what you are trying to do.
Original comment by m...@schwager.com
on 1 Nov 2012 at 4:50
Original comment by m...@schwager.com
on 1 Nov 2012 at 4:50
P.S. The Mega uses entirely different pins, and mostly different ports, than
its smaller cousins. Refer to the other posting in this issue section, and the
Wiki, for more information. Good luck.
Also, sorry it has taken me a number of days to get back to you. I've been
hacking on an MP3 chip outside of work and haven't checked my email lately.
Original comment by m...@schwager.com
on 1 Nov 2012 at 4:52
No updates in a month; I am going to close this issue. Note there are a number
of changes to the PinChangeInt code lately; try to take a look at that.
Original comment by m...@schwager.com
on 29 Nov 2012 at 2:45
Original issue reported on code.google.com by
davidpru...@gmail.com
on 26 Oct 2012 at 10:07