[Cortex-M0技术交流] [2012助学第一期]hzy41y学习笔记之四(PGIO置位的一点改进)

[复制链接]
2399|3
 楼主| hzy41y 发表于 2012-6-17 21:36 | 显示全部楼层 |阅读模式
在编(用HC595和LS164驱动7位数码管)程序时要将1字节的数据转成串行从1个PGIO输出时用DrvGPIO_ClrBit(E_GPA,2)和DrvGPIO_SetBit(E_GPA,2)库函数置位,觉不够直观现改成以下,请各们高手拍砖......


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


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



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

  18. LED_clr;
  19. LED_set;
  20. LED=0; //改进后
  21. LED=1;
  22. while(1)
  23. { //------用以下方式不够精简--------------
  24. bssgs=0xaa;
  25. for(i=0;i<7;i++)
  26. { if(bssgs>>7)LED_set;
  27. else LED_clr;
  28. bssgs<<=1;
  29. }
  30. //-------改进后------------
  31. bssgs=0xaa;
  32. for(i=0;i<7;i++)
  33. { LED=bssgs>>7;
  34. bssgs<<=1;
  35. }
  36. }
  37. }

 楼主| hzy41y 发表于 2012-6-17 21:43 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
xyz549040622 发表于 2012-6-18 09:12 | 显示全部楼层
 楼主| hzy41y 发表于 2012-7-3 11:12 | 显示全部楼层
自顶一吓
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

75

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部