⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stemp_motor.c

📁 一些基于TMS320 LF2407 DSP的实验程序
💻 C
字号:
/*******************************************************************/
#include "exp1_2407.h"
#define PHASE0 0x000A;
#define PHASE1 0x0006;
#define PHASE2 0x0005;
#define PHASE3 0x0009;
/*******************************************************************/
ioport unsigned port8001;       //定义输出io端口地址为8001h

void delay_f()                  //相延时子程序
{
     unsigned int i;
     for(i=1;i<1000;i++);          //修改i的值,可以改变电机旋转的速度(大于800)
     //for(i=1;i<8000;i++);
}

void delay_s()                  //步延时子程序
{
     unsigned int j;
     for(j=1;j<3000;j++);
     //for(j=1;j<10000;j++);
}                          

void sysini()                   //系统初始化子程序
{
     asm(" setc INTM");         //禁止所有中断
     asm(" setc SXM");          //抑制符号位扩展
     asm(" clrc OVM");          //累加器中结果正常溢出
     * SCSR1=0x81FE;            //配置时钟锁相为4倍频CLKOUT=4*7.3728=29.4912M
     * WDCR=0x0E8;              //禁止看门狗
     * IFR=0xFFFF;              //清除所有中断标志,"写1清0"
}

void nothing()                  //空中断子程序
{
     asm(" clrc INTM");         //开总中断
}

void main()
{    unsigned int j;
     sysini();                  
     for(;;)
     {
         for(j=0;j<60;j++)      //正向旋转
         {
            delay_s();
            port8001=PHASE0;
            delay_f();
            port8001=PHASE1;
            delay_f();
            port8001=PHASE2;
            delay_f();
            port8001=PHASE3;
            delay_f();
         }
         for(j=0;j<60;j++)      //反相旋转
         {
            delay_s();
            port8001=PHASE2;    
            delay_f();
            port8001=PHASE1;
            delay_f();
            port8001=PHASE0;
            delay_f();
            port8001=PHASE3;
            delay_f();
         }
     }
}  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -