查看: 4949|回复: 6

[MPC] 【MPC5602开发笔记】流水灯

[复制链接]
  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16697
    最后登录
    1970-1-1
    发表于 2016-2-24 23:10:44 | 显示全部楼层 |阅读模式
    前面学习了GPIO的位操作功能,发现还有并行输入输出功能,这样可以一次读写多个引脚数据。
    经过学习测试,今天给大家分享一下并行输出功能实现的流水灯效果。

    1、来看下电路,发现三个灯分别接了D5、D6、D7,三个引脚,要想实现一次轮流点亮,可以使用移位效果。
    0080.png
    对应的引脚位置
    0081.png

    2、来看看并行输入和输出的相关寄存器
    0082.png
    输出功能使用的是PGPDO寄存器,每个32位,即可存储32个引脚状态
    0083.png
    那D5-D7引脚在什么地方呢?
    0086.png

    3、新建工程
    0084.png
    写入程序
    0085.png
    全部程序如下:
    1. #include "MPC5602P.h"

    2. #define LED                                       SIU.PGPDO[1].R

    3. void initModesAndClock(void) {
    4.   ME.MER.R = 0x0000001D;          /* Enable DRUN, RUN0, SAFE, RESET modes */

    5.   CGM.CMU_0_CSR.R = 0x000000004;  /* Monitor FXOSC > FIRC/1 (4MHz); no PLL monitor*/
    6.   CGM.FMPLL[0].CR.R = 0x22400100; /* 8 MHz xtal: Set PLL0 to 64 MHz */   
    7.   ME.RUN[0].R = 0x001F0074;       /* RUN0 cfg: 16MHzIRCON,OSC0ON,PLL0ON,syclk=PLL0 */

    8.   ME.MCTL.R = 0x40005AF0;         /* Enter RUN0 Mode & Key */
    9.   ME.MCTL.R = 0x4000A50F;         /* Enter RUN0 Mode & Inverted Key */  
    10.   
    11.   while (ME.GS.B.S_MTRANS == 1) {}    /* Wait for mode transition to complete */   

    12.   while(ME.GS.B.S_CURRENTMODE != 4) {} /* Verify RUN0 is the current mode */
    13. }

    14. void disableWatchdog(void) {
    15.   SWT.SR.R = 0x0000c520;     /* Write keys to clear soft lock bit */
    16.   SWT.SR.R = 0x0000d928;
    17.   SWT.CR.R = 0x8000010A;     /* Clear watchdog enable (WEN) */
    18. }

    19. void initLedGpio(void) {
    20.   SIU.PCR[53].R = 0x0220;           //PD5设置为输出模式
    21.   SIU.PCR[54].R = 0x0220;           //PD6设置为输出模式
    22.   SIU.PCR[55].R = 0x0220;           //PD7设置为输出模式
    23.   
    24.   LED |= 0x00000700;
    25. }

    26. void timeDelay(void) {
    27.   vuint32_t i;
    28.   for (i = 0; i < 300000; i++) {}
    29. }

    30. int main(void) {
    31.   vuint32_t ledtemp = 0x00000400;
    32.        
    33.   initModesAndClock();
    34.   disableWatchdog();
    35.   initLedGpio();

    36.   /* Loop forever */
    37.   for (;;) {
    38.     LED = (LED | 0x00000700) & (~ledtemp);
    39.     ledtemp >>= 1;
    40.     if (ledtemp == 0x00000080) {
    41.       ledtemp = 0x00000400;
    42.     }
    43.     timeDelay();   
    44.   }
    45. }


    复制代码


    4、演示效果:
    0001.gif

    5、工程文件:
    led_Parallel_mpc5602p.rar (146.15 KB, 下载次数: 23)
    回复

    使用道具 举报

    该用户从未签到

    145

    主题

    4926

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9267
    最后登录
    1970-1-1
    发表于 2016-2-25 09:59:48 | 显示全部楼层
    感谢楼主的经验分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2016-2-26 09:22:50 | 显示全部楼层
    感谢楼主的分享
    nxpic.org.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-5-29 08:54
  • 签到天数: 2992 天

    连续签到: 8 天

    [LV.Master]伴坛终老

    45

    主题

    5548

    帖子

    22

    金牌会员

    Rank: 6Rank: 6

    积分
    12035
    最后登录
    2025-5-29
    发表于 2016-3-4 19:04:16 | 显示全部楼层
    板子看着小巧玲珑的。
    签到签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16697
    最后登录
    1970-1-1
     楼主| 发表于 2016-3-4 20:32:53 | 显示全部楼层
    limale 发表于 2016-3-4 19:04
    板子看着小巧玲珑的。

    是的,挺小的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    70

    帖子

    0

    注册会员

    Rank: 2

    积分
    141
    最后登录
    2016-3-17
    发表于 2016-3-10 18:46:06 | 显示全部楼层
    学习了,辛苦作者了,写的这么详细,谢谢分享!
    logo.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    0

    新手上路

    Rank: 1

    积分
    7
    最后登录
    2019-1-9
    发表于 2019-1-9 13:47:50 | 显示全部楼层
    顶顶顶顶顶顶顶顶!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-18 22:10 , Processed in 0.101167 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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