[ZLG-MCU] 求个LM3S systick中断实例

[复制链接]
 楼主| ATmega32L 发表于 2008-2-20 11:28 | 显示全部楼层 |阅读模式
求个LM3S systick中断实例
zlgmcu 发表于 2008-2-20 13:03 | 显示全部楼层

SysTick中断示例

//&nbsp;&nbsp;SysTick中断示例<br /><br />#include&nbsp;&nbsp;&quot;hw_types.h&quot;<br />#include&nbsp;&nbsp;&quot;hw_memmap.h&quot;<br />#include&nbsp;&nbsp;&quot;hw_ints.h&quot;<br />#include&nbsp;&nbsp;&quot;hw_sysctl.h&quot;<br />#include&nbsp;&nbsp;&quot;hw_gpio.h&quot;<br />#include&nbsp;&nbsp;&quot;interrupt.h&quot;<br />#include&nbsp;&nbsp;&quot;sysctl.h&quot;<br />#include&nbsp;&nbsp;&quot;gpio.h&quot;<br />#include&nbsp;&nbsp;&quot;systick.h&quot;<br /><br />#define&nbsp;&nbsp;SysCtlPeriEn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SysCtlPeripheralEnable<br />#define&nbsp;&nbsp;GPIOPinTypeIn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinTypeGPIOInput<br />#define&nbsp;&nbsp;GPIOPinTypeOut&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinTypeGPIOOutput<br /><br />#define&nbsp;&nbsp;LED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIO_PORTB_BASE&nbsp;,&nbsp;GPIO_PIN_0<br />#define&nbsp;&nbsp;KEY_JTAG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIO_PORTA_BASE&nbsp;,&nbsp;GPIO_PIN_2<br /><br />void&nbsp;&nbsp;waitJTAG&nbsp;(&nbsp;void&nbsp;)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;SysCtlPeriEn&nbsp;(&nbsp;SYSCTL_PERIPH_GPIOA&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;使能GPIOA端口&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinTypeIn&nbsp;(&nbsp;KEY_JTAG&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置按键所在的PA2管脚为输入&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;GPIOPinRead&nbsp;(&nbsp;KEY_JTAG&nbsp;)&nbsp;&nbsp;==&nbsp;&nbsp;0x00&nbsp;)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;如果有键按下,则进入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;;&nbsp;;&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;死循环,以等待JTAG连接&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />int&nbsp;&nbsp;main&nbsp;(&nbsp;void&nbsp;)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;waitJTAG&nbsp;(&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;防止JTAG失效&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;SysCtlPeriEn&nbsp;(&nbsp;SYSCTL_PERIPH_GPIOB&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;使能GPIOB模块&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinTypeOut&nbsp;(&nbsp;LED&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置LED所在管脚为输出模式&nbsp;&nbsp;&nbsp;&nbsp;*/<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;SysTickPeriodSet&nbsp;(&nbsp;3000000UL&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置SysTick计数器的周期值&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;SysTickIntEnable&nbsp;(&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;使能SysTick中断&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;IntMasterEnable&nbsp;(&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;使能处理器中断&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;SysTickEnable&nbsp;(&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;使能SysTick计数器&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;;&nbsp;;&nbsp;)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />/*&nbsp;&nbsp;SysTick计数器的中断服务函数&nbsp;&nbsp;*/<br />void&nbsp;&nbsp;SysTick_ISR&nbsp;(&nbsp;void&nbsp;)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;ucVal&nbsp;&nbsp;=&nbsp;&nbsp;0x00&nbsp;;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinWrite&nbsp;(&nbsp;LED&nbsp;,&nbsp;ucVal&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;反转LED显示&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;ucVal&nbsp;&nbsp;^=&nbsp;&nbsp;0x01&nbsp;;<br />}<br /><br />(zlgmcu_wdx)
hotpower 发表于 2008-2-22 15:55 | 显示全部楼层

IAR环境下LM中C++类成员函数做中断函数源码下载

哈哈~~~链接错了~~~<br /> 相关链接:<a href='https://bbs.21ic.com/club/bbs/ShowAnnounce.asp?v=&ID=2853632'>https://bbs.21ic.com/club/bbs/ShowAnnounce.asp?v=&ID=2853632</a>
 楼主| ATmega32L 发表于 2008-2-22 17:23 | 显示全部楼层

下载不了

IAR环境下LM中C++类成员函数做中断函数源码下载<br />下载不了<br /><br />个人感觉C++类成员函数做中断意义不大。<br /><br />hotpower大人来研究下IAR&nbsp;C++或GCC&nbsp;C++&nbsp;AVR如何把类完全定义到FLASH里,不占用RAM空间。
hotpower 发表于 2008-2-22 18:11 | 显示全部楼层

意义确实不大~~~但能说明Cortex M3和ARM7的中断体系的不同~~~

  
hotpower 发表于 2008-2-23 07:44 | 显示全部楼层

类成员函数肯定可以完全定义到FLASH里

  
hotpower 发表于 2008-4-16 16:01 | 显示全部楼层

晕~~~程序例程源码怎么都被删除了???实在倒塌

  
平常人 发表于 2008-4-16 22:14 | 显示全部楼层

这几天二姨打扫卫生,发现一些发霉的东西,问了半天没人

估计给扔掉了。损失惨重啊,呜呜呜呜呜呜呜呜。。。。。。。。。
hotpower 发表于 2008-4-16 23:12 | 显示全部楼层

确实倒塌~~~看来以后程序源码还是要发到EDNCHINA里保存才是

晕到了~~~今天写DSP281X菜鸟C++例程想参考参考,发现全被删除了...<br /><br />看来帖子不穿裤子就可以被随意倒塌~~~<br /><br />以后看来要多发几个地方防备万一.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

144

主题

376

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部