arm入门测试

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TQ2440(ARM9)的第一个无OS实验

(2011-03-23 16:14:06)

转载

标签:

分类:AVR_ARM

内存

led

2440

流水灯

it

#include"2440addr.h" //包含2440相关寄存器的设置

//四个LED对应GPB5.6.7.8

#define LED1 5

#define LED2 6

#define LED3 7

#define LED4 8

#define Bit(x) (1<

#define Output(x) (1<<2*x) //将对应IO置为输出

* 名称:Delay

* 功能:延时

* 入口参数:无

* 出口参数:无

void Delay()

{

int i,j,k;

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

{

for(j=0;j<100;j++)

{

for(k=0;k<1000;k++);

}

}

}

* 名称:Main

* 功能:测试流水灯功能

* 入口参数:无

* 出口参数:无

void Main(void)

{

int i;

rGPBCON=(Output(LED1)|Output(LED2)|Output(LED3)|Output(LED4)); //设置四个LED为输出

while(1)

{

for(i=LED1;i<=LED4;i++)

{

rGPBDAT=~Bit(i);

Delay();

}

}

}

此后,可以直接下载至内存中执行,不过掉电后丢失;或者下载到NANDFlash 中,上电后,s3c2440自动copyNANDFlsh前4K的代码到内存中,并从内存起始地址0x30000000开始执行程序。

利用ARM外部中断控制流水灯的闪烁速度(基于LPC2134)

(2011-03-13 14:52:57)

转载

分类:AVR_ARM

标签:

外部中断

流水灯

arm

lpc

it

#include "config.h"

void __irq Eint0_IRQ(void); //INT0中断函数声明

void delay(int dly); //delay延时函数声明

//流水灯数值表

int Led_Table[]={

0x00fe0000,0x00fd0000,0x00fb0000,0x00f70000,0x00ef0000,

0x00df0000,0x00bf0000,0x007f0000};

int Delaytime=70;

//主函数

int main(void)

{

int i=0;

PINSEL0=0X000CC0CC; //使能p0.1 p0.3 p0.7 p0.8分别为外部中断0.1.2.3

PINSEL1=0X00000000; //使能p1.16~23为IO功能

IO1DIR=0XFF<<16; //这个写法很清楚,推荐

IRQEnable();

VICIntSelect=0x00000000; //设置所有的终端都为IRQ中断

VICVectCntl0=0x20|14; //设置INT0为IRQ中断,使用slot0

VICVectAddr0=(uint32)Eint0_IRQ; //设置终端服务程序地址

VICIntEnable=0x00004000; //使能INT0

EXTMODE=0x00; //INT0电平触发

EXTPOLAR=0x00; //触发电平为低电平

EXTINT=0x0f; //清除所有中断标志

while(1)

{

IO1SET=Led_Table[i];//设置高电平引脚

IO1CLR=~Led_Table[i]; //设置低电平引脚

delay(Delaytime);

i+=1;

if(i==8)

{

i=0;

}

}

return 0;

}

# * 名称:delay

# * 功能:延时函数

# * 入口参数:延时时间

# * 出口参数:无

void delay(int dly)

{

int i,j;

for(i=0; i

for(j=0; j<25000; j++);

}

# * 名称:Eint0_IRQ()

# * 功能:外部中断1中断处理程序。

# * 入口参数:无

# * 出口参数:无

void __irq Eint0_IRQ(void)

{

if(Delaytime>20)

{

Delaytime-=20; //加快流水灯的闪烁速度

}

while((EXTINT&0x01)!=0) //不断被清除标志位,直到外部恢复高电平,此时EXTINT的最低位位0 {

EXTINT=0x01;

}

VICVectAddr=0; //必须操作

}

ARM的串口基本操作函数测试(基于LPC2134)

(2011-03-13 23:52:28)

转载

分类:AVR_ARM

标签:

lpc

arm

uart

proteus

it

* 文件名称:UART0.h

* 功能:声明关于UART0的相关全局函数

相关文档
最新文档