打印
[新手园地]

傻瓜菜鸟第8帖——点阵

[复制链接]
2956|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
weshiluwei6|  楼主 | 2011-6-5 13:37 | 只看该作者
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/
#include <stdio.h>
#include "NUC1xx.h"
#include "NUC1xxM051Seriescfg.h"
#include "Driver\DrvGPIO.h"
#include "Driver\DrvSYS.h"

uint8_t i;
uint8_t  table[]  =  {0x00,0x6C,0x92,0x82,0x44,0x28,0x10,0x00};
uint8_t colum[]  =  {
                       0x7f,0xbf,0xdf,0xef,
                                           0xf7,0xfb,0xfd,0xfe
                                        };
/*************************************************************************************
** Function name:       DelayMs
** Descriptions:        延时1ms子程序
** input parameters:    无
** output parameters:   无
** Returned value:      无
*************************************************************************************/
void DelayMs(uint32_t z)
{
        uint32_t i,j;
        for(i=z;i>0;i--)
           for(j=2000;j>0;j--);
   
}


void Init_GPIO(void)
{
  /* PA ------- X */
  DrvGPIO_Open( E_GPA, 0, E_IO_OUTPUT );        
  DrvGPIO_Open( E_GPA, 1, E_IO_OUTPUT );
  DrvGPIO_Open( E_GPA, 2, E_IO_OUTPUT );
  DrvGPIO_Open( E_GPA, 3, E_IO_OUTPUT);
  DrvGPIO_Open( E_GPA, 4, E_IO_OUTPUT );
  DrvGPIO_Open( E_GPA, 5, E_IO_OUTPUT );
  DrvGPIO_Open( E_GPA, 6, E_IO_OUTPUT );
  DrvGPIO_Open( E_GPA, 7, E_IO_OUTPUT );

  /* PB ------- Y */
  DrvGPIO_Open( E_GPB, 0, E_IO_OUTPUT );        
  DrvGPIO_Open( E_GPB, 1, E_IO_OUTPUT );
  DrvGPIO_Open( E_GPB, 2, E_IO_OUTPUT );
  DrvGPIO_Open( E_GPB, 3, E_IO_OUTPUT );
  DrvGPIO_Open( E_GPB, 4, E_IO_OUTPUT );
  DrvGPIO_Open( E_GPB, 5, E_IO_OUTPUT );
  DrvGPIO_Open( E_GPB, 6, E_IO_OUTPUT );
  DrvGPIO_Open( E_GPB, 7, E_IO_OUTPUT );

}

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

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

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




/*************************************************************************************
** Function name:       main
** Descriptions:      
**                      现    象:
** input parameters:    无
** output parameters:   无
** Returned value:      无
*************************************************************************************/
int main (void)
{        
        Init_System();
        Init_GPIO();
    while(1)
        {
          for(i = 0;i < 8; i++)
          {
            GPIOAs.DOUT.Regs   =   table;
                GPIOBs.DOUT.Regs   =   colum;
            DelayMs(2);         
          }        
        }
}

使用特权

评论回复
板凳
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初始化,然后实现这个例程还是挺有意义的。

使用特权

评论回复
5
weshiluwei6|  楼主 | 2011-6-7 20:17 | 只看该作者
4# Swallow_0322

谢谢大哥 俺试着看看  大哥加油 期待你你的新的笔记  嘿嘿

使用特权

评论回复
6
Swallow_0322| | 2011-6-8 07:46 | 只看该作者
5# weshiluwei6

最近有点忙,没有更新笔记。
不要受别人的思维限制,期待你更多的笔记。

使用特权

评论回复
7
博金快乐| | 2011-6-11 21:49 | 只看该作者

使用特权

评论回复
8
adampan| | 2011-10-12 16:01 | 只看该作者
看着你的51开发板Very的面熟啊。。。我家的抽屉里面貌似也躺着一块,,,顺便学习了笔记

使用特权

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

本版积分规则

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

7

主题

1125

帖子

1

粉丝