#include "ac78xx.h"
#include "ac78xx_gpio.h"
/* makesure n < 16 */
#define PAout(n) BIT_ADDR(GPIOA_ODR_ADDR, n)
#define PAin(n) BIT_ADDR(GPIOA_IDR_ADDR, n)
#define PBout(n) BIT_ADDR(GPIOB_ODR_ADDR, n)
#define PBin(n) BIT_ADDR(GPIOB_IDR_ADDR, n)
#define PCout(n) BIT_ADDR(GPIOC_ODR_ADDR, n)
#define PCin(n) BIT_ADDR(GPIOC_IDR_ADDR, n)
#define PDout(n) BIT_ADDR(GPIOD_ODR_ADDR, n)
#define PDin(n) BIT_ADDR(GPIOD_IDR_ADDR, n)
#define PEout(n) BIT_ADDR(GPIOE_ODR_ADDR, n)
#define PEin(n) BIT_ADDR(GPIOE_IDR_ADDR, n)
/**
* port_Init
*
* @param[in] none
* [url=home.php?mod=space&uid=266161]@return[/url] 0
*
* [url=home.php?mod=space&uid=247401]@brief[/url] init all port
*/
void port_Init(void)
{
GPIO_SetDir(GPIO_PA0, 1);
PAout(0) = 1;
GPIO_SetDir(GPIO_PA1, 1);
GPIO_SetDir(GPIO_PA2, 1);
GPIO_SetDir(GPIO_PA3, 1);
GPIO_SetDir(GPIO_PA4, 1);
GPIO_SetDir(GPIO_PA5, 1);
GPIO_SetDir(GPIO_PA6, 1);
GPIO_SetDir(GPIO_PA7, 1);
GPIO_SetDir(GPIO_PA8, 1);
GPIO_SetDir(GPIO_PA9, 1);
GPIO_SetDir(GPIO_PA10, 1);
GPIO_SetDir(GPIO_PA11, 1);
GPIO_SetDir(GPIO_PA12, 1);
GPIO_SetDir(GPIO_PA13, 1);
GPIO_SetDir(GPIO_PA14, 1);
GPIO_SetDir(GPIO_PA15, 1);
GPIO_SetDir(GPIO_PB0, 1);
GPIO_SetDir(GPIO_PB1, 1);
GPIO_SetDir(GPIO_PB2, 1);
PBout(2) = 1;
GPIO_SetDir(GPIO_PB3, 1);
GPIO_SetDir(GPIO_PB4, 1);
GPIO_SetDir(GPIO_PB5, 1);
GPIO_SetDir(GPIO_PB6, 1);
GPIO_SetDir(GPIO_PB7, 1);
GPIO_SetDir(GPIO_PB8, 1);
GPIO_SetDir(GPIO_PB9, 1);
GPIO_SetDir(GPIO_PB10, 1);
GPIO_SetDir(GPIO_PB11, 1);
GPIO_SetDir(GPIO_PB12, 1);
GPIO_SetDir(GPIO_PB13, 1);
GPIO_SetDir(GPIO_PB14, 1);
GPIO_SetDir(GPIO_PB15, 1);
GPIO_SetDir(GPIO_PC0, 1);
GPIO_SetDir(GPIO_PC1, 1);
GPIO_SetDir(GPIO_PC2, 1);
GPIO_SetDir(GPIO_PC3, 1);
GPIO_SetDir(GPIO_PC4, 1);
GPIO_SetDir(GPIO_PC5, 1);
GPIO_SetDir(GPIO_PC6, 1);
GPIO_SetDir(GPIO_PC7, 1);
PCout(7) = 0;
GPIO_SetDir(GPIO_PC8, 1);
GPIO_SetDir(GPIO_PC9, 1);
PCout(9) = 1;
GPIO_SetDir(GPIO_PC10, 1);
GPIO_SetDir(GPIO_PC11, 1);
GPIO_SetDir(GPIO_PC12, 1);
GPIO_SetDir(GPIO_PC13, 1);
GPIO_SetDir(GPIO_PC14, 1);
GPIO_SetDir(GPIO_PC15, 1);
GPIO_SetDir(GPIO_PD0, 1);
GPIO_SetDir(GPIO_PD1, 1);
PDout(1) = 1;
GPIO_SetDir(GPIO_PD2, 1);
PDout(2) = 1;
}
int main(void)
{
InitDelay();
mdelay(10000);
WriteBitsValue(0x40008000, 4, 1, 0);
port_Init();
SysStop();
while(1);
}
整个代码改完后如上。再次测试,电流降到8uA。