-
学习
-
学习一下
-
就一个计数器,你让他捕获用还是PWM输出用,你用TIME0输出PWM,让TIME1捕获,就用可以了,为什么一定要用一个呢
-
你是仿LC功能还是做PLC.
-
去掉那就话ETIMSK=0B00000000是中断优先级别的问题。你用的哪款的单片机啊一个是定时器1捕获,定时器3是溢出
-
T的数值永远不会成为0X01的所以你的代码,出现问题了。如果改成我说的那样如果你 M&0X80=T ,与到的结果是0发送一个低电平。当与到的结果是0X80不是0 进入 else 发送一个1过去了。我说的对吗兄弟
-
t=(m&0x80);
if(t==1)
{
PORTB|=BIT(6); ////一句
}
else
{
PORTB&=~BIT(6);
}
PORTB|=BIT(5); ////二句
m=(m
-
DDRA=0;
肯定是不对的。你设置PA口是输入状态兄弟。改成DDRA=0XFF设置为输出状态
就OK了
-
多看看数据手册,应该不是很难吧我感觉
-
楼上兄弟说出了你的问题了
-
超声波测距的原理,是根据接收回来的高电平的时间来算距离的,打开定时器计数就可以了
-
# include
# define uint unsigned int
# define uchar unsigned char
void time0_ctc_init(void)
{
/*8分频 CTC模式 比较匹配时取反*/
TCCR0|=(1
-
2.ICCAVR的菜单Project下的菜单options有两个选项要设置,如芯片的型号等
-
问题在你的熔丝位上,我感觉。你用9600的波特率实际是600, 9600/600=16 .相差16倍,你用的晶振是16M 内部的RC振荡器是1M刚好差16倍。这个应该不是巧合吧?你想想?::loveliness:
-
这个程序应该很简单,找个别人时钟程序,和案件的程序修改一下就可以了
-
主要看你控制的要求是什么,直流电机还是交流电机。这东西的说清楚点:)
-
如果你用ISP下载程序熔丝位是D9FF,加密位不要写数据,绝对没有问题了!注意是不是你外接晶振电路没有起震的原因,要是外部晶振不工作,熔丝位正确,芯片没有外部时钟,就锁死了。对于锁死的芯片可以找个有源的晶振,或者别的单片机。输出一个方波接到晶振引脚上解决你锁住的芯片,就行了
-
定时器初始化有问题,三楼说的对
-
谁有捕获的程序穿上来注解清楚,我也等着学这块呢
-
定时器和CPU都可以定时,但是他们是不同概念,定时器和CPU可以说是没有什么关系,只是计数满以后溢出时会产生中断!这样可以大大提高CPU的使用!不会像定时器一样在哪做循环!浪费CPU的时间。