📄 einttest.c
字号:
/*****************************************************************************
* einttest.c: main C entry file for Philips LPC214x Family Microprocessors
*
* Copyright(C) 2006, Philips Semiconductor
* All rights reserved.
*
* History
* 2005.10.01 ver 1.00 Prelimnary version, first Release
*
******************************************************************************/
#include "LPC214x.H" /* LPC21xx definitions */
#include "type.h"
#include "irq.h"
#include "extint.h"
#include "timer.h"
#include "target.h"
#include "uart.h"
#include "dac.h"
#include "PCB.h"
WORD LCD_MAP_Buff1[64]=
{
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF
/*
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000 */
/*
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000
*/
/*
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
*/
/*
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240
*/
/*
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260
*/
};
BYTE LCD_MAP_Buff[64]=
{
0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
};
const unsigned char gImage[64*13] = {
//4
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
//3
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//2
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//1
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//1
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//1
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//2
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//3
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//4
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
/*
//5
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
//6
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,
0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,
0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,
0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
//7
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
//8
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
*/
};
void Delay_Nus(WORD Nus)
{
BYTE i;
while(Nus--)
{
for(i=0;i<5;i++);
}
}
void DelayNms(WORD Nms)
{
WORD i;
while(Nms--)
{
for(i=0;i<5000;i++);
}
}
/******************************************************************
LED Display
*******************************************************************/
void SCK_Trigger(BYTE n)
{
while(n--)
{
HC595_SCL_L;
HC595_SCL_H;
}
}
void RCK_Trigger(void)
{
HC595_TAL_L;
HC595_TAL_H;
}
void HC595_SDA(BYTE Val)
{
if(Val)
{
HC595_SDA_H;
}
else
{
HC595_SDA_L;
}
}
void HC595_CLR(void)
{
HC595_SDA(0);
SCK_Trigger(100);
}
void SysIOinit(void)
{
//HC595 IO
SCS = 0x03;
PINSEL0 &= ~((3<<22)|(3<<24)|(3<<26));// 设置P0.11 P0.12 P0.13为GPIO
FIO0DIR|=(1<<11)|(1<<12)|(1<<13); //设置P0.11 P0.12 P0.13为输出
PINSEL0 &=~((1<<28)|(1<<30));// 设置P0.14 P0.15为GPIO
FIO0DIR &=~((1<<14)|(1<<15)); //设置P0.14 P0.15为输入
//LED RGB IO
PINSEL0 &= ~((3<<16)|(3<<18)|(3<<20));// 设置P0.8 P0.9 P0.10为GPIO
FIO0DIR|=(1<<8)|(1<<9)|(1<<10); //设置P0.11 P0.12 P0.13为输出
FIO1DIR |= (1<<16)|(1<<24); /* P1.16 P1.24 defined as Outputs */
FIO0MASK &=~(((1<<11)|(1<<12)|(1<<13))/*HC595 IO*/|((1<<8)|(1<<9)|(1<<10))/*LED RGB IO*/|((1<<14)|(1<<15))/*Keyboard IO*/);
HC595_CLR();//HC595 init
RCK_Trigger();
}
void LCD_Frame(WORD *cp,int KEY_Val)
{
static BYTE flag=0;
BYTE i;
//KEY_Val=0;
//timer_10msFlag=1;
//if(timer_10msFlag!=0)
{
//timer_10msFlag = 0;
flag=~flag;
if(flag!=0)
{
HC595_SDA(1);
for(i=0;i<64;i++)
{
/*
HC595_SDA(1);
SCK_Trigger(1);
HC595_SDA(0);
SCK_Trigger(64-i-1);
RCK_Trigger();
//Delay_Nus(40);
*/
DACout(*cp);
cp++;
COM_L; //COM
SCK_Trigger(1);
RCK_Trigger();
Delay_Nus(45);
HC595_SDA(0);
}
}
else
{
HC595_SDA(1);
for(i=0;i<64;i++)
{
/*
HC595_SDA(1);
SCK_Trigger(1);
HC595_SDA(0);
SCK_Trigger(64-i-1);
RCK_Trigger();
//Delay_Nus(40);
*/
DACout(1023-(*cp));//(0);
cp++;
COM_H; //COM
SCK_Trigger(1);
RCK_Trigger();
Delay_Nus(45);
HC595_SDA(0);
}
}
HC595_CLR();
RCK_Trigger();
}
}
void printf(BYTE* BufferPtr,DWORD Length)
{
UARTSend(BufferPtr,Length);
DelayNms(10);
}
/****************************************************************************
** Main Function main()
******************************************************************************/
int main (void)
{
//const x __at 0x000001FC = 0x87654321; //代码保护
//BYTE
int KEY_Val=0;
DWORD i,j,x,COLOR;
BYTE str[100];
TargetResetInit();
init_VIC();
UARTInit(115200); /* baud rate setting */
/* initialize GPIO pins as external interrupts */
EINTInit();
init_timer0(INTERVAL_10MS);
enable_timer(0);
DACInit();
SysIOinit();
/****** It's an endless loop waiting for external interrupt ******/
/* On Keil MCB214x board, INT1 can be used to test the external interrupt */
printf("硬件系统初始化完成!\n",sizeof("硬件系统初始化完成!\n"));
LED_R_H;
LED_G_L;
LED_B_H;
//DACout(1023);
while (1) /* Loop forever */
{
/*
FIO1CLR |= (1<<16); //turn off P1.16
DelayNms(255);
DelayNms(255);
DelayNms(255);
DelayNms(255);
FIO1SET |= (1<<16); //turn off P1.16
for(i=0;i<64;i++)
{
LCD_MAP_Buff[i] = 0;
}
DelayNms(255);
DelayNms(255);
FIO1CLR |= (1<<16); //turn off P1.16
DelayNms(255);
DelayNms(255);
DelayNms(255);
DelayNms(255);
FIO1SET |= (1<<16); //turn off P1.16
for(i=0;i<64;i++)
{
LCD_MAP_Buff[i] = 0x3FF;
}
DelayNms(255);
DelayNms(255);
DelayNms(255);
DelayNms(255);
*/
for(j=0;j<4;j++)
{
for(i=0;i<500000;i++)
{
LCD_Frame(LCD_MAP_Buff);
}
for(i=0;i<64;i++)
{
LCD_MAP_Buff[i] = ~LCD_MAP_Buff[i];
}
}
for(x=0;x<5;x++)
{ for(j=0;j<9;j++)
{
for(i=0;i<100000;i++)
{
LCD_Frame(&gImage[j*64]);
}
}
}
/*
COLOR++;
if(COLOR>6)
{
COLOR=0;
}
switch(COLOR)
{
case 0:
LED_R_L;
LED_G_H;
LED_B_H;
break;
case 1:
LED_R_L;
LED_G_L;
LED_B_H;
break;
case 2:
LED_R_H;
LED_G_L;
LED_B_H;
break;
case 3:
LED_R_H;
LED_G_L;
LED_B_L;
break;
case 4:
LED_R_H;
LED_G_H;
LED_B_L;
break;
case 5:
LED_R_L;
LED_G_H;
LED_B_L;
break;
case 6:
LED_R_L;
LED_G_L;
LED_B_L;
break;
default:COLOR=0; break;
}
//LCD_Test(200,1);
//DACout(459);//中线1.501V
/////////////////
*/
/*
if((FIO0PIN&0x00004000)!=0x00004000)
{
DelayNms(10);
if((FIO0PIN&0x00004000)!=0x00004000)
{
if(KEY_Val>=1023)
{
KEY_Val=1023;
}
KEY_Val+=10;
FIO1SET |= (1<<16); //turn off P1.16
DelayNms(200);
for(i=0;i<64;i++)
{
LCD_MAP_Buff1[i]=KEY_Val;
}
}
//DelayNms(50);
FIO1CLR |= (1<<16); //turn off P1.16
}
if((FIO0PIN&0x00008000)!=0x00008000)
{
DelayNms(10);
if((FIO0PIN&0x00008000)!=0x00008000)
{
if(KEY_Val<=0)
{
KEY_Val=0;
}
KEY_Val-=10;
FIO1SET |= (1<<16); //turn off P1.16
DelayNms(200);
for(i=0;i<64;i++)
{
LCD_MAP_Buff1[i]=KEY_Val;
}
}
//DelayNms(50);
FIO1CLR |= (1<<16); //turn off P1.16
}
*/
/*
printf(&str[0],DEC_to_Str(KEY_Val,&str[0]));
printf("\n",sizeof("\n"));
DACout(KEY_Val*2+511);
DelayNms(100);
DACout(512-KEY_Val*2);
DelayNms(100);
FIO1CLR |= (1<<16); //turn off P1.16
*/
}
return 0;
}
/******************************************************************************
** , End Of File
******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -