⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ledcon.c

📁 ARM的应用例子(点灯程序)。适合处学者。
💻 C
字号:
/*-------------------------------------------
项目名:   C语言彩灯程序系列 [ARM学习]
程序名:    渐明渐暗的彩灯
编写人:    杜洋 
初写时间:  2006年1月16日 14时
程序功能:     使LED彩灯由亮渐灭再由灭渐亮的闪烁
实现方法:  通过改变彩灯亮灭的时间长度来改变彩灯亮度(占空比控制)
CPU说明:   ARM7TDMI-S 12MHZ
实验设备:  {采用SmartARM2200教学实验开发平台}
接口说明:  4个LED彩灯接P2.28~P2.31口 
信息说明:  文件名-1221LED
修改日志:  
  NO.1-2006年1月16日-修改了闪烁周期长度(20)
 
-------------------------------------------*/
#include "config.h"

#define   LEDCON   0xf0000000

        void delay (uint8 d)     /* 延时功能函数--由d决定延时长度 */
  {

  uint8 i;

      while( --d != 0)
    
      {

      for(i = 0; i < 20; i++);

      }               
  }

  /* 彩灯主函数 实现彩灯的显示 */
  int main (void)

  {   uint8 a, b;                 /* a控制延时长度 b控制循环周期 */

  IO2DIR = LEDCON;     // 配置LED控制I/O方向

    while (1)
    {

      IO2SET = 0xf0000000;

      a = 0x00;

        for (b=250; b>0; b--)             /* 定义半周期循环时间(次数)*/
        {
  
        a++;

        delay (a);                 /* 延时长度随a而改变 */

        IO2CLR = 0xf0000000;

        a = 255-a;                 /* a值取反 决定灯灭时的占空比 */

        delay (a);

        IO2SET = 0xf0000000;

        a = 255-a;                 /* a值取反 使a回到原值继续循环 */

        }

      a = 0x00;

        for (b=250; b>0; b--)
    {

        a++;

        delay (a);

        IO2SET = 0xf0000000;

        a = 255-a;

        delay (a);

        IO2CLR = 0xf0000000;

        a = 255-a;

        }

    }
    return(0);
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -