搜索
bottom↓
回复: 6

我的中断设置有什么问题吗???请高手帮我看看,很简单的!!!

[复制链接]

出0入0汤圆

发表于 2010-5-22 09:41:32 | 显示全部楼层 |阅读模式
#include<io78f9234.h>
#include<intrinsics.h>
#define uchar unsigned char
#define uint unsigned int
#pragma location="OPTBYTE"
__root const uchar optbyte[2]={0x9d,0x00};
#pragma vector=INTTM80_vect
__interrupt void tm80(void)
{
  P0_bit.no0=~P0_bit.no0;//在中断中吧P00端口取反
  TMIF80=0;//清除中断标志
  //CR80=0X7A;//不知道要不要在中断中在给比较寄存器赋值
  }
int main(void)
{
  PM0_bit.no0=0;//设置端口P00为输出
  __enable_interrupt();//打开全局中断
  TMMK80=0;//打开tm80中断,0表示中断允许
  TMC80=0x06;//设置工作在65536分频下
  CR80=0x7a;//设置比较寄存器122,产生中断时刚好是1S钟
  TCE80=1;//打开定期80,开始工作
  while(1)//让程序进入死循环,以免在main()中重复写上面的设置。。。。。
  return 0;
}
  //不知道怎么回事,该设置的我都设置了,编译器也没有提示有语法错误,就是不知道为什么在P00管脚不能产生1S的时钟定时电平取反!!!用的是IAR4.6的编译器!!!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2010-5-22 10:47:34 | 显示全部楼层
#include<io78f9234.h>
#include<intrinsics.h>
#define uchar unsigned char
#define uint unsigned int
#pragma location="OPTBYTE"
__root const uchar optbyte[2]={0x9d,0x00};
#pragma vector=INTTM80_vect
__interrupt void tm80(void)
{
  P0_bit.no0=~P0_bit.no0;//在中断中吧P00端口取反
  TMIF80=0;//清除中断标志
  //CR80=0X7A;//不知道要不要在中断中在给比较寄存器赋值
  }
int main(void)
{
  PCC=0;
  PPCC=0;
  PM0_bit.no0=0;//设置端口P00为输出
  __enable_interrupt();//打开全局中断
  TMMK80=0;//打开tm80中断
  TMC80=0x06;//设置工作在65536分频下
  CR80=0x7a;//设置比较寄存器122,产生中断时刚好是1S钟
  TCE80=1;//打开定期80,开始工作
while(1)//让程序进入死循环,以免在main()中重复写上面的设置。。。。。
  return 0;
}

出0入0汤圆

 楼主| 发表于 2010-5-22 10:57:15 | 显示全部楼层
在程序中加了PCC=0,和PPCC=0的设置竟然成功了,本来以为这两个寄存器启动后就是0的状态,原来不是,NEC难怪在手册上写的复位后的状态特别的多,这里把改好的程序来出来和大家共享。。。。。刚学NEC,是用IAR上手的。这里我也感到奇怪,PCC,和PPCC的设置只是涉及到时钟的分频,没有涉及到时钟的选择。时钟的选择是在可选字节中设置的。我上个程序没有设置PCC和PPCC,它的初始状态是分频16倍,那我设置的1秒延时应该是16S的延时,怎么我没有看到变化????刚学NEC,还有很多不会,希望以后和大家多多交流!!!

出0入0汤圆

 楼主| 发表于 2010-5-27 08:28:21 | 显示全部楼层
上面的程序把看门狗打开了,没有设置喂狗指令,现在更正一下。。。。单片机工作在不停的复位状态。。。。

出0入0汤圆

 楼主| 发表于 2010-5-28 17:19:55 | 显示全部楼层
在程序中加上一条WDTE=0XAC;就可以了,我把以前的程序重新修改下,以免给大家带来误会!!!

出0入0汤圆

发表于 2010-7-25 15:31:45 | 显示全部楼层
如果我不要用看门狗就一定要在初始化的时候关闭看门狗吗?

出0入0汤圆

发表于 2010-7-26 09:50:11 | 显示全部楼层
WDTM复位后值为0x67,只要内部低速振荡器工作,看门狗就工作,所以调试阶段一般建议初始化时关掉看门狗
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-15 20:57

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

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