Hi, i am using ATMEGA16 microcontroller with external crystal frequency 12 MHz. when i am running the code of USART, i does't get any data on hyperterminal, plz help me out..
Have you chosen or compiled a bootloader designed for 12MHz? I believe the code gets and uses the clock speed to set things like delays and UART settings. (I'd have to check that, but you do need to set things up correctly so the code knows the actual clock speed)
We need more information to be able to help.
Post the relevant sections of your code (Initialization of the µC and UART code)..
Also show how you connect the ATmega to the PC (RxD TxD crossed?)
Also 12MHz don't allow all baudtrate check here: http://www.wormfood.net/avrbaudcalc.php
Fuse bits must also be set for external crystal (not the default value if my memory serve me well).
You can check the clock with a dumb 1 second interval led blink.
I always design a project with an 'I'm alive' LED. If I have spare outputs, I always add a couple of status LEDs too.
The LED output(s) can also be a stand in for a debug output. Good to have if you have a timing issue, or an interupt latency problem. Using a scope you can see everything from Serial fault codes to timing pulses.