×
单片机 > 单片机程序设计 > 详情

ARM 流水灯C语言

发布时间:2020-05-28 发布时间:
|

#include"2440addr.h"    //定义了各个特殊功能寄存器地址和名称,要使用必须调用该头文件
/*=== 如果不调用该头文件,必须把要使用的定义名称和地址语句在主程序前声明
#define rGPBCON    (*(volatile unsigned *)0x56000010)//Port B control
#define rGPBDAT    (*(volatile unsigned *)0x56000014)//Port B data
#define rGPBUP     (*(volatile unsigned *)0x56000018)//Pull-up control */    
/*  自定义简单延迟程序  */ 
int delay(int times)
{
    int i;
    for(i=0;i    return 0;
}

/*  主程序  */
void xmain(void)     //主函数名称与主函数入口地址对应,在2440init.s中有定义
{                    //不能随意写成main,或者Main等,要查看在2440init.s文件(见下图)


        rGPBCON |=0x3fc00;                 //GPB5-8  able output
        rGPBCON &=0x15400;              //GPBCON两位管理GPBDAT的方向(见下面对应关系,00-in,01-out, 10-other,11-无用);
         // 方向控制GPBCON            d21d20    d19d18 d17d16   d15d14d13d12   d11d10 d9d8   d7d6  d5d4   d3d2  d1d0 
         // 输入输出sfr GPDAT            d10            d9         d8           d7        d6           d5       d4        d3      d2       d1      d0   
        rGPBUP  |=0x1e0;                     //disable GPB5-8 pull up res,GPBUP一位管一位,0-链接上拉电阻,1-关闭上拉电祖



while(1)
    {

             rGPBDAT|=0x1e0;//GPB7 output 0
             rGPBDAT&=0xeff;      
             delay(50000000);//调用汇编语言编写的延时程序 

             rGPBDAT|=0x1e0;//GPB7 output 0
             rGPBDAT&=0xf7f;      
             delay(50000000);//调用汇编语言编写的延时程序 


             rGPBDAT|=0x1e0;//GPB7 output 0
             rGPBDAT&=0xfbf;      
             delay(50000000);//调用汇编语言编写的延时程序 

             rGPBDAT|=0x1e0;//GPB7 output 0
             rGPBDAT&=0xfdf;      
             delay(50000000);//调用汇编语言编写的延时程序 


    }
}



下图是不调用相关文件,但使用的sfr必须定义


下图是不定义sfr,但必须使用头文件2440addr.h,由于头文件2440addr.h中的设置在Def.h和Option.h中进行了设置,所以,调用2440addr.h必须调用后两者。否则编译出错!

关键字:ARM  流水灯  C语言 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
stm32 总线矩阵介绍