论坛

柜台/ atmega8

开始于 Shirin Ghanbari 2012年11月19日
我使用mega8来通过代码视觉对衰落的边缘脉冲进行计数,但是 每个脉冲的反增量大于一个。
我能做些什么?
#包括
#包括
#包括
void main(void)
{
//在此处声明您的局部变量
未签名的char buff [20];
unsigned int t;
TCCR1A = 0x00;
TCCR1B = 0x06;
TCNT1H = 0x00;
TCNT1L = 0x00;
OCR1AH = 0x00;
OCR1AL = 0x00;
OCR1BH = 0x00;
OCR1BL = 0x00;
lcd_init(16);
而(1)
{
//将您的代码放在这里
t = TCNT1;
sprintf(buff,“ counter =%d”,t);
lcd_puts(buff);
delay_ms(200);
lcd_clear();
};
}



你好
计算边缘的最佳方法是使用
计数器的T输入或外部中断。
T输入使计数器计数沿。
如果要测量
 信号,最好的方法是使用计数器的输入捕获 controlled
由模拟比较器。
对于慢信号:频率= 1 /周期
对于快速信号,最好的方法是计数
时间窗口内的时间段(使用T输入) 
________________________________
来自:Shirin Ghanbari
至:avrclub
发送:2012年11月19日,星期一,凌晨3:26
主题:[AVR俱乐部]柜台/ atmega8


 
我使用mega8来通过代码视觉对衰落的边缘脉冲进行计数,但是 每增加一个脉冲,计数器增加一个。
我能做些什么?
#包括
 #include
           #包括
void main(void)
{
//在此处声明您的局部变量
  未签名的char buff [20];
  unsigned int t;
TCCR1A = 0x00;
TCCR1B = 0x06;
TCNT1H = 0x00;
TCNT1L = 0x00;
OCR1AH = 0x00;
OCR1AL = 0x00;
OCR1BH = 0x00;
OCR1BL = 0x00;
lcd_init(16);
而(1)
      {
      //将您的代码放在这里   
      t = TCNT1;
              sprintf(buff,“ counter =%d”,t);
          lcd_puts(buff); 
                   delay_ms(200);
          lcd_clear();
      };
}