tc0_1.c

来自「arm的功能测试模块」· C语言 代码 · 共 36 行

C
36
字号
/*****************************************************
****       AVR T/C0 使用范例1(T/C0作为计数器)      ***
****       作者:  liugangdi                       ***
****       编译器:WINAVR20050214                  ***
****       日期:2005.12.11                        ***
******************************************************/

/*功能简单说明:脉冲信号从PB0(T0)引脚输入,T/C0作为计数器,计数结果由PC
口以二进制从发光二极管显示输出。由于受到mega16实验板的限制,可用proteus
进行仿真。注意:输入的脉冲信号频率不宜太高,太高就看不出二极管的变化。
可以不断提高脉冲信号的频率来观察结果。从几赫兹调起。此时的OC0可以设置
没有被连接,PB3作为普通的端口使用.*/

//说明:用Proteus仿真时,PC6(TOSC1)、PC7(TOSC2)脚无法作为一般的I/O使用,
//       该为D口就一切正常,原因不清,估计和Proteus的设置有关?


#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <stdio.h>
 
void init_timer0(void)
{TCCR0|=(1<<CS02)|(1<<CS01)|(1<<CS00);  //引脚T0上升沿计数
 TCNT0=0X00;                  //T/C0置初值
 }

int main(void)
{DDRC=0XFF;     //设置C口为输出
 PORTC=0X00;
 ASSR=0X00;
 init_timer0();
 while(1)
 {PORTC=TCNT0;}    //注意频率问题,益出后从零开始重新计数
 }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?