AVR��Ƭ�C(j��)�����Д�ϵ�y(t��ng)
�Д�ă�(y��u)�c(di��n)
�Дຯ��(sh��)ֻ���Д��|�l(f��)Դ�|�l(f��)�ĕr��ŕ���(zh��)��,�����r�g����(zh��)��. �����ʹ���Д�������Ҫ����(j��)ij���˿ڵ�׃����������(y��ng)�ĺ���(sh��)����,�ͱ�횲���ز�ԃ�˿ڵ���̖,���Д��,ֻҪ�˿�һ��׃��,�͕�ϵ�y(t��ng)�͕��Ԅ��M(j��n)���Дຯ��(sh��), ���X���@�����Д��Ŀ��,Ҳ�ǃ�(y��u)�c(di��n).
�Д���(y��u)�ȼ�
1) AVR��Ƭ�C(j��)��ͬһ����(y��u)�ȼ���,�Д�������ڵ�ַԽ��,�䃞(y��u)�ȼ�Խ�ߡ�AVR��Ƭ�C(j��)��푑�(y��ng)�Д��Ժ�,����ֹϵ�y(t��ng)푑�(y��ng)�����Дࡣ���������Ҫ��ij���Д����(w��)������푑�(y��ng)�����Д��¼�,������ԓ�Д����(w��)������������ʹ��ȫ���Д༴������t,AVR��Ƭ�C(j��)ֻ�����˳��Д��M(j��n)�̕r,������ʹ��ȫ���Дࡣ
2) AVR(������ATmega16)��Ƭ�C(j��)���ù̶���Ӳ����(y��u)�ȼ���ʽ����֧��ͨ�^ܛ�����Д���(y��u)�ȼ������O(sh��)����
AVR�в�ͬ���Д�Դ��ÿ���Д�͏�(f��)λ�ڳ�����g���Ъ�(d��)�����Д����������е��Д��¼������Լ���ʹ��λ����(d��ng)ʹ��λ��λ���Ҡ�B(t��i)�Ĵ�����ȫ���Д�ʹ��λI Ҳ��λ�r���Д���l(f��)����
3) AVR��Ƭ�C(j��)���Д���(y��u)�ȼ�ֻ��ͬ�r�|�l(f��)�Д��r ��(y��u)�ȼ��ߵ��Д����M(j��n)��̎��,������51��Ƭ�C(j��)�еͼ��e���Д�ܴ����e���Д�,��AVR��Ƭ�C(j��)�еͼ��e���Д��s����
�Д����P(gu��n)�Ĵ���
1.MCUCR����MCU���ƼĴ���
SM2 SE SM1 SM0 ISC11 ISC10 ISC01 ISC00
λ3,2����ISC11,ISC10���Д��|�l(f��)��ʽ����1 λ1�cλ0
�ⲿ�Д�1�����_INT1���l(f��)�����SREG�Ĵ�����I��(bi��o)־λ������(y��ng)���Д�����λ��λ��Ԓ���ڙz�y߅��ǰMCU���Ȳɘ�INT1���_�ϵ��ƽ������x����߅���|�l(f��)��ʽ���ƽ׃���|�l(f��)��ʽ����ô���m(x��)�r�g����һ���r����ڵ��}�_���|�l(f��)�Д����^�̵��}�_�t���ܱ��C�|�l(f��)�Дࡣ����x����ƽ�|�l(f��)��ʽ����ô���ƽ��횱��ֵ���(d��ng)ǰָ���(zh��)����ɡ�
ISC11 ISC10 �f��
0 0 INT1����ƽ�r�a(ch��n)���Д�Ո��
0 1 INT1���_�������߉�ƽ׃���������l(f��)�Д�
1 0 INT1���½��خa(ch��n)�������Д�Ո��
1 1 INT1�������خa(ch��n)�������Д�Ո��
λ1,0�CISC01,ISC00���Д�0�|�l(f��)��ʽ����λ 1�cλ0
�ⲿ�Д�0�����_INT0���l(f��)�����SREG�Ĵ�����I��(bi��o)־λ������(y��ng)���Д�����λ��λ��Ԓ���ڙz�y߅��ǰMCU���Ȳɘ�INT0���_�ϵ��ƽ������x����߅���|�l(f��)��ʽ���ƽ׃���|�l(f��)��ʽ����ô���m(x��)�r�g����һ���r����ڵ��}�_���|�l(f��)�Д����^�̵��}�_�t���ܱ��C�|�l(f��)�Дࡣ����x����ƽ�|�l(f��)��ʽ����ô���ƽ��횱��ֵ���(d��ng)ǰָ���(zh��)����ɡ�
ISC01 ISC00 �f��
0 0 INT0����ƽ�r�a(ch��n)���Д�Ո��
0 1 INT0���_�������߉�ƽ׃���������l(f��)�Д�
1 0 INT0���½��خa(ch��n)�������Д�Ո��
1 1 INT0�������خa(ch��n)�������Д�Ո��
2.MCUCSR����MCU�����c��B(t��i)�Ĵ���
JTD ISC2 �C JTRF WDRF BORF EXTRF PORF
λ6����ISC2:�Д�2�|�l(f��)��ʽ����
�������Д�2���ⲿ���_INT2���������SREG�Ĵ�����I��(bi��o)־��GICR�Ĵ�������(y��ng)���Д�����λ��λ��Ԓ����ISC2��0��INT2���½��ؼ����Д�����ISC2��1��INT2�������ؼ����Д���INT2��߅���|�l(f��)��ʽ�Ǯ�������ֻҪINT2���_�Ϯa(ch��n)�����ȴ���Table 36��ʾ��(sh��)��(j��)���}�_�͕����l(f��)�Д������x���˵��ƽ�Д࣬���ƽ��횱��ֵ���(d��ng)ǰָ�������
Ȼ��ŕ��a(ch��n)���Д�������ֻҪ�����_���ͣ��͕����l(f��)�Д�Ո������׃ISC2�r�п��ܰl(f��)���Д�����˽��h�����ڼĴ���GICR���������(y��ng)���Д�ʹ��λINT2��Ȼ���ٸ�׃ISC2�����Ҫ��ӛ������ʹ���Д�֮ǰͨ�^��GIFR�Ĵ���������(y��ng)�Д���(bi��o)־λINTF2��'1����������
3.GICR����ͨ���Д���ƼĴ���
INT1 INT0 INT2 �C �C �C IVSEL IVCE
λ7����INT1��ʹ���ⲿ�Д�Ո��1
��(d��ng)INT1��'1�������Ҡ�B(t��i)�Ĵ���SREG��I��(bi��o)־��λ������(y��ng)���ⲿ���_�Д��ʹ������MCUͨ�ÿ��ƼĴ����CMCUCR���Д������ƽ����1λ1/0(ISC11�cISC10)�Q���Д��������������½��أ�߀��INT1�ƽ�|�l(f��)����ֻҪʹ������ʹINT1���_�����Þ�ݔ����ֻҪ���_�ƽ�l(f��)��������(y��ng)��׃�����Д����a(ch��n)����
λ6����INT0��ʹ���ⲿ�Д�Ո��0
��(d��ng)INT0��'1�������Ҡ�B(t��i)�Ĵ���SREG��I��(bi��o)־��λ������(y��ng)���ⲿ���_�Д��ʹ������MCUͨ�ÿ��ƼĴ����CMCUCR���Д������ƽ����0λ1/0(ISC01�cISC00)�Q���Д��������������½�����߀��INT0�ƽ�|�l(f��)�ġ�ֻҪʹ������ʹINT0���_�����Þ�ݔ����ֻҪ���_�ƽ�l(f��)��������(y��ng)��׃�����Д����a(ch��n)����
λ 5����INT2:ʹ���ⲿ�Д�Ո��2
��(d��ng)INT2��'1�������Ҡ�B(t��i)�Ĵ���SREG��I��(bi��o)־��λ������(y��ng)���ⲿ���_�Д��ʹ������MCUͨ�ÿ��ƼĴ����CMCUCR���Д������ƽ����2λ1/0(ISC2�cISC2)�Q���Д��������������½�����߀��INT2�ƽ�|�l(f��)����ֻҪʹ������ʹINT2���_�����Þ�ݔ����ֻҪ���_�ƽ�l(f��)��������(y��ng)��׃�����Д����a(ch��n)����
4.GIFR����ͨ���Д���(bi��o)־�Ĵ���
INTF1 INTF0 INTF2 �C �C �C �C �C
λ 7����INTF1���ⲿ�Д���(bi��o)־1
INT1���_�ƽ�l(f��)����׃�r�|�l(f��)�Д�Ո����λ����(y��ng)���Д���(bi��o)־INTF1�����SREG��λI�Լ�GICR�Ĵ�������(y��ng)���Д�ʹ��λINT1�顱1����MCU�����D(zhu��n)������(y��ng)���Д��������M(j��n)���Д����(w��)����֮��ԓ��(bi��o)־�Ԅ����������⣬��(bi��o)־λҲ����ͨ�^���롱1����������
λ6����INTF0���ⲿ�Д���(bi��o)־0
INT0���_�ƽ�l(f��)����׃�r�|�l(f��)�Д�Ո��������λ����(y��ng)���Д���(bi��o)־INTF0�����SREG��λI�Լ�GICR�Ĵ�������(y��ng)���Д�ʹ��λINT0�顱1����MCU�����D(zhu��n)������(y��ng)���Д��������M(j��n)���Д����(w��)����֮��ԓ��(bi��o)־�Ԅ���������������(bi��o)־λҲ����ͨ�^���롱1����������
λ 5����INTF2���ⲿ�Д���(bi��o)־2
INT2���_�ƽ�l(f��)����׃�r�|�l(f��)�Д�Ո��������λ����(y��ng)���Д���(bi��o)־INTF2�����SREG��λI�Լ�GICR�Ĵ�������(y��ng)���Д�ʹ��λINT2�顱1����MCU�����D(zhu��n)������(y��ng)���Д��������M(j��n)���Д����(w��)����֮��ԓ��(bi��o)־�Ԅ���������������(bi��o)־λҲ����ͨ�^���롱1����������ע������(d��ng)INT2�Д�����M(j��n)��ijЩ����ģʽ�r��ԓ���_��ݔ�뾏�_�����á��@����(d��o)��INTF2��(bi��o)־�O(sh��)����̖��߉׃����
һЩ��Ҫ���c(di��n)
һ���Д���̖���������̖��ij�N׃����ʽ����
�}�_�������ػ��½���
���ƽ����ƽ
�ƽ׃��
����������
�Д�Ո��cpu�z�y��֮��������Д����ϵ�y(t��ng)���S��cpu���Ԅ��D(zhu��n)������(zh��)��һ���̶��ij�����g��ַ��ָ�
�@���̶���ַ�����Д���ڵ�ַ��Ҳ���Д����������@����ַ���І�Ƭ�C(j��)��Ӳ����Q���ġ�
һ���@����ַ�����þ��w�ij�����ֻ����һ�l���D(zhu��n)ָ��D(zhu��n)���������Д����(w��)������
����AVR��֧��ܛ����׃�Д���(y��u)�ȼ������䃞(y��u)�ȼ��ǹ̶�����
�����Д�Դ�֞����
1.�������Д�����reset�Д࣬�o������
2.�����Д������Д�ǿ����ε�
3.ܛ���Д���AVR��֧�֣�����ARM�������������������ϵ�y(t��ng)���Д��{(di��o)����
�����Д�푑�(y��ng)�l��
푑�(y��ng)A�Д� = ȫ���Д����S��(bi��o)־ AND �Д�A���S��(bi��o)־ AND �Д�A��(bi��o)־
ȫ���Д����S��(bi��o)־����AVR�������(bi��o)־�Ĵ���SREG��Iλ��SREG.7��gcc�д��_���P(gu��n)�]�ķ�����sei()��cli()
�Д����S��(bi��o)־��һ����fÿ���Д���ІΪ�(d��)�����S��(bi��o)־λ��������ij�����P(gu��n)�ļĴ�������ͨ�^�Ϊ�(d��)�O(sh��)����һλ���Դ��_���P(gu��n)�]����(y��ng)���Д���
�Д���(bi��o)־��һ���f���@����(bi��o)־����Ӳ���|�l(f��)��������һ���M���ǂ��l�����@����(bi��o)־�ԄӞ�1������Ҫ�ք��O(sh��)�á�
�����Д������^(q��)��С = �Д�Դ����(sh��) x ÿ���Д�������ռ����?j��n)?sh��)
�����Д���(bi��o)־λһ�����cpu푑�(y��ng)�Д���Ԅ�����������Д����(w��)������ͨ�^�x�����T�ļĴ������Ԅ������
��(d��ng)ȻҲ���Ԍ����M(j��n)��ܛ���������������nj��䌑1(�@�c(di��n)���^��)
�����Д���(bi��o)־��һֱ����������Д౻��ֹ������cpu�����R��푑�(y��ng)��Ԓ���@�ǷQ����������һ��cpu����푑�(y��ng)�����t�R�ϰ���(y��u)�ȼ�̎���Д���
�������e�Д���Д���(bi��o)־���������Þ���ƽ�|�l(f��)���ⲿ�ДࡣֻҪ�M��l���͕���cpuһֱ�l(f��)���Д���Ո��
�@��͕����F(xi��n)�@�ӵĆ��}��
1.cpu���r�]푑�(y��ng)�Д࣬���ƽ?j��ng)]�������@�Ӿ�����һ�η���(w��)
2.cpu푑�(y��ng)�ˣ�푑�(y��ng)���������ƽ߀�ڣ��ֶ����(w��)��һ��
�����O(sh��)Ӌ�ĕr��Ҫע��
һ���@�N���ƽ�|�l(f��)�Дʽ���چ���̎������ģʽ��cpu���Ʌ������w������
ʮ��AVR푑�(y��ng)�Д��r����ȫ���Д����Sλ�P(gu��n)������푑�(y��ng)�����Д�������Ҳ�Ͳ����S�Д��Ƕ����
��(d��ng)Ȼ�������Д����(w��)�����У������_���������@�����Ƿdz�Σ�U�������ᳫ��
ʮһ���Д�푑�(y��ng)���^������
1.����ȫ���Д�
2.�����w��푑�(y��ng)���Д���(bi��o)־λ����
3.�Д����c(di��n)��ַ����ї���ͬ�rSP�p2
4.�Ԅӌ��Д�������ַ����PC����(qi��ng)�ƈ�(zh��)�С�
���Ͼ���Ӳ���Ԅ������ܛ����Ҫ�����������£�
1.�Д����ָ̎�rjmp reset
2.�����(w��)����
3.����ָ�� reti
ʮ����
�dz�Ҫע������Д�ֻ����ͻ֏�(f��)�˔��c(di��n)��PCֵ���������ļĴ������]�б��o(h��)������������Д����(w��)������Ҫ�Ǹ�׃��ijЩ�Ĵ�����ֵ��Ԓ�����׳��F(xi��n)���}��
�������Д����(w��)����Ҫ�M��������������IJ���������һ����sreg���Ɖĵ�Ԓ��һ��Ҫ���Ȍ��䉺��ї���
ʮ��������
��ʹ��һ���Д����Sλ֮ǰ����Ì����Д���Д���(bi��o)־λ�����Ȼ���R��ʹ�����Sλ��
�@�ӿ��Ա���һЩ����Ҫ���e�`�����֮ǰ�Ę�(bi��o)־��1��Ԓ���͕��a(ch��n)��һ���e�`���Д���
���fһ�Σ������(bi��o)־λ�ķ����nj��䌑1��

����admin ����ĕr�g��2018-05-25