-
期待中...
-
那去做销售?
-
可以考虑赞助一下楼主
sinadz 发表于 2010-9-8 18:54
-
这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套。
图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断“挂起请求寄存器”,最后经过编号4的与门输出到NVIC中断控制器;在这个通道上有4个控制选项,外部的信号首先经过边沿检测电路,这个边沿检测电路受上升沿或下降沿选择寄存器控制,用户可以使用这两个寄存器控制需要哪一个边沿产生中断,因为选择上升沿或下降沿是分别受2个平行的寄存器控制,所以用户可以同时选择上升沿或下降沿,而如果只有一个寄存器控制,那么只能选择一个边沿了。
接下来是编号3的或门,这个或门的另一个输入是“软件中断/事件寄存器”,从这里可以看出,软件可以优先于外部信号请求一个中断或事件,既当“软件中断/事件寄存器”的对应位为“1”时,不管外部信号如何,编号3的或门都会输出有效信号。
一个中断或事件请求信号经过编号3的或门后,进入挂起请求寄存器,到此之前,中断和事件的信号传输通路都是一致的,也就是说,挂起请求寄存器中记录了外部信号的电平变化。
外部请求信号最后经过编号4的与门,向NVIC中断控制器发出一个中断请求,如果中断屏蔽寄存器的对应位为“0”,则该请求信号不能传输到与门的另一端,实现了中断的屏蔽。
明白了外部中断的请求机制,就很容易理解事件的请求机制了。图中红色虚线箭头,标出了外部事件信号的传输路径,外部请求信号经过编号3的或门后,进入编号5的与门,这个与门的作用与编号4的与门类似,用于引入事件屏蔽寄存器的控制;最后脉冲发生器把一个跳变的信号转变为一个单脉冲,输出到芯片中的其它功能模块。
在这张图上我们也可以知道,从外部激励信号来看,中断和事件是没有分别的,只是在芯片内部分开,一路信号会向CPU产生中断请求,另一路信号会向其它功能模块发送脉冲触发信号,其它功能模块如何相应这个触发信号,则由对应的模块自己决定。
在图上部的APB总线和外设模块接口,是每一个功能模块都有的部分,CPU通过这样的接口访问各个功能模块,这里就不再赘述了。
--------------------------------------------引自网络
-
请问10楼,有没有直接操作寄存器的ADC例程。有的话,给我发一份。
我的邮箱:chenyili2007@qq.com
谢谢。
-
up!
:)))!
-
我一般用SQLCE或SQLite
-
#include
#include
void port_init(void)
{
……
}
void init_devices(void)
{
……
}
main()
{
char a,b,c;
a = b = c =0;
init_devices();
while(c ==0)
{
EEARH =0x00;
if((EECR &0x02) ==0)
{
……
}
if(a ==1)
{
if((EECR &0x02) ==0) /*运行到这里的时候,因为还没有执行完EEPROM的写操作,所以条件不成立,不会执行下面的语句*/
{
EEARL =0x02;
EECR |=0x02;
b =EEDR;
}
}
c =3;/*直接跳到这里了,并退出这个while循环*/
break;
}
while(b ==0x08)
{
PORTA = 0x00;
}
}
-
不错啊!呵呵呵呵呵呵 !!值得推荐!!!
-
如果做一个产品就有问题了,要提供一个外接的uart接口,协议是标准的,字节数必须完全正确才行。DMA控制器真的不能发送任意长度的字节数吗?
-
逻辑上的悖论啊
我记得光盘有时候可以播放,但不能复制,可对于高手,一样复制
-
最近程序跑着跑着,就跑到这里来了HardFault_Handler。
郁闷呀!不知道是不是晶振没有设对,引起的。
-
uchar 是下面这个定义
typedef unsigned char uchar;
-
2楼的朋友这个判断程序怎么写?郁闷中~~~~~
-
那么如何设置活动平台呢?
-
引用 2 楼 kyzf 的回复:
配置为I2C特殊功能吧,另外对应的时钟线 和数据线上拉;
帮顶下,MARK,学习下
不是配置成IIC,就是当SPI用
-
跟系统定制时组件的选择有关
-
引用 1 楼 schlafenhamster 的回复:
\Keil\C51\ 要用DLL?PC机上吧?
是的 这个我已经找到了 要重新下个DLL
但是我现在又有东西找不到了
dpj6
请问有人知道哪有下么?
-
引用 15 楼 veabol 的回复:
WINCE在启动过程中会有个系统请求,需要OEM层回复系统是否要清除已保存的注册表,你可以在EBOOT和OAL层加些代码,在EBOOT传一个全局变量给OAL层,让OAL层来清除注册表,这样当系统启动不了的时候你在EBOOT设置一下,然后启动WINCE过程中会清除注册表。这样也可以确定是否真的是注册表损坏。
lz是个大家啊,学习了学习了
-
请查收