I've been working on an pulse monitor circuit for a while now based on a Tiny12 AVR and everything was working perfect, until I decided to raise the frequency to allow better resolution. The circuit uses a simple programming switch to program a setpoint. I was using PB3 for the switch, but since I wanted to raise the frequency I had to move it to PB5, which is typically the reset input.
I used my high voltage programmer and configured the pin to NOT be a reset and now I'm having issues with the AVR recognizing the switch (I have verified that all programming references were changed).
From the data sheet I can tell that PB5 does NOT have an internal pull up resistor, but since my circuit has an external pull up (10K) I can't see how this would be an issue. The switch itself is wired to ground on one side, and to a PNP resistor through a 10K resistor. The emitter goes to ground, the collector goes to 5VDC through a 10K resistor. My switch tie in point is between the resistor and the transistors collector. I have verified that the pin is seeing a 'low' voltage at the input pin, so I have ruled out hardware issues.
I have never used an AVR without the internal pull up enabled, am I over looking something? Oh, and I have tried three separate circuits with three separate Tiny12s! Each circuit will occasionally read the low voltage, and I have noticed that if my DMM is on the input pin I stand a much better chance of the button being read as a 'low.'