Hello! For those that want the background waffle, it follows below. Otherwise, here is my query: Is there an easy way to write code in the PIC to respond to a pulsed 2KHz input and not one at any other frequency? The pulses are about 8 microseconds long and happen about every 500 microseconds. I am receiving bursts of 2KHz signal that I want to time the length of. Phase locked loops take to long to respond. My current plan is to manually wait for a pulse to start, time it, wait for another one, if another one starts within the acceptable bracket, it's a 2KHz signal (ie a binary pulse has started). The end of the binary pulse would be when the little pulses stop. This seems a bit clunky, so I thought I would try the PICLIST out! I have been a subscriber to the list for a couple of weeks now - it's great! My vote is for all of the indirect PIC stuff to continue. Perhaps if people with other, non PIC information included 'notPIC' in the subject it would help people to have them auto deleted. Thanks! Here's the background: I am building a bizarre communications system that flashes binary messages across a room as an exhibit in a hands-on science museum. It uses ordinary torches (with LED's instead of bulbs) as the transmitters and they flash really slowly so that you can see the binary coding easily. On the other side of the room is a de-coder that translates the binary codes back into messages. The demonstration is to help illustrate what a digitally encoded binary message is. The interactive bit is that you type in the message on a keyboard and watch as it is transmitted. Each end of the room has a transmitter and receiver so that you can send messages backwards and forwards. You can wave your hands in front of the torches and garble the messages. It's great fun! The neatest thing about it is that you can control the flash rate from about 1 bit / second to about 20 bits/ second to choose from being able to see the bits and to transmit the message at a reasonable speed. The receiver automatically adjusts to the modified transmission speed. The whole thing is done with a 16C57 for transmitting and a 16C55 for receiving. I'm using standard PC keyboards for the input of the messages and they are displayed on 2x40 char LCD's. The display shows the binary code of each letter as it is transmitted. I am really pleased with it! Anyway, as you can imagine, I am using visible light and have all sorts of problems with ambient lighting. I am using photodiodes positioned in the middle of a couple of parabolic reflectors taken from torches and they work really well (the distance is 10m), but I am unhappy with the arrangement since it is really only a threashold light detector and it needs careful adjustment to get it set up. If the sun comes out or someone turns all of the lights on, it gets messed up. I have recently built in a comparator and an ambient light sensor to compensate for this, but to make it rock solid I have also decided to transmit the binary pulses using a 2KHz 'carrier' signal. Each binary pulse is actually a 2Khz flashing pulse, but you can't see it as that. I look forward to hearing your comments! Many Thanks, Roger Coleman. -- Roger Coleman, Curator, Guildford Discovery Ward Street, Guildford, GU1 4LH England Tel/Fax +44 1483 37080 101722.3022@compuserve.com