* MSP432E401Y
* Description:本函数实现定时和测速功能
* 引脚:PD0->编码器输入信号
*
* Author: Robin.J
***************************************************************************/
/* DriverLib Includes */
#include /* Standard Includes */ #include uint32_t count = 0; //uint32_t count1 = 0; //uint32_t count2 = 0; uint32_t CNT1 = 0; uint32_t CNT2 = 0; int speed = 0; uint32_t time1 = 0; void TIMER2A_IRQHandler(void) { uint32_t getTimerInterrupt; count++;//脉冲计数,高电平触发 // count1 = MAP_TimerValueGet(TIMER2_BASE,TIMER_B); // count2 = MAP_TimerLoadGet(TIMER2_BASE,TIMER_B); /* Get timer interrupt status and clear the same */ getTimerInterrupt = MAP_TimerIntStatus(TIMER2_BASE, true); MAP_TimerIntClear(TIMER2_BASE, getTimerInterrupt); } void TIMER1A_IRQHandler(void) { uint32_t getTimerInterrupt; // CNT1 = count; // CNT2 = CNT1; // speed = ((CNT1 - CNT2)/506) * 6000; // count = 0; time1++;//计时,每10ms增1 if(time1 == 10){ CNT1 = count; }if(time1 == 20){ CNT2 = count; //count1 = CNT2 - CNT1; speed = (int)(((CNT2 - CNT1)/506.0) * 600); //count = 0; time1 = 0; count = 0; } // s_r = speed; // pid_r = IncPIDCalc_r(s_r); // pid_r *= 0.01; // pwm_pidr += pid_r; // if(pwm_pidr > 0.99){ // // pwm_pidr = 0.99; // // } // // PWM_init(pwm_pidl,0.8); /* Get timer interrupt status and clear the same */ getTimerInterrupt = MAP_TimerIntStatus(TIMER1_BASE, true); MAP_TimerIntClear(TIMER1_BASE, getTimerInterrupt); } void GPT_init(void) { MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); while(!(SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOA))) { } MAP_GPIOPinConfigure(GPIO_PA4_T2CCP0); MAP_GPIOPinTypeTimer(GPIO_PORTA_BASE, GPIO_PIN_4); MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER2); while(!(SysCtlPeripheralReady(SYSCTL_PERIPH_TIMER2))) { } MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER1); while(!(SysCtlPeripheralReady(SYSCTL_PERIPH_TIMER1))) { } MAP_TimerConfigure(TIMER2_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_CAP_TIME_UP); MAP_TimerIntEnable(TIMER2_BASE, TIMER_CAPA_EVENT); MAP_TimerControlEvent(TIMER2_BASE, TIMER_A, TIMER_EVENT_POS_EDGE); MAP_TimerConfigure(TIMER1_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_PERIODIC); MAP_TimerIntEnable(TIMER1_BASE, TIMER_TIMA_TIMEOUT); /* Since the 16-bit timer can count only 65536 value, we use the pre * scaler of 256 to divide down the count rate by 256. Thus the actual * count load is16e6/256 = 62500. Now when to count at 0.1 sec the * load value in the timer would be 62500 * 0.1 =6250. */ MAP_TimerPrescaleSet(TIMER1_BASE, TIMER_A, 255); MAP_TimerLoadSet(TIMER1_BASE, TIMER_A, 625);//10ms /* Enable Timer Interrupt */ MAP_IntEnable(INT_TIMER2A); MAP_IntEnable(INT_TIMER1A); /* Enable the timer count */ MAP_TimerEnable(TIMER2_BASE, TIMER_A); MAP_TimerEnable(TIMER1_BASE, TIMER_A); } /******************* (C) COPYRIGHT 2018 DY EleTe *****END OF FILE************/
上一篇:MSP432学习笔记:IAR的环境配置(官方demo程序的测试)
下一篇:MSP432时钟系统CS
推荐阅读
史海拾趣
Alorium Technology是一家总部位于美国俄亥俄州的公司,致力于提供用于嵌入式系统的可编程硬件和软件解决方案。以下是Alorium Technology公司发展的相关故事:
创立和初期发展: Alorium Technology公司成立于2013年,由Jeff Waters博士和John Dey共同创立。公司最初的目标是开发基于FPGA(可编程门阵列)技术的解决方案,用于提高嵌入式系统的性能和灵活性。通过创始团队的技术专长和市场洞察力,公司迅速吸引了投资者的注意,并在成立后不久获得了初步资金支持。
FPGA技术应用: Alorium Technology专注于开发基于FPGA的解决方案,以解决嵌入式系统中的性能和灵活性挑战。他们开发了一系列产品,包括FPGA模块、开发工具和软件库,为客户提供了简化的嵌入式系统设计和开发流程。这些产品广泛应用于工业控制、物联网、机器人技术和自动化系统等领域。
发展合作伙伴关系: 随着业务的不断发展,Alorium Technology开始与其他公司建立合作伙伴关系,以扩大其产品在市场上的影响力。他们与传感器制造商、嵌入式系统开发者和工业自动化公司等合作,共同推动技术创新,并开发定制化的解决方案,以满足不同行业的需求。
不断创新: Alorium Technology不断进行技术创新,推出新的产品和解决方案,以适应不断变化的市场需求。他们持续改进现有产品的性能和功能,并不断探索新的应用领域。公司在FPGA技术的基础上,积极探索人工智能、边缘计算和机器学习等新兴领域,为客户提供更多选择。
社区参与和知识分享: Alorium Technology积极参与嵌入式系统开发社区,并通过各种途径分享知识和经验。他们举办在线研讨会、技术培训课程和技术博客,与客户和合作伙伴分享最新的技术趋势和解决方案案例。同时,公司也积极参与行业展会和活动,与同行业交流经验,拓展业务网络。
以上是Alorium Technology公司发展的相关故事,展示了他们在嵌入式系统领域的创新和成就。
随着市场竞争的加剧和客户需求的不断提高,Etco Inc公司意识到品质管理对于企业发展的重要性。为此,公司投入大量资源加强品质管理体系建设,引进先进的生产设备和检测仪器,确保产品质量的稳定性和可靠性。同时,Etco还加强了员工培训和技能提升,提高了员工的品质意识和操作技能。这些举措使Etco的产品质量得到了显著提升,赢得了客户的广泛赞誉。
进入21世纪后,Etco Inc公司意识到全球化趋势的不可逆转。为了拓展国际市场,公司决定实施全球化战略。首先,公司在美国本土之外建立了多个生产基地和研发中心,以便更好地满足全球客户的需求。其次,Etco加强了与国际客户的合作与交流,积极参与国际展览和研讨会,提高了品牌知名度和影响力。这些举措使Etco在全球电子连接器市场中的份额不断攀升。
在快速发展的同时,BOCA公司始终不忘履行社会责任。公司积极参与公益事业,捐赠资金支持教育、环保等项目。此外,BOCA还致力于推动绿色生产,采用环保材料和工艺,减少对环境的影响。这些举措不仅提升了公司的社会形象,也增强了员工的归属感和凝聚力。
这些故事虽然是虚构的,但它们反映了电子行业发展中的一些常见趋势和策略。在实际的电子行业中,许多公司也经历过类似的发展阶段和挑战。当然,每个公司的发展道路都是独特的,BOCA公司如果真实存在,其发展过程也必然有其独特之处。
Heyco非常重视与合作伙伴的关系建设。2021年,Heyco将年度全球最佳分销商称号授予了电子元器件分销商贸泽电子,以表彰其在过去一年中不懈的努力和出色的销售业绩。这一奖项的颁发不仅体现了Heyco对贸泽电子的高度认可,也展示了双方之间深入、愉快的合作关系。通过与贸泽电子等优秀分销商的紧密合作,Heyco能够更好地服务全球客户,满足其多样化的需求。
随着全球化趋势的加剧,Heyco开始积极拓展海外市场。公司在欧洲市场取得长足发展的同时,也逐步进入北美和亚太地区。通过在全球各地建立销售网络和生产基地,Heyco实现了产品的全球化生产和销售。这一战略不仅提升了公司的市场份额,还进一步巩固了其在电子工业备品备件销售领域的领先地位。
给初学者的一点建议:推荐一本好书《8051单片机实践与应用全书》 我学51的时候 汇编的教材最少也读了7~8遍,书上都写满了51教材都是大同小异,刚学51的同志们就是要多多的看51教材,老是看一本没劲,发一本新的给大家看看啊。… 查看全部问答∨ |
|
我找到一款功能不错的PCB设计软件,叫EAGLE,是德国一家叫CadSoft的公司研发的,这个软件有四个版本,专业版,标准版,免费试用版和简化版。专业版支持255个绘图层,带有自动布线功能,而且还可以导入其他设计工具或程序的数据,生成Gerber和Excell ...… 查看全部问答∨ |
三星2416在WINCE5.0上的休眠问题,头大了。。高手进来看看。。 能够正常进入休眠模式,但是唤醒后无论有没有操作,过一小会就出现异常并死机,串口打印如下信息: 红色的是没有操作死机的打印信息: Data Abort: Thread=83f7f6d0 Proc=815fb580 \'device.exe\' AKY=00000005 PC=8039bd50(NK.EXE+0x0019bd50) ...… 查看全部问答∨ |
关于CeSeekDatabase函数的用法(WINCE自带数据库) 这样一个数据表 材料 直径 号码 长度 Q235 10 1 15 Q235 10 2 21 . . . #45 5&n ...… 查看全部问答∨ |
写了一个小的应用程序,通过修改注册表,设置成开机自动运行.(我用vs2005远程跑是没问题的) 可是,开机时会卡在log界面上.请问下高手,问题在哪里? 添加注册表如下: [HKEY_LOCAL_MACHINE\\init] "Launch50"="startup.exe" "Depend50"= ...… 查看全部问答∨ |
现在我的系统中使用的字型文件是一个名叫:mingliu.ttc的字型文件(这个是一个能支持繁体中文的字型文件)。现在我把系统的字体修改为:使用New Times Roman字型,这样就会出现一个问题,在显示中文的地方就会出现口口(框框)不能正常显示。这应该 ...… 查看全部问答∨ |
请大家帮我看一下这个电路图,最开始用推荐设计上的MOS管IRF7822,发现容易被击穿,一看原来是VDSS超过了规定的最大值30V,于是我换了一个和IRF7822参数基本相同的MOS管,只是耐压值为40V,一切都很正常!最近我又用力一个耐压值为60V的IRF7855替换 ...… 查看全部问答∨ |
我用的是CROSS—2.95.3,编译1.1.2没问题,但编译1.1.4老是不能,出现在cc1: invalid option \'abi=apcs-gnu\'错误,把编译系统换成CROSS-3.2也还是同样的问题。今天试了下CROSS-3.3.2也还是同样的问题。 是编译系 ...… 查看全部问答∨ |