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

📄 led.c

📁 这是一个uC/OS的系统驱动程序
💻 C
字号:
#include <includes.h>

_sn74hc138_status sn74hc138_status[8];

void SetSn74hc138Status(void);        //  74HC138真值表设置
void LedInilize(void);


void TaskLed(void *p_arg)
{
    int j;

    p_arg = p_arg;

    LedInilize();

    while(1)
    {
      //  依次点亮8个LED
      for( j = 0; j < 8; j++)
      {
        if( sn74hc138_status[j].nPfLow  != NONE )  AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, sn74hc138_status[j].nPfLow);
        if( sn74hc138_status[j].nPfHigh != NONE )  AT91F_PIO_SetOutput(AT91C_BASE_PIOA, sn74hc138_status[j].nPfHigh);
        OSTimeDlyHMSM(0, 0, 0, 500);
      }

      OSTimeDlyHMSM(0, 0, 1, 0);
    }
}

void LedInilize()
{
    //  Enable peripheral clock,参见lib_AT91SAM7S64.h
    AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;

    //  设置LED相关引脚(PA28,PA29,PA30)为Output状态
    AT91F_PIO_CfgOutput( AT91C_BASE_PIOA, LED_74HC138_A_PA21|LED_74HC138_B_PA18|LED_74HC138_C_PA17) ;

    //  由74HC138真值表设置相应的电平状态
    SetSn74hc138Status();
}


void SetSn74hc138Status(void)
{
   sn74hc138_status[0].nPfLow  = LED_74HC138_A_PA21|LED_74HC138_B_PA18|LED_74HC138_C_PA17;
   sn74hc138_status[0].nPfHigh = NONE;

   sn74hc138_status[1].nPfLow  = LED_74HC138_B_PA18|LED_74HC138_C_PA17;
   sn74hc138_status[1].nPfHigh = LED_74HC138_A_PA21;

   sn74hc138_status[2].nPfLow  = LED_74HC138_A_PA21|LED_74HC138_C_PA17;
   sn74hc138_status[2].nPfHigh = LED_74HC138_B_PA18;


   sn74hc138_status[3].nPfLow  = LED_74HC138_C_PA17;
   sn74hc138_status[3].nPfHigh = LED_74HC138_A_PA21|LED_74HC138_B_PA18;

   sn74hc138_status[4].nPfLow  = LED_74HC138_A_PA21|LED_74HC138_B_PA18;
   sn74hc138_status[4].nPfHigh = LED_74HC138_C_PA17;

   sn74hc138_status[5].nPfLow  = LED_74HC138_B_PA18;
   sn74hc138_status[5].nPfHigh = LED_74HC138_A_PA21|LED_74HC138_C_PA17;

   sn74hc138_status[6].nPfLow  = LED_74HC138_A_PA21;
   sn74hc138_status[6].nPfHigh = LED_74HC138_B_PA18|LED_74HC138_C_PA17;

   sn74hc138_status[7].nPfLow  = NONE;
   sn74hc138_status[7].nPfHigh = LED_74HC138_A_PA21|LED_74HC138_B_PA18|LED_74HC138_C_PA17;
}

⌨️ 快捷键说明

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