[菜农助学交流] 第五批 学习笔记第一篇——GPIO彩灯

[复制链接]
2797|2
 楼主| xiaoweixu 发表于 2012-1-21 19:55 | 显示全部楼层 |阅读模式
本帖最后由 xiaoweixu 于 2012-1-21 19:57 编辑

收到助学板好久了,最近终于有时间学习MO了本人菜鸟一个,看过无数帖子和例程之后终于能写一些简单的程序烧写到芯片里运行了。要过年了,自己做了个彩灯的简单程序。

如何建立工程论坛里好多教程,这里就不写了,只贴一下代码:
  1. #include <stdio.h>
  2. #include "NUC1xx.h"
  3. #include "DrvGPIO.h"
  4. #include "DrvSYS.h"
  5. int main (void)
  6. {
  7. int i=0;
  8. int on=0;
  9. int dn=0;
  10.         UNLOCKREG();                                                                                                                 
  11.     SYSCLK->WRCON.XTL12M_EN = 1;                                                                                

  12.     DrvSYS_Delay(5000);                                                                                                         
  13.         DrvGPIO_Open(E_GPA, 2, E_IO_OUTPUT);        //绿灯                                                
  14.         DrvGPIO_Open(E_GPA, 3, E_IO_OUTPUT);        //黄灯                                                         
  15.         DrvGPIO_Open(E_GPA, 4, E_IO_OUTPUT);        //红灯               
  16.                         while(1)                                                                                                         
  17.                         {

  18.                           for(i=0;i<4;i++)                        //         红灯闪5秒,频率1Hz
  19.                                 {
  20.                                 DrvGPIO_SetPortBits(E_GPA,16);                                                        
  21.                             DrvSYS_Delay(500000);
  22.                                 DrvGPIO_ClrBit(E_GPA,4);
  23.                                 DrvSYS_Delay(500000);
  24.                                 }
  25.                         for(i=0;i<5;i++)                 // 红灯闪3秒,频率2Hz
  26.                                 {
  27.                                 DrvGPIO_SetPortBits(E_GPA,16);                                                        
  28.                             DrvSYS_Delay(250000);
  29.                                 DrvGPIO_ClrBit(E_GPA,4);
  30.                                 DrvSYS_Delay(250000);
  31.                                 }
  32.                         for(i=0;i<11;i++)                  // 红灯闪3秒,频率4Hz
  33.                                 {
  34.                                 DrvGPIO_SetPortBits(E_GPA,16);                                                        
  35.                             DrvSYS_Delay(125000);
  36.                                 DrvGPIO_ClrBit(E_GPA,4);
  37.                                 DrvSYS_Delay(125000);
  38.                                 }        
  39.                         DrvGPIO_SetBit(E_GPA,4);        // 红灯长亮
  40.                 /////////////////////////////////////////////////////////////////////        
  41.                                 for(i=0;i<4;i++)                  // 黄灯闪5秒,频率1Hz
  42.                                 {
  43.                                 DrvGPIO_SetBit(E_GPA,3);                                                        
  44.                             DrvSYS_Delay(500000);
  45.                                 DrvGPIO_ClrBit(E_GPA,3);
  46.                                 DrvSYS_Delay(500000);
  47.                                 }
  48.                         for(i=0;i<5;i++)                                 // 黄灯闪3秒,频率2Hz
  49.                                 {
  50.                                 DrvGPIO_SetBit(E_GPA,3);                                                        
  51.                             DrvSYS_Delay(250000);
  52.                                 DrvGPIO_ClrBit(E_GPA,3);
  53.                                 DrvSYS_Delay(250000);
  54.                                 }
  55.                         for(i=0;i<11;i++)                                  //黄灯闪3秒,频率4Hz
  56.                                 {
  57.                                 DrvGPIO_SetBit(E_GPA,3);                                                        
  58.                             DrvSYS_Delay(125000);
  59.                                 DrvGPIO_ClrBit(E_GPA,3);
  60.                                 DrvSYS_Delay(125000);
  61.                                 }        
  62.                                 
  63.                         DrvGPIO_SetBit(E_GPA,3);        // 黄灯长亮
  64.                         DrvGPIO_SetBit(E_GPA,2);          //绿灯长亮
  65.                         DrvSYS_Delay(8000000);
  66.                         ///////////////////////////////
  67.                                           for(i=0;i<999;i++)                        // 黄灯2秒渐灭
  68.                                 {
  69.                                 DrvGPIO_SetBit(E_GPA,3);
  70.                                 on=2000-2*i        ;                                                
  71.                             DrvSYS_Delay(on);
  72.                                 DrvGPIO_ClrBit(E_GPA,3);
  73.                                 dn=2*i+1;
  74.                                 DrvSYS_Delay(dn);
  75.                                  }
  76.                   ////////////////////////////////////
  77.                           for(i=0;i<999;i++)                         // 红灯2秒渐灭
  78.                                 {
  79.                                 DrvGPIO_SetBit(E_GPA,4);
  80.                                 on=2000-2*i        ;                                                
  81.                             DrvSYS_Delay(on);
  82.                                 DrvGPIO_ClrBit(E_GPA,4);
  83.                                 dn=2*i+1;
  84.                                 DrvSYS_Delay(dn);
  85.                                  }
  86.         ////////////////////////////////////
  87.                                  DrvGPIO_ClrBit(E_GPA,2);        //灯全灭
  88.                                 DrvSYS_Delay(8000000);
  89.                                 DrvSYS_Delay(8000000);
  90.                                 DrvGPIO_SetBit(E_GPA,2);          //绿灯亮
  91.                                 DrvSYS_Delay(5000000);
  92.                    ///////////////////////////
  93.                           for(i=0;i<999;i++)                     //        黄灯2秒渐亮
  94.                                 {
  95.                                 DrvGPIO_SetBit(E_GPA,3);
  96.                                 on=2*i+1;                                                
  97.                                 DrvSYS_Delay(on);
  98.                                 DrvGPIO_ClrBit(E_GPA,3);
  99.                                 dn=2000-2*i        ;
  100.                                 DrvSYS_Delay(dn);
  101.                                  }
  102.                          DrvGPIO_SetBit(E_GPA,3);
  103.                           ////////////////////////////////////
  104.                           for(i=0;i<999;i++)                   //        红灯2秒渐亮
  105.                                 {
  106.                                 DrvGPIO_SetBit(E_GPA,4);
  107.                                 on=2*i+1;                                                
  108.                                 DrvSYS_Delay(on);
  109.                                 DrvGPIO_ClrBit(E_GPA,4);
  110.                                 dn=2000-2*i        ;
  111.                                 DrvSYS_Delay(dn);
  112.                                  }
  113.                                 DrvGPIO_SetBit(E_GPA,4);          //灯全亮
  114.         DrvSYS_Delay(5000000);
  115.                 DrvSYS_Delay(5000000);
  116.                         }        
  117.     }




本帖子中包含更多资源

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

×
jiangmituan_0 发表于 2012-1-21 21:19 | 显示全部楼层
顶一下
zhyscout 发表于 2012-1-21 22:38 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

113

帖子

1

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