当前位置: 首页 > news >正文

十七、从0开始卷出一个新项目之瑞萨RZN2L定时器(GPT)+DMA生成PWM的运动控制

一、概述

  • 嵌入式科普(34)通过对比看透DMA的本质
  • 分享瑞萨RZN2L使用DMA生成PWM的运动控制的例程源码

  • rzn2l必要的外设资源:

    • rzn2l拥有32-bit timer General PWM Timer (GPT) with 18 channels

    • CPU、GPT最高频率400Mhz

    • DMAC0 and DMAC1 8 channels + 8 channels

    • 还有cmt、cmtw、mtu3等其他定时器

    • ESC控制器

      图片

二、工程源码

__asm volatile ("cpsie i");

    g_timer0.p_api->open(g_timer0.p_ctrl, g_timer0.p_cfg);
    g_timer0.p_api->enable(g_timer0.p_ctrl);
    g_timer0.p_api->start(g_timer0.p_ctrl);

    g_transfer0.p_api->open(g_transfer0.p_ctrl, g_transfer0.p_cfg);

    g_transfer0_ctrl.p_cfg->p_info->p_src = (void*)&buf_left[0];
    g_transfer0_ctrl.p_cfg->p_info->p_dest = (void*)&g_timer0_ctrl.p_reg->GTPBR;//(void*)&buf_des[0];//(void*)&g_timer0_ctrl.p_reg->GTPBR;
    g_transfer0_ctrl.p_cfg->p_info->length = 40;
    g_transfer0.p_api->reconfigure(g_transfer0.p_ctrl, g_transfer0_ctrl.p_cfg->p_info);

    g_transfer0.p_api->enable(g_transfer0.p_ctrl);
    g_transfer0.p_api->softwareStart(g_transfer0.p_ctrl, (transfer_start_mode_t)0);

三、测试效果

图片

图片

图片

图片

四、总结

  • rzn2l具备实现运动控制的重要资源,可实现1Mhz的效果

  • 例程仅提供GPT+DMA的使用

图片

相关文章:

  • 实例详细演示在Pytest中如何忽略警告
  • nginx平滑升级 不暂停服务
  • TDengine 数据写入SQL
  • 在Java实际项目中什么情况才会使用到消息队列?
  • 接口自动化测试框架公共组件之测试数据管理
  • ios使用swift调用deepseek或SiliconFlow接口
  • 稚晖君级硬核:智元公司开源机器人通信框架AimRT入驻GitCode平台
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例3: 行选择
  • Golang的容器化部署实践要点与技巧总结
  • 【LeetCode 热题 100】438. 找到字符串中所有字母异位词 | python 【中等】
  • 找一款好用的手机和电脑可以同步的便签备忘录
  • 【selenium工具操作web页面中的下拉框元素 】
  • [特殊字符] Django 常用命令
  • 使用OpenCV和MediaPipe库——实现人体姿态检测
  • 【高并发】深入解析 Netty:3W 学习法 + Java 实战 + 开源项目推荐
  • 【leetcode hot 100 240】搜索二维矩阵Ⅱ
  • flutter环境最新踩坑
  • 什么是TiDB,什么是分布式数据库?它和 MySQL 比优缺点是什么?
  • 【大模型学习】第十一章 什么是算力
  • vue实现日历签到效果
  • 代理IP做网站/黑客入侵网课
  • 做网站必须用域名吗/短视频运营方案策划书
  • adobe做网站的/链接购买
  • 服务性企业网站/一站式海外推广平台
  • wordpress全自动赚钱/长沙网络优化产品
  • 开封做网站哪家好/百度seo网站优化 网络服务