io_output_8led.c

来自「利用DSP I/O口点亮8个LED的程序」· C语言 代码 · 共 72 行

C
72
字号
//测试功能:TMS320LF2407 EVM上LED DS1、DS2依次亮灭(间隔1秒)

#include  "ioreg.h"

unsigned int wait_ms( volatile unsigned int delay_val );

initial()
{
     asm(" setc SXM");
     asm(" clrc OVM");
     asm(" clrc CNF");
     asm(" setc INTM");
     SCSR1=0x81FE;
     WDCR=0x00E8;
     
     IMR=0x0000;
     IFR=0xFFFF;
     MCRB=MCRB&0xFF00;     
     PCDATDIR=PCDATDIR|0x0FF00;
     PCDATDIR=PCDATDIR&0x0FF00;
 
}

main()
{
     int led;
     int i;
     initial();
     while(1)
     {
     	for(led=0x0001,i=0;i<2;led=led<<1,i++)
     	{
     	    PCDATDIR=PCDATDIR&0x0FF00;
     	    PCDATDIR=PCDATDIR|led;
   
     	    wait_ms(1000);            
     	    
     	}
     }
}



/* #define MS_TIME_LOOP  */
#define MS_TIME_LOOP   0x500

unsigned int wait_ms( volatile unsigned int delay_val )
{
    unsigned int i;
/*    unsigned int ms_ctr;  */
    int ms_ctr;
    
    for ( i = 0; i < delay_val; i++ )
    {
	   ms_ctr = MS_TIME_LOOP;

	   while ( ms_ctr )
	   {
	         ms_ctr--;
	   }
    }

    return( delay_val );
}



void interrupt nothing()
{
	return;
}
    

⌨️ 快捷键说明

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