搜索
bottom↓
回复: 7

请教马老师

[复制链接]

出0入0汤圆

发表于 2010-11-11 08:28:05 | 显示全部楼层 |阅读模式
马老师,您好,我写了一如下程序,目的是想用定时计数器做定时让PORTA.0引脚每隔1秒钟改变一次电平,但是单片机实际运行时好像大概是每隔8秒钟PORTA.0引脚才改变一次电平,想了很久,找不出原因,如果马老师您哪个时候有空能不能帮忙看一下是什么原因或是可能哪里我忽视了什么才导致这样,我用的芯片是Mega16,使用外部8M晶振,程序是用CVAVR写的。

#include <mega16.h>

unsigned int count;

void main(void)
{

    /////定时计数器T/C0的CTC工作模式//////////////
    OCR0=249;
    TCNT0=0x00;
    TCCR0=0x0C;//CTC模式,OC0与引脚不连接,系统时钟256分频


    TIFR=0x02;  //清零比较匹配中断标志位
    TIMSK=0x02; //使能比较匹配中断

    //使能全局中断
    #asm("sei")
    //////////////////////////////////////////////
   
   
    DDRA.0=1;
    PORTA.0=1;
    count=0;
    while (1)
    {
        if(count>=125)
        {
            PORTA.0=~PORTA.0;
            count=0;
        }

    }
}


interrupt [TIM0_COMP] void timer0_comp_isr(void)
{
    count++;
}


以下是我用的熔丝设置:

(原文件名:ATmega16熔丝配置.jpg)

出0入96汤圆

发表于 2010-11-11 08:45:00 | 显示全部楼层
应该有个CKDIV8的熔丝位的,8分频的,你好好找找!是不是CKOPT分频设置,

出0入0汤圆

 楼主| 发表于 2010-11-11 12:33:01 | 显示全部楼层
回复【1楼】gallle
-----------------------------------------------------------------------
你好,下载程序的时候我是用progisp这个软件的(智峰软件,本版1.68),当选中芯片后,它能设置的熔丝位只有我发的图上的那些,那图就是我截屏截下来的,我没有找到你说的CKDIV8熔丝位,其中的CKOPT好像是让时钟振幅加大,可以提高抗干扰能力,对频率没有影响。

出0入0汤圆

发表于 2010-11-11 14:19:02 | 显示全部楼层

(原文件名:QQ截图.jpg)

我的双龙的,把第一个点掉就可以了(CKDIV8)

出0入0汤圆

发表于 2010-11-11 17:14:19 | 显示全部楼层
1。你设计的程序,系统时钟是多少?熔丝位应该如何配置?

2。你实际设置的熔丝位配置对么?

3。应该多看你所使用的芯片的工具的帮助,对照起来。

4。m16好象没有CKDIV8的熔丝位。如果你按8M计算编写的代码,但系统只是工作在1M,也是慢8倍。

5。最后建议买偶的教程,认真、仔细、塌实从基础学起。你上面的程序,就是系统时钟非常正确,也做不到非常“精确”的一秒系列脉冲,做时钟的话肯定慢。发导_弹或卫星火箭,肯定偏离轨道的。

出0入0汤圆

 楼主| 发表于 2010-11-11 18:20:31 | 显示全部楼层
马老师,您好,在帖子里我已经说了使用外部8M晶振,按照我的理解,以上熔丝位的设置应该是使用了外部晶振。我设置熔丝位的时候,就是看了您编写的书按照我自己的理解最后决定按我发的图那样设置的,或许我的理解有错。progisp这个软件在熔丝配置的时候有“向导方式”,我按上图设置完后,打开“向导方式”查看,看它对应的勾选项后觉得设置应该是对的。确实在您编写的书里面,我也没有发现您提到m16有CKDIV8这么一个熔丝位的。我写上述程序,只是想确认一下定时计数器的基本操作方法我理解对了没有。为日后运用它打基础。
好的,谢谢马老师及以上各位朋友的回复,如果熔丝设置有错或哪里不对、不合理的,麻烦指正,谢谢。

出0入0汤圆

发表于 2010-11-11 19:58:06 | 显示全部楼层
楼主是用什么方法测得每隔8秒钟PORTA.0引脚才改变一次电平的?

出0入0汤圆

 楼主| 发表于 2010-11-12 00:15:23 | 显示全部楼层
回复【6楼】zhhf129
-----------------------------------------------------------------------

你好,因为我本意是想让它1秒改变一次,可实际运行时已经很明显不是一秒钟,所以我就用秒表大概估测了几次得到是8秒左右。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 20:56

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表