temp = SCIReN(1,1,SerialBuff); if(temp==0)SCISendN(1,1,SerialBuff); EnableInterrupt(); } */
//䶨ÒåµÄÖжϴ¦Àíº¯Êý,±¾º¯Êý²»ÄÜɾ³ý interrupt void isrDummy(void) { }
//Öжϴ¦Àí×Ó³ÌÐòÀàÐͶ¨Òå typedef void( *ISR_func_t)(void);
//ÖжÏʸÁ¿±í,Èç¹ûÐèÒª¶¨ÒåÆäËüÖжϺ¯Êý,ÇëÐÞ¸ÄϱíÖеÄÏàÓ¦ÏîÄ¿ const ISR_func_t ISR_vectors[] @0xFFCC = {
isrDummy, // 0xFFCC //ʱ»ùÖÐ¶Ï isrDummy, // 0xFFCE //IICÖÐ¶Ï isrDummy, // 0xFFD0 //ADCת»»ÖÐ¶Ï isrDummy, // 0xFFD2 //¼üÅÌÖÐ¶Ï isrDummy, // 0xFFD4 //SCI2·¢ËÍÖÐ¶Ï isrDummy, // 0xFFD6 //SCI2½ÓÊÕÖÐ¶Ï isrDummy, // 0xFFD8 //SCI2´íÎóÖÐ¶Ï isrDummy, // 0xFFDA //SCI1·¢ËÍÖÐ¶Ï // isrSCIre, // 0xFFDC //SCI1½ÓÊÕÖÐ¶Ï isrDummy, // 0xFFDC //SCI1½ÓÊÕÖÐ¶Ï isrDummy, // 0xFFDE //SCI1´íÎóÖÐ¶Ï isrDummy, // 0xFFE0 //SPIÖÐ¶Ï isrDummy, // 0xFFE2 //TPM2Òç³öÖжÏ
isrDummy, // 0xFFE4 //TPM2ͨµÀ1ÊäÈë²¶×½/Êä³ö±È½ÏÖÐ¶Ï isrDummy, // 0xFFE6 //TPM2ͨµÀ0ÊäÈë²¶×½/Êä³ö±È½ÏÖÐ¶Ï isrT1Out, // 0xFFE8 //TPM1Òç³öÖжÏ
11
// isrDummy, // 0xFFE8 //TPM1Òç³öÖжÏ
isrDummy, // 0xFFEA //TPM1ͨµÀ5ÊäÈë²¶×½/Êä³ö±È½ÏÖÐ¶Ï isrDummy, // 0xFFEC //TPM1ͨµÀ4ÊäÈë²¶×½/Êä³ö±È½ÏÖÐ¶Ï isrDummy, // 0xFFEE //TPM1ͨµÀ3ÊäÈë²¶×½/Êä³ö±È½ÏÖÐ¶Ï isrDummy, // 0xFFF0 //TPM1ͨµÀ2ÊäÈë²¶×½/Êä³ö±È½ÏÖÐ¶Ï isrDummy, // 0xFFF2 //TPM1ͨµÀ1ÊäÈë²¶×½/Êä³ö±È½ÏÖÐ¶Ï isrDummy, // 0xFFF4 //TPM1ͨµÀ0ÊäÈë²¶×½/Êä³ö±È½ÏÖÐ¶Ï isrDummy, // 0xFFF6 //ICGµÄPLLËøÏà״̬±ä»¯ÖÐ¶Ï isrDummy, // 0xFFF8 //µÍµçѹ¼ì²âÖÐ¶Ï isrDummy, // 0xFFFA //IRQÒý½ÅÖÐ¶Ï isrDummy // 0xFFFC //SWIÖ¸ÁîÖжÏ
//RESETÊÇÌØÊâÖжÏ,ÆäÏòÁ¿ÓÉ¿ª·¢»·¾³Ö±½ÓÉèÖÃ(ÔÚ±¾Èí¼þϵͳµÄStart08.oÎļþÖÐ) };
Timer.h:
#ifndef timeR_H #define timeR_H
#include \#include \
#define TPM_CSTR(x)(*(vuint8 *)(0x00000020+(x-1)*64)) #define TPM_CNTH(x)(*(vuint8 *)(0x00000021+(x-1)*64)) #define TPM_CNTL(x)(*(vuint8 *)(0x00000022+(x-1)*64)) #define TPM_MODH(x)(*(vuint8 *)(0x00000023+(x-1)*64)) #define TPM_MODL(x)(*(vuint8 *)(0x00000024+(x-1)*64)) #define EnabletimerInt(x) TPM_CSTR(x) |= TPM1SC_TOIE_MASK #define DisabletimerInt(x) TPM_CSTR(x) &=~TPM1SC_TOIE_MASK #define TPM_NUM_1 1 #define TPM_NUM_2 2 #define TPM1_CH_0 0
12
#define TPM1_CH_1 1 #define TPM1_CH_2 2 #define TPM1_CH_3 3 #define TPM1_CH_4 4 #define TPM1_CH_5 5 #define TPM2_CH_0 0 #define TPM2_CH_1 1 void TPMinit(uint8 TPMNo); void SecAdd1(uint8 *p); #endif
Timer.c:
#include \
void TPMinit(uint8 TPMNo){ if(TPMNo > 2) TPMNo = 2; else if(TPMNo < 1) TPMNo=1;
TPM_CSTR(TPMNo)=0b00010110; TPM_CNTH(TPMNo) = 0x00; TPM_CNTL(TPMNo) = 0x00; TPM_MODH(TPMNo) = 0x7A; TPM_MODL(TPMNo) = 0x12; }
void SecAdd1(uint8 *p){ *(p+7)+=1; if(*(p+7)>9){ *(p+7) = 0; *(p+6)+=1; if(*(p+6)>5){
13
*(p+6)=0; *(p+4) += 1; // if(*p>=24) // *p = 0; if(*(p+4)>9){ *(p+4)=0; *(p+3)+=1; if(*(p+3)>5){ *(p+3)=0; *(p+1)+=1; if(*(p+1)>9){ *(p+1)=0; *p+=1;
if(*(p+1)==4&&*p==2){ *(p+1)=0; *p=0; } } } } } } }
3.1.1´®ÐÐͨÐÅ×Ó³ÌÐò
SCI.h:
#ifndef SCI_H #define SCI_H
#include \
14
Ïà¹ØÍÆ¼ö£º