Can't upload to Uno

I've had my arduino Uno for a while and have been using it successfully to gather some sensor data and send it through serial to the computer, but now I can't upload new programs. The current program is uploading 4 bytes (analog read + '\n') 10 times every second. I am still receiving this data, so I don't think its a driver problem (I'm running windows 7, btw). I can program my friend's Duemilanove, so I don't think its my computer that's the problem.

When I press the upload button, the pin 13 LED flashes (so I don't think its a bootloader problem), and the Rx LED flashes a couple of times. But then the Tx LED just goes back to flashing rapidly, before it can transmit the new program.

If I press the reset button, one of 2 things happen. If I press it and release it quickly, it pin 13 LED and the Rx LED flash again, then Tx resumes flashing. If I press it and hold it for around a second, it flashes some more, but the computer gives up sending the program. I've tried all sorts of delays between compile and reset, but I just keep getting the same result.

Uploading in verbose mode gives the standard boilerplate messages, but halts on "avrdude: Send: 0 [30] [20]". When I press reset quickly, it just repeats this line.

It seems like the board is just transmitting data so fast that the computer can't get a word in. But this seems silly since even with a baud rate of 9600 it should be able to transmit far more data than it is.

Does anyone have any other tricks I can try before resorting to manually programming it with the ICSP pins? I haven't done this before and it looks fiddly, so I'd like to avoid it if possible.

Hold down Reset. Unplug the USB cable. Plug the USB cable back in. Click on the Upload button for the new sketch. When you see "Binary sketch size:" in the sketch window, release the Reset button.

I tried a bunch of times with different timings on the reset button release but no luck :confused: