gpio_led.c

来自「开发环境为CCS。DSP12个典型例子源码」· C语言 代码 · 共 117 行

C
117
字号
// TI File $Revision: /main/3 $
// Checkin $Date: July 2, 2007   11:33:22 $
//###########################################################################
//
// FILE:    Example_2812GPIO_LED.c
//
// TITLE:   DSP281x GPIO LED Test.
//
// ASSUMPTIONS:
//
//          This program requires the DSP281x V1.00 header files.  
//          As supplied, this project is configured for "boot to H0" operation.
//
//          To work properly this test requires hardware configuration described
//          below.
//
//          
//###########################################################################
// $TI Release: DSP281x Header Files V1.11 $
// $Release Date: September 26, 2007 $
//###########################################################################


#include "DSP281x_Device.h"     // DSP281x Headerfile Include File
#include "DSP281x_Examples.h"   // DSP281x Examples Include File

// Prototype statements for functions found within this file.
void Gpio_select(void);
void delay_loop(Uint16 loop_time);

void main(void)
{

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

   /*关中断*/
   DINT;
   IER = 0x0000;
   IFR = 0x0000;
   
   /*初始化PIE*/
   InitPieCtrl();

   /*初始化PIE中断矢量表*/
   InitPieVectTable();

   Gpio_select();
   GpioDataRegs.GPACLEAR.all=0xFFFF;
   GpioDataRegs.GPBCLEAR.all=0xFFFF;
   delay_loop(10000);
   while(1)
   {
  	 GpioDataRegs.GPADAT.bit.GPIOA10=1;  //LED1 亮;
  	 delay_loop(10000);
  	 GpioDataRegs.GPADAT.bit.GPIOA10=0;  //LED1 灭;
  	 delay_loop(10000);
  	 GpioDataRegs.GPADAT.bit.GPIOA13=1;  //LED2 亮;
  	 delay_loop(10000);
  	 GpioDataRegs.GPADAT.bit.GPIOA13=0;  //LED2 灭;
  	 delay_loop(10000);
  	 GpioDataRegs.GPBDAT.bit.GPIOB2=1;   //LED3 亮;
     delay_loop(10000);
     GpioDataRegs.GPBDAT.bit.GPIOB2=0;   //LED3 灭;
     delay_loop(10000);
     GpioDataRegs.GPBDAT.bit.GPIOB0=1;   //LED4 亮;
     delay_loop(10000);
     GpioDataRegs.GPBDAT.bit.GPIOB0=0;   //LED4 灭;
     delay_loop(10000);
     GpioDataRegs.GPBDAT.bit.GPIOB1=1;   //LED5 亮;
     delay_loop(10000);
     GpioDataRegs.GPBDAT.bit.GPIOB1=0;   //LED5 灭;
     delay_loop(10000);
     GpioDataRegs.GPBDAT.bit.GPIOB3=1;   //LED6 亮;
     delay_loop(10000);
     GpioDataRegs.GPBDAT.bit.GPIOB3=0;   //LED6 灭;
     delay_loop(10000);
     GpioDataRegs.GPADAT.bit.GPIOA11=1;  //LED7 亮;
     delay_loop(10000);
     GpioDataRegs.GPADAT.bit.GPIOA11=0;  //LED7 灭;
     delay_loop(10000);
     GpioDataRegs.GPADAT.bit.GPIOA9=1;   //LED8 亮;
     delay_loop(10000);
     GpioDataRegs.GPADAT.bit.GPIOA9=0;   //LED8 灭;
     delay_loop(10000);
    } 

}

void Gpio_select(void)
{
	EALLOW; 
	GpioMuxRegs.GPAMUX.all=0x0000;
	GpioMuxRegs.GPBMUX.all=0x0000;
	GpioMuxRegs.GPADIR.all=0xFFFF;
	GpioMuxRegs.GPBDIR.all=0xFFFF;
	GpioMuxRegs.GPAQUAL.all=0X0000;
	GpioMuxRegs.GPBQUAL.all=0X0000;
	EDIS;
}
//**************************************//
// Delay time function: set i[ms]with delay time function
//**************************************//
void delay_loop(Uint16 loop_time)
{
    short i;
    for(i=0;i<loop_time;i++){
    asm(" RPT #100000 ||NOP ");
    }
    
}

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

⌨️ 快捷键说明

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