7300|1

280

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【 XMC4800 Relax EtherCAT Kit测评】+上手DAVE,定时中断与UART简单应用 [复制链接]

昨天晚上发了一个简单应用UART的例子以后,本人就在琢磨如何把定时器和中断应用进去。参考了网友定时器blinky的程序,发现其实定时器用到UART中也比较简单。
分享具体的步骤如下:
1.    新建工程,添加相关的模块,其中UART的相关APP模块添加和配置可以见上一个帖子。
2.    在UART的基础上添加TIMER和INTERRUPT两个APP模块。
3.    分别对两个模块设置。TIMER的设置如下,注意要使能定时事件,这样才能连接到中断去。
4.    设置中断如下
这里需要注意中断处理句柄函数定义为UerIRQHandler(),需要在后面main程序中自行添加,定义的函数名也可以自己修改。
5.    设置TIMER的HW信号连接,将定时事件与中断连接上,配置如下图。
6.    然后修改main程序,需要定义全局变量和一个中断处理程序。具体代码如下:
  1. #include <DAVE.h>                 

  2. void UserIRQHandler();
  3. UART_STATUS_t init_status;

  4. uint8_t valid_str[] = "hello world!\n";
  5. int main(void)
  6. {
  7.   DAVE_STATUS_t status;

  8.   status = DAVE_Init();           /* Initialization of DAVE APPs  */

  9.   init_status = (UART_STATUS_t)UART_Init(&UART_0);

  10.   if(status != DAVE_STATUS_SUCCESS)
  11.   {
  12.     /* Placeholder for error handler code. The while loop below can be replaced with an user error handler. */
  13.     XMC_DEBUG("DAVE APPs initialization failed\n");

  14.     while(1U)
  15.     {

  16.     }
  17.   }

  18.   /* Placeholder for user application code. The while loop below can be replaced with user application code. */
  19.   while(1U)
  20.   {

  21.   }
  22. }


  23. void UserIRQHandler()
  24. {
  25.          
  26. if(init_status==UART_STATUS_SUCCESS){
  27.                  
  28. UART_Transmit(&UART_0, valid_str, sizeof(valid_str));
  29.                   
  30. UART_Transmit(&UART_0,"time interrupted",sizeof("time interrupted"));
  31.           
  32. }

  33. }
复制代码

7.    编译、现在运行,使用PUTTY软件,可以看到程序运行正常。
总结:计时器的应用非常简单,我们只需要设定好计时数值,这里数值是按照微秒us计算的,不用像以前还需要自己算来配置各个寄存器的值,非常方便,赞一个。
XMC4800的硬件资源非常丰富,接下来,我将考虑看看ADC和DAC的使用及DAVE相关操作。网上关于APP的使用教程不多,其实DAVE软件里相关的chm电子资料很多,都配有相关的资料参考,很方便,只要耐下心来,相信大家都能轻松驾驭。



此内容由EEWORLD论坛网友flyword原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自工控电子论坛

最新回复

楼主,我按照您的方法操作了一遍,但只能显示第一行发送的内容,就是只显示hello world! 实在搞不懂为什么,您知道问题在哪吗?     详情 回复 发表于 2020-12-2 16:37
点赞 关注
 

回复
举报

5

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

楼主,我按照您的方法操作了一遍,但只能显示第一行发送的内容,就是只显示hello world! 实在搞不懂为什么,您知道问题在哪吗?

 

此帖出自工控电子论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表