[新手园地] 傻瓜菜鸟第8帖——点阵

[复制链接]
 楼主| weshiluwei6 发表于 2011-6-5 13:36 | 显示全部楼层 |阅读模式
本帖最后由 weshiluwei6 于 2011-6-5 13:38 编辑



这个点阵玩玩
哈哈 小试了下大叔的红杏出墙 不错不错 嘿嘿

本帖子中包含更多资源

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

×
 楼主| weshiluwei6 发表于 2011-6-5 13:37 | 显示全部楼层
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/
  6. #include <stdio.h>
  7. #include "NUC1xx.h"
  8. #include "NUC1xxM051Seriescfg.h"
  9. #include "Driver\DrvGPIO.h"
  10. #include "Driver\DrvSYS.h"

  11. uint8_t i;
  12. uint8_t  table[]  =  {0x00,0x6C,0x92,0x82,0x44,0x28,0x10,0x00};
  13. uint8_t colum[]  =  {
  14.                        0x7f,0xbf,0xdf,0xef,
  15.                                            0xf7,0xfb,0xfd,0xfe
  16.                                         };
  17. /*************************************************************************************
  18. ** Function name:       DelayMs
  19. ** Descriptions:        延时1ms子程序
  20. ** input parameters:    无
  21. ** output parameters:   无
  22. ** Returned value:      无
  23. *************************************************************************************/
  24. void DelayMs(uint32_t z)
  25. {
  26.         uint32_t i,j;
  27.         for(i=z;i>0;i--)
  28.            for(j=2000;j>0;j--);
  29.    
  30. }


  31. void Init_GPIO(void)
  32. {
  33.   /* PA ------- X */
  34.   DrvGPIO_Open( E_GPA, 0, E_IO_OUTPUT );        
  35.   DrvGPIO_Open( E_GPA, 1, E_IO_OUTPUT );
  36.   DrvGPIO_Open( E_GPA, 2, E_IO_OUTPUT );
  37.   DrvGPIO_Open( E_GPA, 3, E_IO_OUTPUT);
  38.   DrvGPIO_Open( E_GPA, 4, E_IO_OUTPUT );
  39.   DrvGPIO_Open( E_GPA, 5, E_IO_OUTPUT );
  40.   DrvGPIO_Open( E_GPA, 6, E_IO_OUTPUT );
  41.   DrvGPIO_Open( E_GPA, 7, E_IO_OUTPUT );

  42.   /* PB ------- Y */
  43.   DrvGPIO_Open( E_GPB, 0, E_IO_OUTPUT );        
  44.   DrvGPIO_Open( E_GPB, 1, E_IO_OUTPUT );
  45.   DrvGPIO_Open( E_GPB, 2, E_IO_OUTPUT );
  46.   DrvGPIO_Open( E_GPB, 3, E_IO_OUTPUT );
  47.   DrvGPIO_Open( E_GPB, 4, E_IO_OUTPUT );
  48.   DrvGPIO_Open( E_GPB, 5, E_IO_OUTPUT );
  49.   DrvGPIO_Open( E_GPB, 6, E_IO_OUTPUT );
  50.   DrvGPIO_Open( E_GPB, 7, E_IO_OUTPUT );

  51. }

  52. void Init_System(void)
  53. {
  54.         /* Unlock the locked registers before access */
  55.     UNLOCKREG(x);        //寄存器锁定键地址寄存器(RegLockAddr) :有些系统控制寄存器需要被保护起来,以防止误操作而影响芯片运行,
  56.                                     //这些寄存器在上电复位到用户解锁定之前是锁定的。用户可以连续依次写入“59h”, “16h” “88h”到0x5000_0100解锁定.
  57.         /* Enable the 12MHz oscillator oscillation */
  58.         DrvSYS_SetOscCtrl(E_SYS_XTL12M, 1);                                                                //SYSCLK->WRCON.XTL12M_EN = 1;

  59.         /* Waiting for 12M Xtal stable */
  60.         //while (DrvSYS_GetChipClockSourceStatus(E_SYS_XTL12M) != 1);                //SYSCLK->CLKSTATUS.XTL12M_STB
  61.         /*eClkSrc  - [in]  E_SYS_XTL12M / E_SYS_XTL32K / E_SYS_OSC22M / E_SYS_OSC10K / E_SYS_PLL    */
  62.         // Note: Only some of NuMicro NUC100 Series support this function.

  63.         DrvSYS_Delay(5000);
  64.         LOCKREG(x);
  65.         //向“0x5000_0100”写入任何值,就可以重锁保护寄存器
  66. }




  67. /*************************************************************************************
  68. ** Function name:       main
  69. ** Descriptions:      
  70. **                      现    象:
  71. ** input parameters:    无
  72. ** output parameters:   无
  73. ** Returned value:      无
  74. *************************************************************************************/
  75. int main (void)
  76. {        
  77.         Init_System();
  78.         Init_GPIO();
  79.     while(1)
  80.         {
  81.           for(i = 0;i < 8; i++)
  82.           {
  83.             GPIOAs.DOUT.Regs   =   table;
  84.                 GPIOBs.DOUT.Regs   =   colum;
  85.             DelayMs(2);         
  86.           }        
  87.         }
  88. }
hotpower 发表于 2011-6-5 20:55 | 显示全部楼层
有进步!!!奖励裤子一条
不过void Init_GPIO(void)要用红杏就简单多了,在群里看看俺的C++的例程
Swallow_0322 发表于 2011-6-6 09:45 | 显示全部楼层
本帖最后由 Swallow_0322 于 2011-6-6 09:50 编辑

顶!水王!加油!

大叔红杏设置GA0设置为输出模式举例:
GPIOAs.PMD.Bits.PMD0 = GPIO_PMD_OUTPUT;

其实俺建议试着不用库,用LOOK+红杏!
LOOK可以取代你的延时和GPIO初始化,然后实现这个例程还是挺有意义的。
 楼主| weshiluwei6 发表于 2011-6-7 20:17 | 显示全部楼层
4# Swallow_0322

谢谢大哥 俺试着看看  大哥加油 期待你你的新的笔记  嘿嘿
Swallow_0322 发表于 2011-6-8 07:46 | 显示全部楼层
5# weshiluwei6

最近有点忙,没有更新笔记。
不要受别人的思维限制,期待你更多的笔记。
博金快乐 发表于 2011-6-11 21:49 | 显示全部楼层
adampan 发表于 2011-10-12 16:01 | 显示全部楼层
看着你的51开发板Very的面熟啊。。。我家的抽屉里面貌似也躺着一块,,,顺便学习了笔记
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:250水王,种菜浇水,要输就输给理想,要败就败给高手。不可浮躁

7

主题

1126

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:250水王,种菜浇水,要输就输给理想,要败就败给高手。不可浮躁

7

主题

1126

帖子

1

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