打印
[AVR单片机]

atmega64a的pc1口不可控

[复制链接]
1808|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cxy19830603|  楼主 | 2013-3-19 18:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
只控制PC1口,程序如下:
#define DIN_1()      PORTC |=  (1<<PC1)   
#define DIN_0()      PORTC &= ~(1<<PC1)
void Delay(uchar c)   //Ms级延时函数,参数i:延时时间
   {
    unsigned char a,b;
        for (a = 0; a < c; a++)
        for (b = 0; b < c; b++);   
   }
void  main(void)
{
while(1)
  {
   DIN_0();
   Delay(5);
   DIN_1();
   Delay(5);
  }
}不管延时多长时间,DIN都输出低电平,将DIN_1();和DIN_0();掉换位置,又始终输出高电平,实在不知道问题出在哪?求高手帮忙,谢谢

相关下载

相关帖子

沙发
cxy19830603|  楼主 | 2013-3-19 18:16 | 只看该作者
#define DIN_1()      PORTC |=  (1<<PC1)   
#define DIN_0()      PORTC &= ~(1<PC1)

使用特权

评论回复
板凳
cyanitefire| | 2013-3-19 20:34 | 只看该作者
怎么没有看到端口方向设置的语句?DDRC=0xFF;或DDRC|=(1<<PC1);

使用特权

评论回复
地板
qin552011373| | 2013-3-20 00:20 | 只看该作者
缺少端口设置

使用特权

评论回复
5
cxy19830603|  楼主 | 2013-3-20 08:01 | 只看该作者
端口方向设置是
DDRC=0xFF;
PORTC=0xFF;

使用特权

评论回复
6
yklstudent| | 2013-3-20 09:01 | 只看该作者
不知道单片机是否工作了没?应该先确认这个 配置位啥的也有 看门狗啊

使用特权

评论回复
7
qin552011373| | 2013-3-21 22:02 | 只看该作者
感觉你的延时函数是有问题的   你仔细算算你那是延时多久   我感觉在us级

使用特权

评论回复
8
cxy19830603|  楼主 | 2013-3-28 08:24 | 只看该作者
问题找到了,是因为用的内部1兆的晶振,内部晶振精度低,不稳定造成的,换成外部晶振就好了。但原始问题还是没解决,不知道这个MCU在刚开始时除了熔丝位还要做什么设置?

使用特权

评论回复
9
qin552011373| | 2013-3-28 21:51 | 只看该作者
初始化

使用特权

评论回复
10
yhhsky| | 2013-3-30 18:46 | 只看该作者

使用特权

评论回复
11
wentao0100| | 2013-4-3 13:22 | 只看该作者
void Delay(uchar c)   //Ms级延时函数,参数i:延时时间
   {
    unsigned char a,b;
        for (a = 0; a < c; a++)
      {
        for (b = 0; b < c; b++);   
       }
   }
这个函数的定时时间绝对不是MS级的,如果你用uchar类型,能延时的时间更少

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
qin552011373 + 6 很给力!
12
cxy19830603|  楼主 | 2013-4-10 18:27 | 只看该作者
谢谢大家,记得avr的单片机熔丝位设置好之后,一定要下载到单片机中!

使用特权

评论回复
13
qin552011373| | 2013-4-10 22:27 | 只看该作者
cxy19830603 发表于 2013-4-10 18:27
谢谢大家,记得avr的单片机熔丝位设置好之后,一定要下载到单片机中!

说的有点不专业哈  是烧写

使用特权

评论回复
14
tanmilaoshu| | 2013-4-11 14:44 | 只看该作者
你这没有端口设置语句啊……

使用特权

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

本版积分规则

2

主题

11

帖子

0

粉丝