📄 cfuncs.c
字号:
#include "6205.h"
#include "glbvar.h"
#include "stdio.h"
int MemCopy( int *DstImgAddr, int *SrcImgAddr, int Len )
{
int k;
StartUserDMA( DstImgAddr, SrcImgAddr, Len/4 );
for(;;)
{
k = GetUserDMAState();
if( k == 0x00 )
break;
}
StopUserDMA();
return 0;
}
//=================== Timer functions ======================
//记时有限制:记时时间不能超过40秒,记时单位:us
void StartTimer( TIMER *timer )
{
*timer = TMR0CNT;
}
int ReadTimer( TIMER timer )
{
register int Tmp = (int)(TMR0CNT) - timer;
if( Tmp < 0 )
Tmp += 0x7FFFFFFF;
Tmp /= 50;
return( Tmp );
}
//================== DMA transfer functions ==================
int StartUserDMA( int *DestAddr, int *SourceAddr, int TransLen )
{
if( (PRICTL1 & 0xC) != 0)
return 0;
PRICTL1 = 0x00002050;
SECCTL1 = 0x0000A080;
SRC1 = (unsigned int)SourceAddr;
DST1 = (unsigned int)DestAddr;
XFRCNT1 = TransLen;
PRICTL1 = PRICTL1 | 0x00000001;
return 1;
}
int GetUserDMAState()
{
return ( PRICTL1 & 0xC );
}
void StopUserDMA()
{
PRICTL1 = PRICTL1 & 0xFFFFFFFE;
}
//=================== Led lighten and darken ========================
void LightenLed( unsigned char Flag )
{
register unsigned int Data = 0xFFFFFFFF;
if( Flag&0x01 )
Data = Data & LED_GREEN_ON;
if( Flag&0x02 )
Data = Data & LED_RED_ON;
PCR1 = PCR1 & Data;
}
void DarkenLed( unsigned char Flag )
{
register unsigned int Data = 0;
if( Flag&0x01 )
Data = Data | LED_GREEN_OFF;
if( Flag&0x02 )
Data = Data | LED_RED_OFF;
PCR1 = PCR1 | Data;
}
//================== delay with busy waiting, in 'ms' =================
// NOTE: if system clock is other than 200MHz, the accuracy
// of the time delayed is not guaranteed!
void DelayMs(unsigned short int msTime)
{
register int i,j;
for(i=0; i<msTime; i++)
for(j=0; j<11800; j++)asm(" nop 9");
}
//================== delay with busy waiting, in 'us' =================
// NOTE: if system clock is other than 200MHz, the accuracy
// of the time delayed is not guaranteed!
void DelayUs(unsigned short int usTime)
{
register int i,j;
for(i=0; i<usTime; i++)
for(j=0; j<12; j++)asm(" nop 9");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -