📄 gpio.c
字号:
#include "config.h"
uint32 u;
void delay2us(void)
{
uint16 i=9;
while(i--);
}
void delay1us(void)
{
uint16 i=5;
while(i--);
}
void mDelay100mS(void )
{
uint16 i=5000;
while(i--)
delay2us();
}
void gpio_init(void)
{
SCS = 0;
PINSEL0 = 0x00000000;
PINSEL1 = 0x00000000;
PINSEL2 = 0x00000004;
IODIR0 = (1<<25) | (1<<28) | (1<<29) | (0x80000000) ; //cs rd wr a0 set to out
IOSET0 = 1<<28 | 1<<29;
}
void xWriteCH375Cmd( uint8 mCmd )
{
//uint32 i=1;
IODIR0 = (1<<25) | (1<<28) | (1<<29) | (0x80000000) | 0x00ff0000;
delay2us();
IOPIN0 = (IOPIN0 & (~(1<<25 | 0x80000000))) | 0x80000000;
IOPIN0 = (IOPIN0 & (~(1<<28 | 0x80000000))) | 0x80000000; //WR置0
IOPIN0 = (IOPIN0 & 0x7f00ffff) | ((uint32)mCmd<<16) | 0x80000000; //写XD0~7
IOPIN0 = IOPIN0 | (1<<28) | 0x80000000; //WR置1
IOSET0 = 1<<25;
delay2us();
}
void xWriteCH375Data( uint8 mData )
{
//uint32 i=1;
IODIR0 = (1<<25) | (1<<28) | (1<<29) | (0x80000000) | 0x00ff0000;
IOCLR0 = 0x80000000 | 1<<25; //A0置0,CS置0
IOPIN0 = IOPIN0 & (~(1<<28)); //WR置0
IOPIN0 = (IOPIN0 & 0xff00ffff) | ((uint32)mData<<16); //写XD0~7
IOPIN0 = IOPIN0 | (1<<28); //WR置1
IOSET0 = 1<<25;
delay1us();
}
uint8 xReadCH375Data( void )
{
uint8 xd;
IODIR0 =( (1<<25) | (1<<28) | (1<<29) | (0x80000000) ) & 0xff00ffff;
IOCLR0 = 0x80000000 | 1<<25; //A0置0,CS置0
IOPIN0 = IOPIN0 & (~(1<<29)); //RD置0
IOPIN0 = IOPIN0 | (1<<29); //RD置1
xd = (IOPIN0 & 0x00ff0000)>>16; //读取XD0~7
IOSET0 = 1<<25;
delay1us();
return xd;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -