新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > mini2440簡單的裸機led流水燈代碼

        mini2440簡單的裸機led流水燈代碼

        作者: 時間:2016-11-11 來源:網絡 收藏
        MINI2440簡單的裸機led流水燈代碼

        ADS配置target setting的post-liner為ARM formELF

        本文引用地址:http://www.104case.com/article/201611/316979.htm

        language setting的ARM Assembler和ARM C Compile的Target中的Architecture or processor設置為arm920T

        linker中的ARM linker中output--simple image--RO base設置為0x30000000;options--Image entry point設置為0x30000000;layout--object/symbol設置為Init.o(就是匯編的名字改了后綴.o文件名稱)

        匯編代碼:Init.s

        IMPORT main

        AREA Init,CODE,READONLY

        CODE32

        ldr r0,=0x53000000

        mov r1,0x0

        str r1,[r0]

        ldr sp,=1024*4

        bl main

        END

        流水燈代碼led.c

        #define GPBCON (*(volatile unsigned long *)0x56000010

        #define GPBDAT (*(volatile unsigned long *)0x56000014

        void delay(int m)//延時子程序

        {

        int i,j;

        for(i=m;i>0;i--)

        {

        for(j=0;j<10000);j );

        }

        }

        int main()

        {

        GPBCON=GPBCON&(0x00<<10)|(0x55<<10);//配置GPB相應的端口為輸出

        while(1)

        {

        GPBDAT=GPBDAT&(0x0<<5)|(0xE<<5);//設置點亮第一個led燈

        delay(100);

        GPBDAT=GPBDAT&(0x0<<5)|(0xD<<5);//...依次

        delay(100);

        GPBDAT=GPBDAT&(0x0<<5)|(0xB<<5);

        delay(100);

        GPBDAT=GPBDAT&(0x0<<5)|(0x7<<5);

        delay(100);

        }

        }

        這樣就實現了流水燈的簡單裸機運行,其實匯編代碼還可以刪除一些程序,結果可以正常運行,我不知道未來后果會怎么樣,大家可以檢查,若是你知道不能刪除的原因,請留言讓我也學習一下。那么接下來,什么用led實現加法,減法等等,都是比較輕松的了。



        關鍵詞: mini2440led流水

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 巴楚县| 应城市| 灯塔市| 新兴县| 安龙县| 信阳市| 华阴市| 吉林省| 佛山市| 丹巴县| 互助| 东辽县| 嘉兴市| 项城市| 平顶山市| 田林县| 自贡市| 高密市| 句容市| 朝阳县| 尼木县| 濉溪县| 安平县| 乐山市| 临邑县| 曲周县| 邛崃市| 耿马| 建始县| 嘉荫县| 红河县| 柳林县| 浦县| 大荔县| 准格尔旗| 斗六市| 岢岚县| 河北区| 阿坝| 寿阳县| 白城市|