查看: 2218|回复: 2

[分享] 恩智浦MAPS四色板体验(三)

[复制链接]
  • TA的每日心情
    奋斗
    2017-2-13 08:29
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    531

    主题

    2048

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    210
    最后登录
    2018-8-14
    发表于 2016-6-29 09:53:04 | 显示全部楼层 |阅读模式
    实验二

    实验目标:利用遥感开关往不同方向按下时在LCD显示屏分别显示表示方向的箭头。


    实验原理:
    (1)GPIO:K60的I/O口具有多功能信号复用、DMA或中断触发控制以及GPIO功能。
    GPIO是单片机同外围设备数据传输的通道。单片机的大部分I/O口方向寄存器来配置成为输入或者输出功能。I/O作为输入使用时,可以对输入的信号进行检测,根据输入信号的电压大小,单片机可以将相应的电压信号转化为逻辑信号。
    (2)Joystick:五个按键,包括上下左右和中间的按键,中间的select按键有外部的上拉电阻,其他四个方向键可以自由配置上拉或下拉电阻。当按下按键时相应的GPIO口就能检测到按键状态。
    (3)LCD:像素为320X240。
    (4)FlexBus:
    知识点1:GPIO配置
    (1)引脚控制寄存器:PORTx_PCRn



    10-8:引脚复用功能选择:可以配置为GPIO、中断或其他复用功能等,当这三位配置为001时是GPIO功能。
    (2)GPIO时钟配置寄存器:SIM_SCGC5



    13-9.PORTx:分别使能或禁止端口时钟;
    (3)GPIO数据方向寄存器:GPIOx_PDDR



    31-0.PDD:配置为0则为输入,配置为1则为输出
    (4)GPIO数据输入寄存器:GPIOx_PDIR



    GPIO口会将读入的数据转化为高或低电平。
    实验步骤:
    1.确定原理图引脚



    其中UP按键与PORTA24脚相连,RIGHT按键与PORTA26脚相连,LEFT与PORTA27脚相连,DOWN按键与PORTA25脚相连,SELECT按键与PORTA4脚相连。
    2.软件部分
    (1)GPIO引脚重命名
    //by zsy
    kGpio_up=GPIO_MAKE_PIN(HW_GPIOA,24U),
    kGpio_down=GPIO_MAKE_PIN(HW_GPIOA,25U),
    kGpio_left=GPIO_MAKE_PIN(HW_GPIOA,27U),
    kGpio_right=GPIO_MAKE_PIN(HW_GPIOA,26U),
    kGpio_select=GPIO_MAKE_PIN(HW_GPIOA,4U),
    (2)引脚配置
    //by zsy 2015/4/30
    const gpio_input_pin_user_config_t upkey[] = {
    {
    .pinName = kGpio_up,
    .config.isPullEnable = true,
    .config.pullSelect = kPortPullUp,
    .config.isPassiveFilterEnabled = false,
    .config.interrupt = kPortIntDisabled,
    },
    // {
    // .pinName = GPIO_PINS_OUT_OF_RANGE,
    // }
    };
    其他GPIO口如downkey、leftkey、rightkey、selectkey相同配置。
    (3)使能端口时钟,配置方向与初始化
    SIM_HAL_EnablePortClock(SIM_BASE, 0); //initial PORTA clock
    //initial upkey
    GPIO_DRV_SetPinDir(kGpio_up,kGpioDigitalInput); //
    PORT_HAL_SetMuxMode(PORTA_BASE,0x18, kPortMuxAsGpio);
    GPIO_DRV_InputPinInit(upkey);
    其他端口类似配置
    (4)LCD配置与初始化
    /* Initialize standard SDK demo application pins */
    for (i = 0; i < HW_PORT_INSTANCE_COUNT; i++) {
    CLOCK_SYS_EnablePortClock(i);
    }
    lcd_flexbus_init();
    CLOCK_SYS_GetFreq(kFlexBusClock,&freq);
    LCDC_Init();
    (5)设置指针指向图片信息,并拷贝图片数据到SDRAM中
    //Copy image data to sram
    for(i=0; i<320*240; i++)
    {
    p1 = *((uint16_t *)&gImage_ecbc[j]);;
    j+=2;
    }
    LCDC_Bmp(0,0,320,240,(unsigned short *)p1);
    //for(i=0;i<1000000;i++);
    (6)进入主循环,获取按键的信息,分别显示对应的按键图片
    while(1)
    {
    upkey_value=GPIO_DRV_ReadPinInput(kGpio_up);
    downkey_value=GPIO_DRV_ReadPinInput(kGpio_down);
    leftkey_value=GPIO_DRV_ReadPinInput(kGpio_left);
    rightkey_value=GPIO_DRV_ReadPinInput(kGpio_right);
    selectkey_value=GPIO_DRV_ReadPinInput(kGpio_select);
    //
    if(upkey_value == 0)
    {
    //LCDC_Init();
    j=0;
    for(i=0; i<320*240; i++)
    {
    p1 = *((uint16_t *)&gImage_up[j]);;
    j+=2;
    }
    LCDC_Bmp(0,0,320,240,(unsigned short *)p1);
    //for(i=0;i<10000000;i++);
    for(i=0;i<100;i++);
    //LCDC_Init();
    }
    其他按键类似
    实验现象:
    如下图所示
    (1)上电初始化



    (2)按向上的按键



    (3)按向下的按键



    (4)按向左的按键



    (5)按向右的按键

    (6)按中间的按键



    恩智浦MAPS四色板体验(一)
    https://www.nxpic.org.cn/module/forum/thread-605169-1-1.html
    恩智浦MAPS四色板体验(二)
    https://www.nxpic.org.cn/module/forum/thread-605170-1-1.html
    签到 签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-5-9 08:12
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    34

    主题

    801

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2364
    最后登录
    2021-8-11
    发表于 2016-6-29 13:32:48 | 显示全部楼层
    mark           
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 21:33
  • 签到天数: 2450 天

    连续签到: 6 天

    [LV.Master]伴坛终老

    17

    主题

    5331

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    11263
    最后登录
    2025-7-18
    发表于 2016-6-29 18:44:00 | 显示全部楼层
    轉載的吧。。。
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-19 01:28 , Processed in 0.087739 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表