本帖最后由 xiaoweixu 于 2012-1-21 19:57 编辑
收到助学板好久了,最近终于有时间学习MO了本人菜鸟一个,看过无数帖子和例程之后终于能写一些简单的程序烧写到芯片里运行了。要过年了,自己做了个彩灯的简单程序。
如何建立工程论坛里好多教程,这里就不写了,只贴一下代码:- #include <stdio.h>
- #include "NUC1xx.h"
- #include "DrvGPIO.h"
- #include "DrvSYS.h"
- int main (void)
- {
- int i=0;
- int on=0;
- int dn=0;
- UNLOCKREG();
- SYSCLK->WRCON.XTL12M_EN = 1;
- DrvSYS_Delay(5000);
- DrvGPIO_Open(E_GPA, 2, E_IO_OUTPUT); //绿灯
- DrvGPIO_Open(E_GPA, 3, E_IO_OUTPUT); //黄灯
- DrvGPIO_Open(E_GPA, 4, E_IO_OUTPUT); //红灯
- while(1)
- {
- for(i=0;i<4;i++) // 红灯闪5秒,频率1Hz
- {
- DrvGPIO_SetPortBits(E_GPA,16);
- DrvSYS_Delay(500000);
- DrvGPIO_ClrBit(E_GPA,4);
- DrvSYS_Delay(500000);
- }
- for(i=0;i<5;i++) // 红灯闪3秒,频率2Hz
- {
- DrvGPIO_SetPortBits(E_GPA,16);
- DrvSYS_Delay(250000);
- DrvGPIO_ClrBit(E_GPA,4);
- DrvSYS_Delay(250000);
- }
- for(i=0;i<11;i++) // 红灯闪3秒,频率4Hz
- {
- DrvGPIO_SetPortBits(E_GPA,16);
- DrvSYS_Delay(125000);
- DrvGPIO_ClrBit(E_GPA,4);
- DrvSYS_Delay(125000);
- }
- DrvGPIO_SetBit(E_GPA,4); // 红灯长亮
- /////////////////////////////////////////////////////////////////////
- for(i=0;i<4;i++) // 黄灯闪5秒,频率1Hz
- {
- DrvGPIO_SetBit(E_GPA,3);
- DrvSYS_Delay(500000);
- DrvGPIO_ClrBit(E_GPA,3);
- DrvSYS_Delay(500000);
- }
- for(i=0;i<5;i++) // 黄灯闪3秒,频率2Hz
- {
- DrvGPIO_SetBit(E_GPA,3);
- DrvSYS_Delay(250000);
- DrvGPIO_ClrBit(E_GPA,3);
- DrvSYS_Delay(250000);
- }
- for(i=0;i<11;i++) //黄灯闪3秒,频率4Hz
- {
- DrvGPIO_SetBit(E_GPA,3);
- DrvSYS_Delay(125000);
- DrvGPIO_ClrBit(E_GPA,3);
- DrvSYS_Delay(125000);
- }
-
- DrvGPIO_SetBit(E_GPA,3); // 黄灯长亮
- DrvGPIO_SetBit(E_GPA,2); //绿灯长亮
- DrvSYS_Delay(8000000);
- ///////////////////////////////
- for(i=0;i<999;i++) // 黄灯2秒渐灭
- {
- DrvGPIO_SetBit(E_GPA,3);
- on=2000-2*i ;
- DrvSYS_Delay(on);
- DrvGPIO_ClrBit(E_GPA,3);
- dn=2*i+1;
- DrvSYS_Delay(dn);
- }
- ////////////////////////////////////
- for(i=0;i<999;i++) // 红灯2秒渐灭
- {
- DrvGPIO_SetBit(E_GPA,4);
- on=2000-2*i ;
- DrvSYS_Delay(on);
- DrvGPIO_ClrBit(E_GPA,4);
- dn=2*i+1;
- DrvSYS_Delay(dn);
- }
- ////////////////////////////////////
- DrvGPIO_ClrBit(E_GPA,2); //灯全灭
- DrvSYS_Delay(8000000);
- DrvSYS_Delay(8000000);
- DrvGPIO_SetBit(E_GPA,2); //绿灯亮
- DrvSYS_Delay(5000000);
- ///////////////////////////
- for(i=0;i<999;i++) // 黄灯2秒渐亮
- {
- DrvGPIO_SetBit(E_GPA,3);
- on=2*i+1;
- DrvSYS_Delay(on);
- DrvGPIO_ClrBit(E_GPA,3);
- dn=2000-2*i ;
- DrvSYS_Delay(dn);
- }
- DrvGPIO_SetBit(E_GPA,3);
- ////////////////////////////////////
- for(i=0;i<999;i++) // 红灯2秒渐亮
- {
- DrvGPIO_SetBit(E_GPA,4);
- on=2*i+1;
- DrvSYS_Delay(on);
- DrvGPIO_ClrBit(E_GPA,4);
- dn=2000-2*i ;
- DrvSYS_Delay(dn);
- }
- DrvGPIO_SetBit(E_GPA,4); //灯全亮
- DrvSYS_Delay(5000000);
- DrvSYS_Delay(5000000);
- }
- }
|