📄 demo5.c
字号:
#include "include\timer.h"
#include "include\sysconf.h"
#include "include\isr.h"
#include "include\lcd.h"
#include "include\uart.h"
#include "include\pollio.h"
#define led4 0x1
#define led5 0x2
#define led6 0x4
#define led7 0x8
#define off 0
#define on 1
#define stay 2
#define toggle 3
#define alloff 0xff
#define allon 0x0
void WaitTime_ms(int TIMER_DEV, int t);
void WaitTime_ms_ok(int TIMER_DEV, int t);
void ledshow(char led4pm, char led3pm, char led2pm, char led1pm);
void loopdelay(int pm);
void wutm0isr(void);
void wutm1isr(void);
void PrintBanner(void);
void C_Entry(void)
{
int i;
char *mys;
mys="I say to you today, my friends, that in spite of the difficulties and frustrations of the moment, I still have a dream.";
//InitInterrupt();
ClrIntStatus();
IOPMOD=0x3fff;
IOPDATA=allon;
LCDInit();
LCDTest();
WaitTime_ms_ok(TIMER_DEV0, 3000);
IOPDATA=alloff;
tm_init(TIMER_DEV0, 200);
tm_init(TIMER_DEV1, 700);
Timer0Start();
Timer1Start();
Enable_Int(nGLOBAL_INT);
//UART_Initialize();
PrintBanner();
i=0;
while(1)
{
loopdelay(30);
i++;
ledshow(toggle, stay,stay, stay);
Print("loopdelay --> %d\n",i) ;
lPrint(mys);
*mys++; //itoa(i,mys,10);
}
}
void ledshow(char led7pm, char led6pm, char led5pm, char led4pm)
{
if(led4pm==0) IOPDATA |=led4; //clear the bit 1-> off led1
else if(led4pm==1) IOPDATA &=~led4; //clear the bit 0-> on led1
else if(led4pm==3) IOPDATA ^=led4; //toggle the bit
if(led5pm==0) IOPDATA |=led5; //clear the bit 1-> off led2
else if(led5pm==1) IOPDATA &=~led5; //clear the bit 0-> on led2
else if(led5pm==3) IOPDATA ^=led5; //toggle the bit
if(led6pm==0) IOPDATA |=led6; //clear the bit 1-> off led3
else if(led6pm==1) IOPDATA &=~led6; //clear the bit 0-> on led3
else if(led6pm==3) IOPDATA ^=led6; //toggle the bit
if(led7pm==0) IOPDATA |=led7; //clear the bit 1-> off led4
else if(led7pm==1) IOPDATA &=~led7; //clear the bit 0-> on led4
else if(led7pm==3) IOPDATA ^=led7; //toggle the bit
}
void loopdelay(int pm)
{
int i,j;
for(i=0;i<=pm;i++)
{
for(j=0;j<65535;j++)
{
}
}
}
void WaitTime_ms(int TIMER_DEV, int t)
{
int rDATA;
rDATA= t_data_ms(t);
if(TIMER_DEV) {
TDATA1 = rDATA; /* Clear Timer data register */
Timer1Start();
while(TCNT1 !=2);
Timer1Stop();
}
else {
TDATA0 = rDATA; /* Clear Timer data register */
Timer0Start();
while(TCNT0!=2);
Timer0Stop();
}
}
void WaitTime_ms_ok(int TIMER_DEV, int t)
{
int rDATA, xDATA;;
rDATA= t_data_ms(t);
xDATA=0xffffffff-rDATA;
if(TIMER_DEV) {
TDATA1 = 0xffffffff; /* Clear Timer data register */
Timer1Start();
while(TCNT1 >xDATA);
Timer1Stop();
}
else {
TDATA0 = 0xffffffff; /* Clear Timer data register */
Timer0Start();
while(TCNT0 >xDATA);
Timer0Stop();
}
}
void tm_init(int TIMER_DEV, int t)
{
if(TIMER_DEV) /* for TIMER 1 */
{
Disable_Int(nTIMER1_INT);
SysSetInterrupt(nTIMER1_INT, wutm1isr);
TDATA1 = t_data_ms(t); /* unit is [ms] */
TCNT1 = 0x0;
Enable_Int(nTIMER1_INT); /* Timer interrupt enable */
}
else /* for TIMER0 */
{
Disable_Int(nTIMER0_INT);
SysSetInterrupt(nTIMER0_INT, wutm0isr);
TDATA0 = t_data_ms(t);
TCNT0 = 0x0;
Enable_Int(nTIMER0_INT);
}
}
void wutm0isr(void)
{
Clear_PendingBit(nTIMER0_INT) ;
ledshow(stay, stay, stay, toggle);
}
void wutm1isr(void)
{
Clear_PendingBit(nTIMER1_INT) ;
ledshow(stay, stay, toggle, stay);
}
// Print Banner
void PrintBanner(void)
{
Print("\n\n") ;
Print(" FS4510 DEMO5_PRE 2003-7-18 \n\n") ;
Print("-----------------------------------------------------------\n") ;
Print(" 1. TIMER0,TIMER1 demo \n") ;
Print(" 2. TIMER0,TIMER1 interrupt demo \n") ;
Print(" 3. LCD demo \n") ;
Print(" 4. UART demo \n") ;
Print("-----------------------------------------------------------\n") ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -