?? target.c
字號(hào):
/********************************************************************************************************/
#define IN_TARGET
#include "config.h"
/*********************************************************************************************************
** 函數(shù)名稱: IRQ_Exception
** 功能描述: 中斷異常處理程序,用戶根據(jù)需要自己改變程序
**
********************************************************************************************************/
void __irq IRQ_Exception(void)
{
while(1); // 這一句替換為自己的代碼
}
/*********************************************************************************************************
** 函數(shù)名稱: FIQ_Exception
** 功能描述: 快速中斷異常處理程序,用戶根據(jù)需要自己改變程序
**
********************************************************************************************************/
void FIQ_Exception(void)
{
while(1); // 這一句替換為自己的代碼
}
/*************************************************************************************************/
void Timer0_Exception(void)
{
T0IR = 0x01;
VICVectAddr = 0; // 通知中斷控制器中斷結(jié)束
OSTimeTick();
}
void Timer0Init(void)
{
T0IR = 0xffffffff;
T0TC = 0;
T0TCR = 0x01;
T0MCR = 0x03;
T0MR0 = (Fpclk / OS_TICKS_PER_SEC);
}
void VICInit(void)
{
extern void IRQ_Handler(void);
extern void Timer0_Handler(void);
VICIntEnClr = 0xffffffff;
VICDefVectAddr = (uint32)IRQ_Handler;
VICVectAddr15 = (uint32)Timer0_Handler;
VICVectCntl15 = (0x20 | 0x04);
VICIntEnable = 1 << 4;
}
/*********************************************************************************************************
** 函數(shù)名稱: TargetInit
** 功能描述: 目標(biāo)板初始化代碼,在需要的地方調(diào)用,根據(jù)需要改變
********************************************************************************************************/
void TargetInit(void)
{ extern void pwminit(void);
OS_ENTER_CRITICAL();
VICInit();
Timer0Init();
pwminit();
OS_EXIT_CRITICAL();
}
void pwminit(void)
{
PWMPR=0x00; //不分頻,計(jì)數(shù)頻率為Fpclk
PWMMCR=0x02; //設(shè)置PWMMR0匹配時(shí)復(fù)位PWMTC
PWMMR0=2765; //設(shè)置PWM周期
PWMMR6=1382; //設(shè)置PWM占空比
PWMLER=0x41; //PWMMR0,PWMMR6鎖存
PWMPCR=0x4000; //允許PWM6輸出,單邊PWM
PWMTCR=0x09; //啟動(dòng)定時(shí)器,PWM使能
}
/*********************************************************************************************************
** 函數(shù)名稱: TargetResetInit
** 功能描述: 調(diào)用main函數(shù)前目標(biāo)板初始化代碼,根據(jù)需要改變,不能刪除
********************************************************************************************************/
void TargetResetInit(void)
{ MEMMAP = 0x1;
/* 設(shè)置系統(tǒng)各部分時(shí)鐘 */
PLLCON = 1;
#if ((Fcclk / 4) / Fpclk) == 1
VPBDIV = 0;
#endif
#if ((Fcclk / 4) / Fpclk) == 2
VPBDIV = 2;
#endif
#if ((Fcclk / 4) / Fpclk) == 4
VPBDIV = 1;
#endif
#if (Fcco / Fcclk) == 2
PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
#endif
#if (Fcco / Fcclk) == 4
PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
#endif
#if (Fcco / Fcclk) == 8
PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
#endif
#if (Fcco / Fcclk) == 16
PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
#endif
PLLFEED = 0xaa;
PLLFEED = 0x55;
while((PLLSTAT & (1 << 10)) == 0);
PLLCON = 3;
PLLFEED = 0xaa;
PLLFEED = 0x55;
/* 設(shè)置存儲(chǔ)器加速模塊 */
MAMCR = 2; //MAMCR 8u2 00-MAM 功能被禁止、01-MAM功能部分使能、10-MAM功能完全使能
/* MAMTIM 8u3
000=0-保留
001=1-一段時(shí)間內(nèi)只有 1 個(gè)處理器時(shí)鐘(cclk)用于 MAM 取指。
010=2-一段時(shí)間內(nèi)只有2個(gè)處理器時(shí)鐘(cclk)用于MAM取指。
011=3-一段時(shí)間內(nèi)只有 3 個(gè)處理器時(shí)鐘(cclk)用于 MAM 取指。
100=4-一段時(shí)間內(nèi)只有4個(gè)處理器時(shí)鐘(cclk)用于 MAM 取指。
101=5-一段時(shí)間內(nèi)只有5 個(gè)處理器時(shí)鐘(cclk)用于 MAM 取指。
110=6-一段時(shí)間內(nèi)只有 6 個(gè)處理器時(shí)鐘(cclk)用于 MAM 取指。
111=7-一段時(shí)間內(nèi)只有7個(gè)處理器時(shí)鐘(cclk)用于 MAM 取指。
*/
#if Fcclk < 20000000
MAMTIM = 1;
#else
#if Fcclk < 40000000
MAMTIM = 2;
#else
MAMTIM = 3;
#endif
#endif
CCR = 1;
PREINT = Fpclk / 32768 - 1;
PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
YEAR = 2003;
MONTH = 6;
DOM = 2;
VICIntEnClr = 0xffffffff;
VICVectAddr = 0;
VICIntSelect = 0;
T0IR = 0xffffffff;
T0TCR = 0X02;
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -