打印
[菜农助学交流]

GPIO+九路流水灯实验

[复制链接]
2584|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
strang|  楼主 | 2011-8-21 00:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*---------------------------------------------------------------------------------------------------------*/
/* */
/* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved. */
/* */
/*---------------------------------------------------------------------------------------------------------*/
#include <stdio.h>
#include "NUC1xx.h"
#include "Driver\DrvGPIO.h"
#include "Driver\DrvSYS.h"

#ifndef SYSTEM
#define SYSTEM (0) //(1)
#endif
/*************************************************************************************
** Function name: delay_loop
** Descriptions: 延时子程序
** input parameters: 无
** output parameters: 无
** Returned value: 无
*************************************************************************************/
void delay_loop(void)
{
uint32_t i,j;
for(i=800;i>0;i--)
for(j=500;j>0;j--);

}

/*************************************************************************************
** Function name:
** Descriptions:
**
** input parameters:
** output parameters:
** Returned value:
*************************************************************************************/
#define delay_1S() { delay_loop(); delay_loop(); delay_loop();}
uint32_t temp;
int main (void)
{
/* SYSCLK =>12Mhz*/ //外部晶振使能
UNLOCKREG();
SYSCLK->PWRCON.XTL12M_EN = 1;
LOCKREG();
#if SYSTEM
GPIOA->PMD.PMD0=1;
GPIOA->PMD.PMD1=1;
GPIOA->PMD.PMD2=1;
GPIOA->PMD.PMD3=1;
GPIOA->PMD.PMD4=1;
GPIOA->PMD.PMD5=1;
GPIOA->PMD.PMD6=1;
GPIOA->PMD.PMD7=1;
GPIOA->PMD.PMD8=1;
#else
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 );
DrvGPIO_Open( E_GPA, 8, E_IO_OUTPUT );
#endif
while(1)
{
#if SYSTEM
GPIOA->DOUT&=~(1<<0);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<1);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<2);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<3);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<4);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<5);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<6);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<7);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<8);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<0);
delay_1S();
#else
DrvGPIO_ClrBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,8);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,0);
delay_1S();
#endif
}
}
/*

作者:21IC_strang

2011-08-15

实现功能:九路流水灯

接线方式: 主板 显示板
PA.0----LED1
PA.1----LED2
PA.2----LED3
PA.3----LED4
PA.4----LED5
PA.5----LED6
PA.6----LED7
PA.7----LED8
PA.8----LED9
VDD ----12V
GND ----GND

*/

[local]1[/local]  九路流水灯
  显示板原理图
  

采用条件编译,实现两种GPIO控制模式。

相关帖子

沙发
strang|  楼主 | 2011-8-21 00:42 | 只看该作者
[local]1[/local]

网速慢的要死,崩溃中.......

使用特权

评论回复
板凳
strang|  楼主 | 2011-8-21 01:03 | 只看该作者
cortex-m0九路流水灯.rar (535.34 KB)

网速慢的要死,崩溃中.......

使用特权

评论回复
地板
mbydyjj| | 2011-9-30 10:42 | 只看该作者
顶你

使用特权

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

本版积分规则

认证:技术工程师
简介:

48

主题

3097

帖子

9

粉丝