|
mega16内部8m时钟,用定时器0的中断来实现输出300k的方波。
但是不知为什么,用示波器测量输出最大只有125k,即使是把tcnt0赋值为0xfe,并且定义分频系数为1也不行。
请教高手给指点下,谢谢啦!!!
#include <iom16v.h>
#include <macros.h>
#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)
{
TCNT0 = 0xfe; //reload counter value
PORTB ^= 0x02; // 端口取反
}
void main(void)
{
CLI(); //disable all interrupts
DDRB = 0x02;// 设置 PB1 为输出
TCCR0 = 0x00; //stop
TCNT0 = 0xfe; //set count
TCCR0 = 0x01; //start timer,分频系数为1
TIMSK = 0x01; //timer interrupt sources
SEI(); //re-enable interrupts
}
<font color=red>以下红色文字由坛主:armok 于:2006-05-13,18:53:05 加入。 你的原标题:“求救!!!!!!!!!mega16定时问题” 不合符规定。请更改成能说明帖子大意的标题
本论坛规定:一定要起一个能说明帖子大意的标题。不允许“关于 AVR 的 ADC 使用!”这种笼统标题。作为标题,必须说明清楚:
①你是在请教问题,还是在介绍有关的知识?
②ADC的问题有许多,你是想说那方面的内容?
注意以上两点,标题应该改成如:“请教:ADC 可以不使用中断吗?”。
起一个能说明帖子大意的标题,除了减轻我们的帖子分类整理工作,还方便其它人阅读,节省大家的时间。
谢谢你的支持。
注:这次我们帮你修改了,下次请使用合格的标题。谢谢你的支持! |
|