ºÇ½ª¹¹¿·¡§ zoidstoeva 2010ǯ03·î31Æü(¿å) 19:14:59ÍúÎò
CMT(¥³¥ó¥Ú¥¢¥Þ¥Ã¥Á¥¿¥¤¥Þ)³ä¤ê¹þ¤ß¤Ë¤è¤ëLEDÅÀÌÇ¥×¥í¥°¥é¥à¤Ç¤¹¡£
resetprg.c 21¹ÔÌÜ
#define SR_Init 0x00000000 //³ä¤ê¹þ¤ßÍ¥Àè¥ì¥Ù¥ë¤ÎÀßÄê
¤³¤³¤Ï¸µ¤Ï0x000000F0¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹(F¤ÏºÇÂçÃÍ)¡£F¤ò0¤Ë¤¹¤ë¤³¤È¤Ç¥ì¥Ù¥ë1°Ê¾å¤Î³ä¤ê¹þ¤ß¤¬Í¸ú¤Ë¤Ê¤ê¤Þ¤¹(»²¹Í(¥Þ¥¤¥³¥ó¤ÇÍ·¤Ü¤¦))¡£
intprg.c 378¹ÔÌÜ¡Á
void interrpt_cmt0(void); //¥á¥¤¥ó¥×¥í¥°¥é¥à¤ÇÀë¸À¤·¤¿³ä¤ê¹þ¤ß´Ø¿ô #pragma interrupt INT_CMT0_CMI0 void INT_CMT0_CMI0(void) { interrpt_cmt0(); //³ä¤ê¹þ¤ß´Ø¿ô¤ò¥¤¥Ë¥·¥ã¥é¥¤¥º }
¥á¥¤¥ó¥×¥í¥°¥é¥à
#include "iodefine.h" int d=0xff; void initIO(void) { PFC.PEIORL.BYTE.L=0xff; //²¼°Ì8¥Ó¥Ã¥È½ÐÎÏÀßÄê } void initCMT(void) { STB.CR4.BIT._CMT=0; //CMT0¥¹¥¿¥ó¥Ð¥¤¥â¡¼¥É²ò½ü CMT.CMSTR.BIT.STR0=0; //CMT0¥«¥¦¥ó¥ÈÄä»ß CMT0.CMCSR.BIT.CMIE=1; //¥³¥ó¥Ú¥¢¥Þ¥Ã¥Á³ä¤ê¹þ¤ßµö²Ä CMT0.CMCSR.BIT.CKS=1; //¦Õ/32¤Ç¥«¥¦¥ó¥È¥¢¥Ã¥×(CMT¤Î¥¯¥í¥Ã¥¯¤Ï25MHz) CMT0.CMCSR.BIT.CMF=0; //¥Õ¥é¥°¥¯¥ê¥¢(¥¯¥ê¥¢¤·¤Ê¤¤¤È¥³¥ó¥Ú¥¢¥Þ¥Ã¥Á¤ÎÆ°ºî¤¬¤Ç¤¤Ê¤¤¤Î¤ÇÃí°Õ) CMT0.CMCOR=781250-1; //25000000(Hz)/32 = 781250(¢â1sec) INTC.IPRJ.BIT._CMT0=15; //³ä¤ê¹þ¤ßÍ¥Àè¥ì¥Ù¥ëMAX } void interrpt_cmt0(void) //³ä¤ê¹þ¤ß´Ø¿ô { CMT0.CMCSR.BIT.CMF=0; //¥Õ¥é¥°¥¯¥ê¥¢ PE.DRL.BYTE.L=d; //¥Ý¡¼¥ÈE²¼°Ì8¥Ó¥Ã¥È½ÐÎϤËÀßÄê d=~d; //ȿž } int main() { initIO(); initCMT(); CMT.CMSTR.BIT.STR0=1; //CMT0¥«¥¦¥ó¥È¥¹¥¿¡¼¥È while(1) ; return 0; }
- ¥«¥Æ¥´¥ê¡§
- ³ØÌ䡦Íý·Ï
- ¥í¥Ü¥Ã¥È
¥³¥á¥ó¥È¤ò¤«¤¯