打印
[Cortex-M0技术交流]

[2012助学第一期]hzy41y学习笔记之四(PGIO置位的一点改进)

[复制链接]
1678|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hzy41y|  楼主 | 2012-6-17 21:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在编(用HC595和LS164驱动7位数码管)程序时要将1字节的数据转成串行从1个PGIO输出时用DrvGPIO_ClrBit(E_GPA,2)和DrvGPIO_SetBit(E_GPA,2)库函数置位,觉不够直观现改成以下,请各们高手拍砖......


//基于NUC120学习套件 PGIO置位的一点改进
//作者:hzy41y
//最后更新日期2012年06月17日21:35
#include <stdio.h>
#include "NUC1xx.h"
#include "DrvGPIO.h"
#include "DrvSYS.h"
#include "hzy.h"


#define LED_clr DrvGPIO_ClrBit(E_GPA,2)
#define LED_set DrvGPIO_SetBit(E_GPA,2)
#define LED PA->pin2 //改进处



int main (void)
{ static uint8_t bssgs,i;
UNLOCKREG(); // 芯片注册解锁
SYSCLK->PWRCON.XTL12M_EN = 1; // 设定12M外部晶振
DrvSYS_Delay(5000); // 等待时钟就绪
DrvGPIO_Open( E_GPA, 2, E_IO_OUTPUT );

LED_clr;
LED_set;
LED=0; //改进后
LED=1;
while(1)
{ //------用以下方式不够精简--------------
bssgs=0xaa;
for(i=0;i<7;i++)
{ if(bssgs>>7)LED_set;
else LED_clr;
bssgs<<=1;
}
//-------改进后------------
bssgs=0xaa;
for(i=0;i<7;i++)
{ LED=bssgs>>7;
bssgs<<=1;
}
}
}

相关帖子

沙发
hzy41y|  楼主 | 2012-6-17 21:43 | 只看该作者
NUC_IO.rar (206.96 KB)

使用特权

评论回复
板凳
xyz549040622| | 2012-6-18 09:12 | 只看该作者

使用特权

评论回复
地板
hzy41y|  楼主 | 2012-7-3 11:12 | 只看该作者
自顶一吓

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

75

帖子

2

粉丝