hal_gpio.c

来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C语言 代码 · 共 58 行

C
58
字号
//-----------------------------------------------------------------------------
// HAL_GPIO
//-----------------------------------------------------------------------------

#include "hal_gpio.h"

//-----------------------------------------------------------------------------
void GPIO_Init (u8 dir)
{
  GPIO->DIR = dir; //1=input, 0=output
  CONFR->GLOBAL_CONTROL |= 0x1;
  LEDs(~ALL_LEDs);
}

//-----------------------------------------------------------------------------
void LEDs (u8 value)
{
  if (ValBit(value,0))
    ClrBit(GPIO->DOUT0,0);
  else
    SetBit(GPIO->DOUT0,0);

  if (ValBit(value,1))
    ClrBit(GPIO->DOUT1,0);
  else
    SetBit(GPIO->DOUT1,0);

  if (ValBit(value,2))
    ClrBit(GPIO->DOUT2,0);
  else
    SetBit(GPIO->DOUT2,0);

  if (ValBit(value,3))
    ClrBit(GPIO->DOUT3,0);
  else
    SetBit(GPIO->DOUT3,0);

  if (ValBit(value,4))
    ClrBit(GPIO->DOUT4,0);
  else
    SetBit(GPIO->DOUT4,0);

  if (ValBit(value,5))
    ClrBit(GPIO->DOUT5,0);
  else
    SetBit(GPIO->DOUT5,0);
}

//-----------------------------------------------------------------------------
void LEDs_Toggle (u8 mask)
{
  u8 nto_change = GPIO->DIN & (~mask); //not to change
  u8 to_change = mask & (~(GPIO->DIN & (mask))); //to toggle
  LEDs (~(nto_change |to_change));
}

//-----------------------------------------------------------------------------

⌨️ 快捷键说明

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