s3c2440 --跑马灯 C+汇编代码

/*led_asm_c.c*/
#define rGPFCON    (*(volatile unsigned *)0x56000050) //Port F control
#define rGPFDAT    (*(volatile unsigned *)0x56000054) //Port F data
#define rGPFUP     (*(volatile unsigned *)0x56000058) //Pull-up control F
 //GPFCON 8口的
extern int delay(int time);   /*声明汇编函数*/

int main()
{
 /*设置 GPFCON*/
 rGPFCON &= 0x00ff;  //GPF4 - 7置为 0
 rGPFCON |= 0x55ff;  //GPF4 - 7置为 output

 /*设置 GPFUP*/
 rGPFUP |= 0xff00;

 while(1)
 {
    /*亮灯 GPF4*/
    rGPFDAT |= 0xf0;  //GPF4 - 7置为 1
    rGPFDAT &= 0xe0; //GPF4置为 0
    delay(0x1ffffff);  //调用汇编程序写的延时程序

     /*亮灯 GPF5*/
    rGPFDAT |= 0xf0;  //GPF4 - 7置为 1
    rGPFDAT &= 0xd0; //GPF5置为 0
    delay(0x1ffffff);  //调用汇编程序写的延时程序

     /*亮灯 GPF6*/
    rGPFDAT |= 0xf0;  //GPF4 - 7置为 1
    rGPFDAT &= 0xb0; //GPF6置为 0
    delay(0x1ffffff);  //调用汇编程序写的延时程序

     /*亮灯 GPF7*/
    rGPFDAT |= 0xf0;  //GPF4 - 7置为 1
    rGPFDAT &= 0x70; //GPF7置为 0
    delay(0x1ffffff);  //调用汇编程序写的延时程序
 }
}

;delay.s

 EXPORT delay
 AREA  delay1,CODE ,READONLY ;该伪指令定义了一个代码段   delay1这个名字要注意
;下面延时子程序

 ENTRY
delay
 ;传一个参数 ,参数放到 r0
 sub r0 ,r0 ,#1
 cmp r0 ,#0x0
 bne delay       ;result is not 0 and continue delay
 mov pc ,lr ;return

 END; //end

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值