📄 main.c
字号:
//智能轮椅电机模拟信号输入程序,TLV5618AI驱动
//参考电压Vref=2.5V由MC1403PI提供
//输出模拟电压=2*Vref*(DigitalNum/0x1000)
#include "SPCE061A.h"
#include "IObit.h"
#define uint unsigned int
#define uchar unsigned char
#define DIN1 IOB15
#define SCLK1 IOB14
#define CS1 IOB13
#define DIN2 IOB12
#define SCLK2 IOB11
#define CS2 IOB10
void delayms(uint msNum)
{
uint i,j;
for (j=0;j<msNum;j++)
{
for (i=0;i<78;i++) //35 cycles
{
asm("nop"); //4 cycles
}
*P_Watchdog_Clear=0x01;
}
}
void DA_init(void) //DA initial function
{
*P_IOB_Dir=0xffff;
*P_IOB_Attrib=0xffff;
}
void DA_AB(uint DigitalNum) //DA convert function,DigitalNum后四位为0x0000~0x0fff,D0~D15均由DIN(IOB15)传送
{
uint n;
uint TopBit;
SCLK1=1;
CS1=0; //starting DA convert
for (n=0;n<=15;n++)
{
TopBit=DigitalNum&0x8000;
if (TopBit==0)
DIN1=0;
else
DIN1=1; //取DigitalNum最高位进行传输
SCLK1=0;
SCLK1=1;
DigitalNum<<=1;
}
SCLK1=1;
CS1=1;
}
void DA_LR(uint DigitalNum) //DA convert function,DigitalNum后四位为0x0000~0x0fff,D0~D15均由DIN(IOB15)传送
{
uint n;
uint TopBit;
SCLK2=1;
CS2=0; //starting DA convert
for (n=0;n<=15;n++)
{
TopBit=DigitalNum&0x8000;
if (TopBit==0)
DIN2=0;
else
DIN2=1; //取DigitalNum最高位进行传输
SCLK2=0;
SCLK2=1;
DigitalNum<<=1;
}
SCLK2=1;
CS2=1;
}
void motor_init(void)
{
DA_AB(0x8000);//DAC1 A
DA_AB(0x0000);//DAC1 B
DA_LR(0x8000);//DAC2 A
DA_LR(0x0000);//DAC2 B
DA_AB(0x8800); //四路DA转换模拟输出均设置为2.5V
DA_AB(0x0800);
DA_LR(0x8800);
DA_LR(0x0800);
delayms(3000);
}
void ahead(void)
{
DA_AB(0x8000+0x0a00);
DA_AB(0x0000+0x0fff-0x0a00);
DA_LR(0x8800);
DA_LR(0x0800);
}
void back(void)
{
DA_AB(0x8000+0x0fff-0x0a00);
DA_AB(0x0000+0x0a00);
DA_LR(0x8800);
DA_LR(0x0800);
}
void stop(void)
{
DA_AB(0x8800);
DA_AB(0x0800);
DA_LR(0x8800);
DA_LR(0x0800);
}
void left(void)
{
DA_AB(0x8800);
DA_AB(0x0800);
DA_LR(0x8000+0x0a00);
DA_LR(0x0000+0x0fff-0x0a00);
}
void right(void)
{
DA_AB(0x8800);
DA_AB(0x0800);
DA_LR(0x8000+0x0fff-0x0a00);
DA_LR(0x0000+0x0a00);
}
int main()
{
uint SPIData;
DA_init();
motor_init();
ahead();
delayms(3000);
back();
delayms(3000);
left();
delayms(3000);
stop();
while (1)
{
*P_Watchdog_Clear=0x01;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -