打印

请个位大侠帮忙一下这个问题出在哪里

[复制链接]
1943|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
邓诚dengcheng|  楼主 | 2010-5-7 12:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 邓诚dengcheng 于 2010-5-7 19:35 编辑

我才学习AVR单片机,我在WINAVR 定义了两个输出端口,但是在AVR studio中调试发现只有一个端口有信号输出,这是为什么呀,程序写的很差请各为大侠帮忙看一下:
#include<avr/io.h>
#include<avr/interrupt.h>
int main(void)
{DDRC=0XFF;
DDRB=0XFF;
PORTB=0X12;
PORTC=0X00;
TCCR0=0X01;
TCNT0=0X10;
TIMSK=1<<;PB0;
sei();
}
SIGNAL(SIG_OVERFLOW0)
{char i,j,s;
j=0X01;
  PORTB=0X00;

for(i=0;i<5;i++)
     {PORTC=j;
      j=j<<1;
     
      for(j=0;j<200;j++)
         for(s=0;s<100;s++)
      ;
     }
TCNT0=0x10;
PORTB=0X31;


}

相关帖子

沙发
liao_fangxing| | 2010-5-7 14:55 | 只看该作者
SIGNAL(SIG_OVERFLOW0)  ------怎么进来??
{char i,j,s;
j=0X01;
  PORTB=0X00;

for(i=0;i<5;i++)
     {PORTC=j;
      j=j<<1;
     
      for(j=0;j<20000;j++)  --------
         for(s=0;s<1200;s++)------j、s为char  能涨到这么大??
      ;
     }
TCNT0=0x10;
PORTB=0X31;


}

使用特权

评论回复
板凳
qnmdsb2008| | 2010-5-7 15:06 | 只看该作者
没看明白 你的signal函数在哪里调用的 这是全部的程序吗

使用特权

评论回复
地板
邓诚dengcheng|  楼主 | 2010-5-7 19:34 | 只看该作者
我把定义的字符变量j,s改小也不行,SIGNAL(SIG_OVERFLOW0)  函数是当T0溢出时的一个中断函数,我在书上看到的,如果不存在的话编译时会报错!!!!!

使用特权

评论回复
5
邓诚dengcheng|  楼主 | 2010-5-7 19:38 | 只看该作者
我用的是AVR GCC中定义的定时器溢出中断符号,

使用特权

评论回复
6
邓诚dengcheng|  楼主 | 2010-5-7 19:44 | 只看该作者
调试的时候不能看到PB口输出的变化,一直输出为PORTB=0X31;在运行中C口变化正常,PORTB不能变成0值

使用特权

评论回复
7
dulianling| | 2010-5-8 19:03 | 只看该作者
看下该口有没有其他的功能,是不是上电默认做其他功能用了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝