ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:16.48KB ,
资源ID:11859163      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11859163.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(LLLM平台软件设计小结.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

LLLM平台软件设计小结.docx

1、LLLM平台软件设计小结LL、LM平台软件设计小结在平台设计过程中我们不断学习研究,一步一步的为平台建设积累经验方法。短短的几个星期,我们从数据手册开始,逐步开始软件平台的建设。从头文件的定义到函数名的确定,从基本功能的实现到函数功能的优化,从底层软件的整合到各个模块功能联调,我们从中学到了知识,得到了提高,完善了平台建设的思想方法。总结归纳失败的经验如下几点:1.ADC函数模块我们在ADC滤波中调用采样函数,为减少全局变量的定义和使用,我们将采样值以返回数组首地址的形式返回给指针类型的函数名以备滤波时使用。经仿真证明该方法有效。#if ADC/*Function: ADC_Init() De

2、scription: Calls: Called By: Input: Output: Return: Others: */void ADC_Init(void) ADCON0 = 0x01; /使能ADC,连接任何通道0 ADCON1 = 0x90; /右对齐,转换时钟Fosc/8,VREF+=VDD,VREF-=VSS/*Function: ADC_Sample() Description: 实现对指定AD通道进行数据采集,将数据存于数组中 Calls: Called By:API_ADC_Filter() Input: AD采集通道 Output: Return: Others: */u

3、nsigned int *ADC_Sample(unsigned char Channel, unsigned char Sample_Times) unsigned char i; unsigned int Adc_Data12; GO_nDONE = 1; for (i=0; iSample_Times; i+) ADCON0bits.CHS = Channel;/AD采集通道选择 if (!GO_nDONE) GO_nDONE = 1; Adc_Datai = ADRESH; Adc_Datai = Adc_Datai 8 |ADRESL; GO_nDONE=0; return &Adc

4、_Data0;/*Function: API_ADC_Filter() Description: Calls: ADC_Sample() Called By: Input: AD采集通道 Output: Return: AD滤波结果 Others: */unsigned int API_ADC_Filter(unsigned char Channel) unsigned char Filter_Method; unsigned int *pData; unsigned char Sample_Times; Filter_Method = Adc_Table0Channel; /滤波方式选择 S

5、ample_Times = Adc_Table1Channel; /采集次数 pData = ADC_Sample(Channel, Sample_Times); /*滤波处理*/ if(Filter_Method = 0) /中位值平均滤波法 unsigned char i; unsigned int Adc_Max,Adc_Min,Adc_Result; Adc_Max = 0; Adc_Min = 0xffff; Adc_Result = 0; for (i=0; i Adc_Max) Adc_Max = *pData; if (*pData Adc_Min) Adc_Min = *pD

6、ata; Adc_Result += *pData; pData+; Adc_Result = (Adc_Result - Adc_Max - Adc_Min) / (Sample_Times-2); return Adc_Result; else if(Filter_Method = 1) /中位值滤波法 unsigned char i,j; unsigned int Adc_Result,Buf12; for (i = 0; i Sample_Times; i+) Bufi=*(pData + i); for (i = 0; i Sample_Times - 1; i+) for (j =

7、 0; j Bufj+1) Bufj = Bufj+1; Bufj+1 = Bufj; Bufj = Bufj+1; if(Sample_Times%2) Adc_Result = Buf(Sample_Times - 2)/2; else Adc_Result = Buf(Sample_Times - 1)/2; return Adc_Result; else return 0; /*滤波处理结束*/#endif2.CCP模块(输入捕获、输出比较、PWM输出)之前设计的捕获和PWM函数功能不够完善,对于捕获函数我们将函数分为初始化、中断处理、有效参数返回三大块。在配置的过程中我们在不断犯错的

8、过程中不断研习相关数据手册,总结在改编输入捕获的模式的时候要先关闭输入捕获中断允许位,防止产生错误中断,且要先关闭该模块然后重新设置模块的工作方式(哪个调变沿产生中断)。最终在不断仿真调试后不断修改完成相对比较完整使用的输入捕获函数底层软件的编写。对于PWM我们,在按照数据手册设计的函数不符合实用要求,我们尝试改变设置方法,调整相关寄存器设置,将该模块分为时钟初始化函数,PWM初始化函数和占空比设置函数。实现了占空比(0100)%可调。#if CCP1 = 3/*Function: Pwm_Channel1_SetDuty() Description:设置标准型PWM通道1参数 Calls:

9、Called By: Input: Output: Return: Others: */ void Pwm_Channel1_Init(void) TRISC1=1; /禁止CCP1 引脚输出驱动器。 CCP1CONbits.CCP1M=0x0c; /配置为标准PWM PR2=TIM2_Period; /周期设置 T2CONbits.T2CKPS=TIM2_Prescaler; /设置timer2预分频比0,1,2,3 Pwm_Channel1_SetDuty(0); /默认占空比0% CCPTMRS0bits.C1TSEL=0; /CCP1以Timer2为时基 TMR2IF=0; /清除定时

10、器2中断标志位 TMR2ON=1; /使能定时器2 while(!TMR2IF); /等待定时器2上溢中断 TRISC1=0; /使能CCP1 引脚输出驱动器。 void Pwm_Channel1_SetDuty(unsigned char Duty) unsigned int temp1; unsigned int temp; temp1=(TIM2_Period+1)*4); temp=temp1*Duty/100; CCPR1L=(unsigned char) (temp2); /占空比高八位设置 CCP1CONbits.DC1B=(unsigned char) temp; /占空比低两

11、位设置/*Function: Pwm_Channel1_On() Description:设置标准型PWM通道1参数 Calls: Called By: Input: Output: Return: Others: */ void Pwm_Channel1_On() CCP1CONbits.CCP1M=0x0c; /使能CCP1(PWM) /使能CCP1 引脚输出驱动器。 /*Function: Pwm_Channel1_Off() Description:设置标准型PWM通道1参数 Calls: Called By: Input: Output: Return: Others: */ void Pwm_Channel1_Off() CCP1CONbits.CCP1M=0x00; /禁止CCP1(PWM) /使能CCP1 引脚输出驱动器。 #endif其他模块函数功能我们也将在不断的调试过程中进行有效的改进和完善,为平台建设积累经验不断完善平台的同时也不断的努力提高自己的实际工作能力和水平。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1