在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 1931|回复: 0

[求助] 求高手帮我改一下程序 在线等

[复制链接]
发表于 2010-5-6 10:15:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
需要完成的功能:
//设置电机控制p2.5口为PWR信号输出,p2.6口为方向控制输出,p2.7口为驱动器使能端
//程序设置为开机送进脉冲信号驱动步进电机主动,延时,步进电机完成方向转换,循环测试。



#include"includes.h"
void main()                          //实际测试流程
{
   WDTCTL = WDTPW + WDTHOLD;          //停止看门狗WDT,不使用内部看门狗定时器。
  P2DIR |= 0x70;                     //设置P2.5口p2.6口p2.7口方向为输出。
  CCTL0 = CCIE;                      //设置捕获/比较控制寄存器中CCIE位为1,CCR0捕获/比较功能中断为允许。
  CCR0 = 50000;                      //捕获/比较控制寄存器CCR0初值为5000。
  TACTL = TASSEL_2 + MC_2;           //设置定时器A控制寄存器TACTL,使时钟源选择为SMCLK辅助时钟。
  _BIS_SR(LPM0_bits + GIE);          //进入低功耗模式LPM0和开中断
   
   for(;;)
       {
         __interrupt void ENA();
         __interrupt void Timer_A (); //输入连续脉冲信号 驱动步进电机
        int i=50000;                  //软件延时
         do(i--);
         while(i!=0);   
         __interrupt void change_direction(); // 步进电机转动方向改变
//      P2IFG=0;                              //清中断
       }
}
//定时器A 中断服务程序区
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
   P2OUT ^= 0x10;                    //P2.5口取反输出
   CCR0 += 50000;                    //重新载入CCR0捕获/比较数据寄存器数据
}
__interrupt void change_direction(void)
{
   P2OUT^=0x30;                      //P2.6口取反输出 完成方向转换
   CCR0 +=50000;              //重新载入CCR0捕获/比较数据寄存器数据
}
__interrupt void ENA(void)
{
   P2OUT=0x40;                       //P2.7口输出高电平使能         
   CCR0 +=50000;
}
//结束--------------------------------------------------------------------------
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-22 00:07 , Processed in 0.024741 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表