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

📄 sci_test.c

📁 DSP串口程序例程
💻 C
字号:
#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"

unsigned int Sci_VarRx[100];
unsigned int i,j;
unsigned int Send_Flag;
int iiii;

void delay_loop1(void);
void delay_loop2(void);
void delay_loop3(void);
void Gpio_select(void);

unsigned int var0 = 0;
unsigned int var1 = 0;
unsigned int var2 = 0;
unsigned int var3 = 0;
unsigned int var4 = 0;
unsigned int var5 = 0;
float T1CNT_COUNT[3]=0;
float V_sec=0;
int COUNT=0;

void main(void)
{

	/*初始化系统*/
	InitSysCtrl();

	/*关中断*/
	DINT;
	IER = 0x0000;
	IFR = 0x0000;

	/*初始化PIE中断*/
	InitPieCtrl();

	/*初始化PIE中断矢量表*/
	InitPieVectTable();	
	
	/*初始化EV*/
	InitEv();
	
	/*初始化SCIA寄存器*/
    InitSci();
    for(i = 0; i < 100; i++)
    {
    	Sci_VarRx[i] = 0;
    }
    i = 0;
    j = 0;
    Send_Flag = 1;
    
    #if SCIA_INT
	/*设置中断服务程序入口地址*/
	EALLOW;	// This is needed to write to EALLOW protected registers
	PieVectTable.TXBINT = &SCITXINTB_ISR;
	PieVectTable.RXBINT = &SCIRXINTB_ISR;
	EDIS;   // This is needed to disable write to EALLOW protected registers

	/*开中断*/
	IER |= M_INT9;
	#endif
	EINT;   // Enable Global interrupt INTM
	ERTM;	// Enable Global realtime interrupt DBGM

	for(;;)
	{
		COUNT++;
		T1CNT_COUNT[1]=EvaRegs.T1CNT;
    	delay_loop2();
		T1CNT_COUNT[2]=EvaRegs.T1CNT;
		if (T1CNT_COUNT[2]<T1CNT_COUNT[1])
		{
			T1CNT_COUNT[2]=T1CNT_COUNT[1]+0xFFFF;
		}
		//V_sec=(T1CNT_COUNT[2]-T1CNT_COUNT[1])/0.0016/4/500;
		delay_loop3();
		V_sec=0xFF;

		
		if((ScibTx_Ready() == 1) && (Send_Flag == 1))
		{
			iiii++;
			ScibRegs.SCITXBUF = V_sec;
			Send_Flag = 1;
			//i++;
			//if(i == j)
			//{
			//	i = 0;
			//	j = 0;
			//}
		}
		#if !SCIA_INT
		if(ScibRx_Ready() == 1)
		{
			Sci_VarRx[0] = ScibRegs.SCIRXBUF.all;
			Send_Flag = 1;
			//j++;
			//if(j == 100)
			//{
			//	j = 0;
			//}

		}

		#endif

	}

} 	
void delay_loop1()  //delay 1000 times is 0.08ms
{
    short      i;
    for (i = 0; i < 30000; i++) {}
}
void delay_loop2()  
{
    short      i;
    for (i = 0; i < 20000; i++) {}
}
void delay_loop3()  //测转速间隔时间
{
    long      i;
    for (i = 0; i < 2000000; i++) {}
}

//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

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