搜索
bottom↓
回复: 1

430学习时遇到两个不懂的地方。恳求前辈们解答。

[复制链接]

出0入0汤圆

发表于 2010-12-4 09:40:23 | 显示全部楼层 |阅读模式
各位前辈,我最近新学的的430,看用户指南时范县有两个地方搞不明白,恳求前辈们解答。谢谢.

一、定时器A的四个时钟输入源中,TACLK和INCLK是什么?查了数据手册,看到好像都是外部时钟信号输入,是吗?那这两个有什么区别啊?

二、在做定时器定时中断时,发现一个小问题,好久没闹明白。不知道是不是哪里没设置好。希望能得到前辈们的解答。

    当使用TACTL   |=TASSEL_1+MC_1+ID_1;  发现仿真时中断是连续的,LED亮灭循环,但是
    当使用TACTL   |=TASSEL_2+MC_1+ID_1;  发现仿真时全速运行中断是只有一次,LED只工作一次,即每次全速运行 后P 1.4 亮暗相反.
    我的目标板是 F149的,IAR 是 4.20 版本。
#include "io430.h"
#include "in430.h"
int main( void )
{
  unsigned char i;
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  
  
  BCSCTL1 &=~XT2OFF;//使用XT2
  BCSCTL1 |=DIVA_3; //8分频
  do
  {
    IFG1 &=~OFIFG;
    for(i=0XFF;i>0;i--);//delay;
  }
  while(IFG1 & OFIFG);

  BCSCTL2 |=SELM_2+SELS;
  for(i=0XFF;i>0;i--);//delay;
  
  TACCR0   =0X0424;//top val
  /**************问题*********************/
  TACTL   |=TASSEL_2+MC_1+ID_1; // 与  TACTL  |=TASSEL_1+MC_1+ID_1;现象不一致
  
  TACCTL0 |=CCIE;
  P1DIR =BIT4;//led
  P1OUT =BIT4;
  _EINT(); //  GIE 打开
  //LPM3; //TACTL   |=TASSEL_2+MC_1+ID_1;时不可用LPM3模式
  
}

#pragma vector=TIMERA0_VECTOR
__interrupt void timer_a(void)
{
   P1OUT ^=BIT4;
}

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-12-5 22:33:49 | 显示全部楼层
终于解决了。要在中断里加一个计数器就正常了。可能是频率被分得过低。没发2在有限时间内看到效果。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-28 15:19

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

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