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

📄 ads8364.c

📁 这是一个成熟的用于驱动步进马达的程序,我们用于调试螺钉的.
💻 C
字号:
#include <reg52.h>
#include <intrins.h>
#include "TypeDefines.h"
#include "delay.h"
#include "ADS8364.h"



void clock(uchar num)
{
    uchar i;
    for(i=0;i<num;i++)
    {
        CLK=0;_nop_();
        CLK=1;_nop_();
    }
}


void ADS8364_read(uchar ad_num,uchar num)
{
    uchar i,j,tmp8;
    uint tmp16=0;
    ulong tmp32[4]={0};
	P1=0xff;
    for(j=0;j<num;j++)
    {
        ADS8364_init();
        ADS8364_start();
        clock(19);
	 
		if(ad_num==1)
		{
        	AD1_CS_LOW;
		}
		else
		{
			AD2_CS_LOW;
		}
	  
		for(i=0;i<2;i++)
		{
			RD_AD=0; _nop_();
			RD_AD=1; _nop_();
			RD_AD=0; _nop_();
			RD_AD=1; _nop_();
			RD_AD=0; _nop_();
			RD_AD=1; _nop_();	
		}
        for(i=0;i<4;i++)
        {
            RD_AD=0; _nop_();
            tmp8=P1; _nop_();
            RD_AD=1; _nop_();
            RD_AD=0; _nop_();
            tmp8=P1; _nop_();
            RD_AD=1; _nop_();
            RD_AD=0; _nop_();
            tmp16=(uint)P1;
            RD_AD=1;_nop_();
            tmp16<<=8;
            tmp16+=tmp8;
            if(tmp16>=0x8000)
            {
                tmp16&=0x7FFF;
            }
            else
            {
                tmp16|=0x8000;
            }
            tmp32[i]+=tmp16;
        }
        AD1_CS_UP;

    }
    for(i=0;i<4;i++)
    {
        tmp32[i]<<=7;
		if(ad_num==1)
		{
        	Data1[i]=(uint)(tmp32[i]/para1[i]);
			Data1[i]-=origin1[i];
		}
		else
		{
			Data2[i]=(uint)(tmp32[i]/para2[i]);
			Data2[i]-=origin2[i];
		}
    }
}


void ADS8364_start()
{
    CLK=0;	_nop_();
    HOLD=0;	_nop_();
    CLK=1;	_nop_();
    HOLD=1; _nop_();                                
}

void ADS8364_init()
{
    AD1_CS_UP;	  _nop_();
    RD_AD=1; _nop_();
    CLK=1;	  _nop_();
    HOLD=1;  _nop_();
    RESET=1; _nop_();
    _nop_();  _nop_();
    RESET=0; _nop_();
    _nop_(); _nop_();
    RESET=1;  _nop_();    
}

⌨️ 快捷键说明

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