- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用GPT1作为中断源触发PEC传输.PDF
样例程序:PEC 模块使用
1.简介:本程序实现功能如下:
使用GPT1 作为中断源触发PEC 传输,PEC 将软件中的定义的一个数组的数据传输到
另一个数组。传输次数为 10,传输完成后,触发 End of PEC 中断,重置 PEC ,继续传
输。
2 .PEC 介绍
XC164CM 提供 8 路类 DMA 功能的 PEC 通道。可以由任何中断请求触发,在任意两
个内存地址之间传递字节数据或字数据。仅仅从当前 CPU 进程中“窃取”一个时钟周期去
完成,无需保存/恢复现场。占用时间少,效率高。
每路 PEC 通道拥有独立的计数器,用于指定传输的次数,当传输完指定次数后,可以
触发EOP (End of PEC) 中断。
在每次PEC 传输完成后,可以配置为自动增加源地址或目标地址,灵活性高。
关于PEC 模块功能的详细介绍,请参照XC164CM 用户手册。
3 .操作流程
开始
DAVE 配置
生成代码
添加用户程序
编译、下载、运行
4 .DAvE 配置
4 .1 New project: select XC164cm
4 .2 The project settings
System clock
4 .3 GPT1
使能模块,选择预分频系数。
配置T2 :Timer 模式,1s 定时周期,start after initialization, 使能中断。
配置T2 定时中断优先级
将GPT1 T2INT 从右边拖到左边表格中的相应位置(Level 、Group )。
PEC 配置
根据T2 定时中断的优先级,选择通道1 的中断源为GPT1 T2INT 。
配置PEC 通道 1
Decrement Counter = 10, increment destination and source point. Transfer a word
使能PEC 中断, destination 、source 地址由用户指定。
Functions
选中initialization function 已生成GPT1.c 文件
4 .4 INT 配置,生成End of PEC 中断。
配置 EOP 中断
配置EOP 中断的优先级
将EOP INT 从右边拖到左边表格中的相应位置(Level 、Group )。
Functions
选中initialization function 以生成Int.c 文件
5 利用DAVE 生成代码。
6 .修改用户代码
6 .1 生成uVsion 工程文件。
做完以上步骤之后工程文件夹中会出现 keil 图标的dpt 文件,双击进入 keil 环境。第
一次进入keil 环境需要设置:project -options for target ‘target 1’ 。如下所示:
6 .2 修改main.c
添加 while(1);
void main(void)
{
// USER CODE BEGIN (Main,2)
// USER CODE END
MAIN_vInit();
// USER CODE BEGIN (Main,4)
while(1); // 添加while(1) 。
// USER CODE END 。
6 .3 修改GPT1.c
添加定义变量
unsigned int PEC_Source[10] = {0,1,2,3,4,5,6,7,8,9}; // 源数组
unsigned int PEC_Des[10]; // 目标数组
在GPT1_vInit() 中添加 PEC 的源地址、目标地址
// USER CODE BEGIN (GPT1_Function,3)
// manual define the source and destination address
SRCP1 = _sof_(PEC_Source); //set source pointer
DSTP1 = _sof_(PEC_Des); //set destination pointer
// USER
文档评论(0)