void SystemObj::PortInit(void) { SYSCON->SCS = 0;//设置普通GPIO模式 PINSEL->PIN_SEL0 = 0x00000000; // 设置管脚连接GPIO PINSEL->PIN_SEL1 = 0x00000000; // 设置管脚连接GPIO P0->IODIR = 0x00000000; // 设置P0口为输入 FP0->FIODIR = 0x00000000; // 设置FP0口为输入 FP0->FIOMASK = 0xffffffff; //屏蔽快速IO. }
void SystemObj::HC164init(void) { SYSCON->SCS |= (1 << GPIOM);//设置快速FGPIO模式 LEDFPORT->FIODIR |= (1 << HC164DATA) | (1 << HC164CLK);//设置快速IO为输出方式 LEDFPORT->FIOMASK &= ~((1 << HC164DATA) | (1 << HC164CLK));//允许快速IO. }
void SystemObj::HC164Write(unsigned char cData) { unsigned int i; for (i = 0; i < 8; i ++) { LEDFPORT->FIOCLR = (1 << HC164CLK);//时钟拉低。快速IO if (cData & 0x80) {//MSB最高位为1时 LEDFPORT->FIOSET = (1 << HC164DATA);//数据为高。快速IO } else { LEDFPORT->FIOCLR = (1 << HC164DATA);//数据为低。快速IO } cData <<= 1; LEDFPORT->FIOSET = (1 << HC164CLK);//时钟拉高。快速IO } } |
文章评论(0条评论)
登录后参与讨论