新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于MINI2440開發板的LED流水燈實驗(含init.s)

        基于MINI2440開發板的LED流水燈實驗(含init.s)

        作者: 時間:2016-11-20 來源:網絡 收藏
        晚上看完了S3C2140A的GPIO開發部分,然后對著2440的數據手冊寫了個LED的小程序,總結下,程序如下:
        初始化部分程序: Init.s
        IMPORT Main
        CODE32
        AREA Init,CODE,READONLY
        ENTRY
        ldr r0, =0x53000000;關門狗
        mov r1, #0x0
        str r1, [r0] ;關閉關門狗
        ldr sp, =1024*4 ;設置堆棧,由于main函數里調用了其他函數,所以一定要設置堆棧

        bl Main
        main_loop
        b main_loop
        END
        主程序:mian.c


        #define GPBCON (*(volatile unsigned *)0x56000010)
        #define GPBDAT (*(volatile unsigned *)0x56000014)
        #define GPBUP (*(volatile unsigned *)0x56000018)

        void delay(unsigned int dly);

        void Main()
        {
        GPBCON= 0x15400;
        GPBUP=0xFFFF;
        while(1)
        {
        GPBDAT&=~0x20;
        delay(120);
        GPBDAT&=~0x60;
        delay(120);
        GPBDAT&=~0xE0;
        delay(120);
        GPBDAT&=~0x1E0;
        delay(120);
        GPBDAT|=0x20;
        delay(120);
        GPBDAT|=0x60;
        delay(120);
        GPBDAT|=0xE0;
        delay(120);
        GPBDAT|=0x1E0;
        }
        }
        void delay(unsigned int dly)
        {
        unsigned int i;
        for(;dly>0;dly--)
        for (i = 0;i < 1000; i++);
        }
        這里有個要注意的是,在VIVI里下載到SDRAM運行時,因為VIVI設置了系統時鐘,發型程序運行異常時,可以將延時函數的參數設置大些,延長延時程序。反過來如果在SDRAM里運行正常,而用VIVI下載到NAND Flash里運行時異常,那是因為外部時鐘相對要慢很多,可以將延時程序的參數設置小些,減少延時程序時間。


        關鍵詞: MINI2440LED流水

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 罗平县| 鄂伦春自治旗| 兴安盟| 金沙县| 咸宁市| 社会| 井冈山市| 遵化市| 商丘市| 九寨沟县| 瓮安县| 南郑县| 越西县| 噶尔县| 田阳县| 德庆县| 高安市| 海伦市| 兴和县| 扎赉特旗| 宁武县| 九寨沟县| 丽水市| 中宁县| 获嘉县| 兴隆县| 开封县| 旬邑县| 铅山县| 涪陵区| 长海县| 民县| 景泰县| 宿迁市| 丰顺县| 铜川市| 民丰县| 云龙县| 曲水县| 洛南县| 古丈县|