mini2440LED闪烁程序

通过s3c2440的数据手册知道,4个LED灯分别直接接在CPU的4个引脚上。查看原理图,可以得到LED1~LED4分别接到GPB5,GPB6,GPB7,GPB8的引脚上。

LED IO的控制,数据,上拉寄存器所对应的地址:

GPBCON ---------0x56000010
GPBDAT ---------0x56000014
GPBUP -----------0x56000018

 

/****led.c****/

 

#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
/* 延迟函数*/
void delay(U32 count)
{
U32 i,j;
for(i=count;i>0;i--)
{
   for(j=0;j<10000;j++);
}
}

int Main(int argc,char **argv) //main函数
{

U8 key;
U32 mpll_val=0;
  
mpll_val = (92<<12)|(1<<4)|(1);

ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);   //设置主时钟频率405MHZ
ChangeClockDivider(key, 12);      //设置时钟驱动频率的函数  
   
     MMU_DisableICache();    //对内存管理单元MMU的设置
     MMU_DisableDCache();

//呵呵,第一次 看到Arm是不是很晕,先不管他以上是我照搬过来的。 
//以下是GPB配制寄存器和数据寄存器

     rGPBCON=0x155555;    //控制GPBCON全部为01,即输出
  
    
     while(1)
     {
      rGPBDAT = (0x0e<<5);    //00001110左移5位,LED1亮
      delay(120);
      rGPBDAT = (0x0d<<5);    //00001101左移5位,LED2亮
      delay(120);
      rGPBDAT = (0x0b<<5);    //00001011左移5位,LED3亮
      delay(120);
      rGPBDAT = (0x07<<5);    //00000111左移5位,LED4亮
      delay(120);
     // 从LED1到LED4依次亮
     rGPBDAT=(0x0e<<5);
     delay(120);
     rGPBDAT<<=1;
     delay(120);
     rGPBDAT<<=1;
     delay(120);
     rGPBDAT<<=1;
     //从LED4到LED1依次亮
     rGPBDAT=0x0e0;
     delay(120);
     rGPBDAT>>=1;
     delay(120);
     rGPBDAT>>=1;
     delay(120);
     rGPBDAT>>=1;
     delay(120);
     //两边灯往中间亮
     rGPBDAT=0x0c0;
     delay(120);
     rGPBDAT=0x120;
     delay(120);
     //全亮全灭两次
     rGPBDAT=0x0;
     delay(60);
     rGPBDAT=0x1e0;
     delay(60);
     rGPBDAT=0x0;
     delay(60);
     rGPBDAT=0x1e0;
     delay(60);
     //蜂鸣器响
     rGPBDAT=0x0f;
     delay(120);  
     }
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OpenArt Mini是一种基于Arduino平台的迷你版开放式艺术控制器,它具有简单易用的特点。使用OpenArt Mini可以实现一些艺术装置的控制和交互功能。 OpenArt Mini的代码是基于Arduino编写的,通过编写和上传代码可以实现不同的功能和交互。代码可以通过Arduino IDE或其他编程软件进行编辑,然后通过USB将代码上传到OpenArt Mini。 在编写OpenArt Mini代码时,需要使用Arduino语言进行编程。Arduino语言是一种基于C/C++语言的简化版,非常容易学习和使用。 例如,我们可以编写一段代码来控制OpenArt Mini上的LED灯。下面是一个示例代码: ``` void setup() { pinMode(LED_BUILTIN, OUTPUT); // 设置LED引脚为输出 } void loop() { digitalWrite(LED_BUILTIN, HIGH); // 将LED引脚设置为高电平(点亮LEDdelay(1000); // 延迟1秒 digitalWrite(LED_BUILTIN, LOW); // 将LED引脚设置为低电平(熄灭LEDdelay(1000); // 延迟1秒 } ``` 这段代码通过设置LED引脚的电平来控制LED的亮灭,循环执行,每隔1秒钟切换一次LED的状态。 除了控制LED,通过编写不同的代码,还可以实现控制电机、传感器等其他功能。根据具体的需求,可以编写不同的逻辑和算法,实现各种艺术装置的交互和效果。 总结来说,OpenArt Mini代码的编写是为了实现特定的艺术控制和交互功能。通过Arduino语言编写代码,可以控制OpenArt Mini上的各种装置,实现艺术作品的创作和展示。 ### 回答2: OpenArt Mini是一款由OpenArt开发的迷你编码设备,它可用于编程学习和创意艺术创作。OpenArt Mini具有一系列可编程的LED灯和按钮,用户可以使用编程语言(如Python)编写代码,控制灯光的亮度、颜色和闪烁效果。同时,OpenArt Mini还支持外部传感器的连接,用户可以通过编写代码来实现与传感器的交互,创造出更多有趣的艺术作品。 OpenArt Mini的编程非常简单,用户可以在电脑上下载和安装OpenArt IDE软件,通过该软件进行代码编写和调试。使用OpenArt IDE,用户可以通过拖拽和编辑代码块的方式编写程序,而无需记忆和输入复杂的语法。此外,OpenArt Mini还提供了丰富的代码示例和教程,帮助用户更好地理解和掌握编程知识。 通过编写代码,用户可以实现诸如灯光呼吸效果、彩虹循环等酷炫的灯光效果。此外,在连接了外部传感器后,用户可以通过编写代码将传感器的数据反馈到灯光上,比如根据光照强度控制灯光亮度,根据声音的大小控制灯光的闪烁频率等。这些灯光效果的实现不仅具有美观性,还能够增加作品的交互性和创新性。 总之,OpenArt Mini是一款非常适合编程学习和艺术创作的迷你编码设备。它简单易用,提供了丰富的功能和教育资源,让用户可以通过编写代码实现各种有趣的灯光效果和创意作品。无论是初学者还是专业人士,OpenArt Mini都能够满足他们的需求,是一个非常有价值和有趣的创作工具。 ### 回答3: openart mini是一个开源的艺术创作工具,它提供了一个可编程的平台,让用户可以通过编写代码来创作出各种艺术作品。 openart mini的代码结构非常简单,它由一系列的函数和变量组成。 首先,代码的入口函数是``setup()``函数,这个函数在程序开始时被调用一次。在这个函数中,用户可以初始化一些变量,设置画布的背景颜色,以及定义一些控制输入设备等。 接下来,是``draw()``函数,这个函数会被不断地调用,用于实时地绘制图像。在这个函数中,用户可以通过调用各种绘图函数,绘制出自定义的图案和图像效果。 除了``setup()``和``draw()``函数,openart mini还提供了一些其他的函数和变量,用于处理用户的输入和输出。例如,``mousePressed()``函数可以在鼠标被按下的时候被调用,``keyPressed()``函数可以在键盘按键被按下的时候被调用。用户可以根据需要在这些函数中编写代码来响应用户的输入。 此外,openart mini还提供了一些内置的函数和变量,用于处理图像、颜色、文本等。这些函数和变量可以帮助用户更方便地操作图像和实现艺术效果。 综上所述,openart mini的代码相对简单,由一系列的函数和变量组成,用户可以通过编写这些函数和变量来实现自己想要的艺术创作效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值