打印
[菜农助学交流]

第五批 学习笔记第一篇——GPIO彩灯

[复制链接]
2182|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaoweixu|  楼主 | 2012-1-21 19:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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);
                        }        
    }




彩灯.rar (2.1 MB)

相关帖子

沙发
jiangmituan_0| | 2012-1-21 21:19 | 只看该作者
顶一下

使用特权

评论回复
板凳
zhyscout| | 2012-1-21 22:38 | 只看该作者
呵呵

使用特权

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

本版积分规则

0

主题

113

帖子

1

粉丝