[ZLG-ARM] 用Easyarm2200开发板上pack测频,程序如下:

[复制链接]
1826|1
 楼主| leon0001 发表于 2007-10-18 10:28 | 显示全部楼层 |阅读模式
用EasyArm2200开发板上的pack的p0.11对外部频率计数,外部频率为10M.<br />用的是LPC2200&nbsp;for&nbsp;ARM的模板,<br />其中,我已经LPC2294.h中加入了:<br />&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;#define&nbsp;T0CTCR&nbsp;&nbsp;&nbsp;0xE0004070<br />&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;#define&nbsp;T1CTCR&nbsp;&nbsp;&nbsp;0xE0008070<br />而且,已经将Fpck改为:#define&nbsp;Fpclk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Fcclk&nbsp;/&nbsp;4)&nbsp;*&nbsp;2<br />问题如下:<br />写的程序意思是,设置T1为计数模式,让T1的Cap1.1对外部频率计数,设置MR1=100,那么,当计数到100时,使蜂鸣器连续响2次。<br />&nbsp;&nbsp;但是,当我接10M的信号输入时,没有响,而且我发现根本没有进入中断。<br />&nbsp;于是,我改了一下程序,对150K的测频率,且改为查询方式,但是程序编译通过,但就是查寻不到中断标志置位,也即根本没有测频,不知道原因,<br />请教周工和各位高手。<br />程序如下:<br />#include&nbsp;&quot;config.h&quot;<br /><br />#define&nbsp;&nbsp;BEEPCON&nbsp;&nbsp;0x00000080<br /><br />void&nbsp;DelayNS(uint32&nbsp;dly)<br />{<br />&nbsp;uint32&nbsp;i;<br />&nbsp;for(;dly&gt0;dly--)<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt5000;i++);<br />}&nbsp;<br /><br />/*void&nbsp;__irq&nbsp;IRQ_Time1(void)<br />&nbsp;{<br />&nbsp;&nbsp;uint32&nbsp;i=2;<br />&nbsp;&nbsp;for(i=0;i&lt2;i++)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;IO0CLR=BEEPCON;<br />&nbsp;&nbsp;&nbsp;DelayNS(10);<br />&nbsp;&nbsp;&nbsp;IO0SET=BEEPCON;<br />&nbsp;&nbsp;&nbsp;DelayNS(10);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;T1IR=0x01;<br />&nbsp;&nbsp;VICVectAddr=0x00;<br />&nbsp;}&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />void&nbsp;Time1_Ini(void)<br />{<br />&nbsp;<br />&nbsp;&nbsp;T1PR=0;<br />&nbsp;&nbsp;T1MR1=100;<br />&nbsp;&nbsp;T1MCR=0x14;//匹配中断并产生复位<br />&nbsp;&nbsp;T1CTCR=0x05;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;T1TCR=0x03;<br />&nbsp;&nbsp;T1TCR=0x01;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;//设置定时器T0中断IRQ<br />&nbsp;&nbsp;<br />/*&nbsp;&nbsp;VICIntSelect=0x00;<br />&nbsp;&nbsp;VICVectCntl0=0x25;<br />&nbsp;&nbsp;VICVectAddr0=(uint32)IRQ_Time1;<br />&nbsp;&nbsp;VICIntEnable=0x00000020;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;int&nbsp;main&nbsp;(void)<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;i=2;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0=0x00800000;<br />&nbsp;&nbsp;&nbsp;&nbsp;IO0DIR=BEEPCON;<br />&nbsp;&nbsp;&nbsp;&nbsp;IO0SET=BEEPCON;<br />&nbsp;&nbsp;&nbsp;&nbsp;Time1_Ini();<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while((T1IR&0x02)==0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt2;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO0CLR=BEEPCON;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IO0SET=BEEPCON;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T1IR=0x02;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />}<br /><br />/*********************************************************************************************************<br />**&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;End&nbsp;Of&nbsp;File<br />********************************************************************************************************/<br /><br /><br /><br />
 楼主| leon0001 发表于 2007-10-18 11:09 | 显示全部楼层

T1MCR=0x18

呵呵,写错啦<br />又试了一下,是采用的查询方式,蜂鸣器可以响,不过好像是定时而不是计数<br />晕。<br />EasyArm2200开发板上面的cpu是LPC2220,它是可以对外部频率进行计数的,<br />周工呢,出来一下啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

139

帖子

0

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