- 论坛徽章:
- 0
|
/*C与汇编相互调用*/
/*C文件*/
/*function:flash led.c*/
#define GPFCON (*(volatile unsigned long *)0x56000050)
#define GPFDAT (*(volatile unsigned long *)0x56000054)
#define GPFUP (*(volatile unsigned long *)0x56000058)
/*declare asm function*/
extern int delay(int t);
int main(void){
/*先清零再置1*/
/*0101,0101,xxxx,xxxx*/
GPFCON=(GPFCON&0x00FF)|0x5500;
GPFUP|=0xFF00; //dislable pull up
while(1){
/*GPF4 ouput 0:1110,0000*/
GPFDAT=(GPFDAT &0x0F)|0xE0;
delay(0x5FFFFF);
/*GPF5 output 0:1101,0000*/
GPFDAT=(GPFDAT &0x0F)|0xD0;
delay(0x5FFFFF);
/*GPF6 output 0:1011,0000*/
GPFDAT=(GPFDAT&0x0F)|0xB0;
delay(0x5FFFFF);
/*GPF7 output 0:0111,0000*/
GPFDAT=(GPFDAT &0x0F)|0x70;
delay(0x5FFFFF);
}
return 0;
}
/*汇编文件*/
EXPORT delay
AREA DELAY,CODE,READONLY
delay
SUB R0,R0,#0x1
CMP R0,#0x0
BNE delay
MOV PC,LR
END
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/56374/showart_1973466.html |
|