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

📄 pwm_m.c

📁 此源码是本人买的株洲开发板全套例程
💻 C
字号:
//
//      TMDX ALPHA RELEASE
//      Intended for product evaluation purposes
//
//###########################################################################
//
// FILE:	DSP28_Example.c
//
// TITLE:	DSP28 CPU_Timer example program.
//
//###########################################################################
//
//  Ver | dd mmm yyyy | Who  | Description of changes
// =====|=============|======|===============================================
//  0.55| 06 May 2002 | S.S. | EzDSP Alpha Release
//  0.57| 27 May 2002 | L.H. | No change
//###########################################################################

// Step 0.  Include required header files
         // DSP28_Device.h: device specific definitions #include statements for
         // all of the peripheral .h definition files.
         // DSP28_Example.h is specific for the given example.  

#include "DSP28_Device.h"
#include "ext_inf.h"

void	Moto(Uint16 tag);
interrupt void ISRTimer0(void);
void   SendData(Uint16	data);
Uint16	numms=0;

void main(void)
{
	/*初始化系统*/
	InitSysCtrl();

	/*关中断*/
	DINT;
	IER = 0x0000;
	IFR = 0x0000;
	
	/*初始化PIE控制寄存器*/
	InitPieCtrl();
	
	/*初始化PIE矢量表*/
	InitPieVectTable();	
	/*初始化外设*/
    InitPeripherals();
    
	InitGpio();

	EALLOW;	
	PieVectTable.TINT0 = &ISRTimer0;
	EDIS;   
    
	/*设置CPU*/
	ConfigCpuTimer(&CpuTimer0, 100, 500);	
 	StartCpuTimer0();

    /*开中断*/
	IER |= M_INT1;
	PieCtrl.PIEIER1.bit.INTx7=1;
	

	EINT;   // Enable Global interrupt INTM
	ERTM;	// Enable Global realtime interrupt DBGM

	*LedReg = 0xFF;    // 关 LED
	*Led8Lock = 0x07;  // 灭数码管
	SendData(0xFF);
	
	while(1)
	{
		Moto(0);
	}
}


void Moto(Uint16 tag)
{   
	if (tag)
	{
   		if(numms==10)       //10ms  
   	  	{
			GpioDataRegs.GPBDAT.bit.GPIOB0 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB1 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB2 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB3 = 1;
   	  
	  	}  
		if(numms==20)       //20ms  
	  	{
			GpioDataRegs.GPBDAT.bit.GPIOB0 = 1;
			GpioDataRegs.GPBDAT.bit.GPIOB1 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB2 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB3 = 0;
	  	}
		if(numms==30)       //30ms    
	  	{
			GpioDataRegs.GPBDAT.bit.GPIOB0 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB1 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB2 = 1;
			GpioDataRegs.GPBDAT.bit.GPIOB3 = 0;	  
	  	}
		if(numms==40)       //40ms  
	  	{ 
			GpioDataRegs.GPBDAT.bit.GPIOB0 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB1 = 1;
			GpioDataRegs.GPBDAT.bit.GPIOB2 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB3 = 0;	  
	  	}  
		if(numms>=40)   numms=1;	
	}
	else
	{
   		if(numms==10)       //10ms  
   	  	{
			GpioDataRegs.GPBDAT.bit.GPIOB0 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB1 = 1;
			GpioDataRegs.GPBDAT.bit.GPIOB2 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB3 = 0;
   	  
	  	}  
		if(numms==20)       //20ms  
	  	{
			GpioDataRegs.GPBDAT.bit.GPIOB0 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB1 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB2 = 1;
			GpioDataRegs.GPBDAT.bit.GPIOB3 = 0;
	  	}
		if(numms==30)       //30ms    
	  	{
			GpioDataRegs.GPBDAT.bit.GPIOB0 = 1;
			GpioDataRegs.GPBDAT.bit.GPIOB1 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB2 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB3 = 0;	  
	  	}
		if(numms==40)       //40ms  
	  	{ 
			GpioDataRegs.GPBDAT.bit.GPIOB0 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB1 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB2 = 0;
			GpioDataRegs.GPBDAT.bit.GPIOB3 = 1;	  
	  	}  
		if(numms>=40)   numms=1;		
	}		
	
}

interrupt void ISRTimer0(void)
{
	PieCtrl.PIEACK.bit.ACK1=1;
	numms++;
}

                                                      
void	SendData(Uint16 data)
{
	Uint16	i,Temp;
	Temp = 0x80;
	for	(i=0;i<8;i++)
		{
			if ((data & Temp)==0)	ClrData;
			else	SetData;
			Temp >>= 1;
			ClrClk;
			SetClk;
		}
	*Led8Lock = 0x03;
	*Led8Lock = 0x07;
	SetData;		
}


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

⌨️ 快捷键说明

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