找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 5697|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

ARM 流水燈C語(yǔ)言

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:83710 發(fā)表于 2015-6-26 23:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include"2440addr.h"    //定義了各個(gè)特殊功能寄存器地址和名稱,要使用必須調(diào)用該頭文件
/*=== 如果不調(diào)用該頭文件,必須把要使用的定義名稱和地址語(yǔ)句在主程序前聲明
#define rGPBCON    (*(volatile unsigned *)0x56000010)//Port B control
#define rGPBDAT    (*(volatile unsigned *)0x56000014)//Port B data
#define rGPBUP     (*(volatile unsigned *)0x56000018)//Pull-up control */   
/*  自定義簡(jiǎn)單延遲程序  */
int delay(int times)
{
    int i;
    for(i=0;i<times;i++);
    return 0;
}

/*  主程序  */
void xmain(void)     //主函數(shù)名稱與主函數(shù)入口地址對(duì)應(yīng),在2440init.s中有定義
{                    //不能隨意寫成main,或者M(jìn)ain等,要查看在2440init.s文件(見(jiàn)下圖)


        rGPBCON |=0x3fc00;                 //GPB5-8  able output
        rGPBCON &=0x15400;              //GPBCON兩位管理GPBDAT的方向(見(jiàn)下面對(duì)應(yīng)關(guān)系,00-in,01-out, 10-other,11-無(wú)用);
         // 方向控制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-關(guān)閉上拉電祖



while(1)
    {

             rGPBDAT|=0x1e0;//GPB7 output 0
             rGPBDAT&=0xeff;      
             delay(50000000);//調(diào)用匯編語(yǔ)言編寫的延時(shí)程序

             rGPBDAT|=0x1e0;//GPB7 output 0
             rGPBDAT&=0xf7f;      
             delay(50000000);//調(diào)用匯編語(yǔ)言編寫的延時(shí)程序


             rGPBDAT|=0x1e0;//GPB7 output 0
             rGPBDAT&=0xfbf;      
             delay(50000000);//調(diào)用匯編語(yǔ)言編寫的延時(shí)程序

             rGPBDAT|=0x1e0;//GPB7 output 0
             rGPBDAT&=0xfdf;      
             delay(50000000);//調(diào)用匯編語(yǔ)言編寫的延時(shí)程序


    }
}



下圖是不調(diào)用相關(guān)文件,但使用的sfr必須定義


下圖是不定義sfr,但必須使用頭文件2440addr.h,由于頭文件2440addr.h中的設(shè)置在Def.h和Option.h中進(jìn)行了設(shè)置,所以,調(diào)用2440addr.h必須調(diào)用后兩者。否則編譯出錯(cuò)!






分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表