• ARM实验1 —— 流水灯实验


    实验内容:

    编写GPIO模块程序,实现对FS_4412平台的上的led2,led3,led4 ,led5,的流水灯实现。

    实验目的:

    熟悉开发环境的使用。

    掌握Exynos 4412处理器GPIO功能使用。

    实验平台:

    FS_4412  Exynos 4412开发板,eclipse, secureCRT

    实验步骤:

    1:打开eclipse,在project explorer 创建工程led_test,添加配置文件,common文件夹和start文件夹

    2.查看led灯在开发板的位置

    3查看CHG_COK在核心板的说明:

    3。查看GPX2_7在开发板的的位置:

     4.依次查询led 3 4 5的内容,

    5.在led_test工程新建main.c文件,并编译生成二进制bin文件

     1 #include "exynos_4412.h"
     2 
     3 typedef enum
     4 {
     5     false,
     6     true
     7 }bool;
     8 
     9 // 延时函数
    10 void mydelay_ms(int ms)
    11 {
    12     int i, j;
    13     while(ms--)
    14     {
    15         for (i = 0; i < 5; i++)
    16             for (j = 0; j < 514; j++);
    17     }
    18 }
    19 
    20 // 点灯
    21 void led_isOn(bool bFlag)
    22 {
    23     if(bFlag == false)
    24         GPX2.DAT &= ~(0x1<<7);        // led is off
    25     else
    26         GPX2.DAT |= 0x1<<7;       // LED is on
    27 
    28     mydelay_ms(1000);
    29     if(bFlag == false)
    30         GPX1.DAT &= ~0x1;        // led is off
    31     else
    32         GPX1.DAT |= 0x1;       // LED is on
    33     mydelay_ms(1000);
    34     if(bFlag == false)
    35             GPF3.DAT &= ~(0x1<<4);        // led is off
    36         else
    37             GPF3.DAT |= 0x1<<4;       // LED is on
    38     mydelay_ms(1000);
    39 
    40     if(bFlag == false)
    41                 GPF3.DAT &= ~(0x1<<5);        // led is off
    42             else
    43                 GPF3.DAT |= 0x1<<5;       // LED is on
    44 
    45 }
    46 
    47 int main()
    48 {
    49     // 配置GPIO
    50     GPX1.CON = (GPX1.CON&  (~0xf)) | 0x1;
    51     GPF3.CON = GPF3.CON | (0x1<<16);
    52     GPF3.CON = GPF3.CON | (0x1<<20);
    53     GPX2.CON = GPX2.CON & (~(0xf<<28)) | (0x1<<28);
    54 
    55     GPX2.PUD = GPX2.PUD & ~(0x3<<14) | (0x1<<14);
    56     while(1)
    57     {
    58         led_isOn(true);
    59         mydelay_ms(1000);
    60         led_isOn(false);
    61         mydelay_ms(1000);
    62     }
    63 
    64     return 0;
    65 }

    6.程序编译连接成功后使用secureCRT进行下载到开发板,

    命令:loadb 40008000 。将led_test.bin下载到开发板中。

    命令:go 40008000 。让流水灯就运行了!哈哈哈啊哈哈哈哈!

    实验结果:

  • 相关阅读:
    Leetcode单链表反转
    算法--二叉搜索树的python实现
    云服务器(阿里和腾讯)搭建网络云盘Nextcloud
    VGG16和集成模型(LeNet,CNN,Net均匀池化)比较
    git与github
    pyspider-崔庆才猫途鹰
    给 Python 添加进度条 | 给小白的 tqdm 精炼实例!
    @wraps 修饰器:让你的 Python 代码更加简短可爱 | 从简单实例来认识它
    并发和并行 | Python中实现多线程 threading 和多进程 multiprocessing
    Python格式化字符串字面值 | 被官方文档称之为『漂亮』的输出格式
  • 原文地址:https://www.cnblogs.com/lanbofei/p/9661894.html
Copyright © 2020-2023  润新知