📄 lpclib.c.bak
字号:
//IO1SET 0000 00X0 0000 0000 0000 0000 0000 0000
IO1SET=IO1SET |0x02000000;//写入1
}
//----------------------------------------------------------------------------------------------------
//关闭写磁头
//void Hd1_L(void)
//----------------------------------------------------------------------------------------------------
void Hd1_off(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 000x 0000
IO0SET=IO0SET|0x00000010; //写入1
//IO1SET 0000 00X0 0000 0000 0000 0000 0000 0000
IO1SET=IO1SET|0x02000000; //写入1
}
//----------------------------------------------------------------------------------------------------
//使能HD2 写NS
//void Hd1_H(void)
//----------------------------------------------------------------------------------------------------
void Hd2_H(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 00X0 0000
IO0SET=IO0SET|0x00000020; //写入1
//IO0SET 0000 0000 0000 0000 0000 0000 0X00 0000
IO0CLR=IO0CLR|0x00000040; //写入0
}
//------------------------------------------------------------------------------------------------------
//使能HD1 写SN
//void Hd1_L(void)
//----------------------------------------------------------------------------------------------------
void Hd2_L(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 00X0 0000
IO0CLR=IO0CLR|0x00000020; //写入0
//IO0SET 0000 0000 0000 0000 0000 0000 0X00 0000
IO0SET=IO0SET|0x00000040; //写入1
}
//----------------------------------------------------------------------------------------------------
//关闭写磁头
//void Hd2_L(void)
//----------------------------------------------------------------------------------------------------
void Hd2_off(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 00X0 0000
IO0SET=IO0SET|0x00000020; //写入1
//IO0SET 0000 0000 0000 0000 0000 0000 0X00 0000
IO0SET=IO0SET|0x00000040; //写入1
}
//----------------------------------------------------------------------------------------------------
//使能HD3 写NS
//void Hd3_H(void)
//----------------------------------------------------------------------------------------------------
void Hd3_H(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 X000 0000
IO0SET=IO0SET|0x00000080; //写入1
//IO1SET 0000 000X 0000 0000 0000 0000 0000 0000
IO1CLR=IO1CLR|0x01000000; //写入0
}
//----------------------------------------------------------------------------------------------------
//使能HD3 写SN
//void Hd1_L(void)
//----------------------------------------------------------------------------------------------------
void Hd3_L(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 X000 0000
IO0CLR=IO0CLR|0x00000080; //写入0
//IO1SET 0000 000X 0000 0000 0000 0000 0000 0000
IO1SET=IO1SET|0x01000000; //写入1
}
//----------------------------------------------------------------------------------------------------
//关闭写磁头
//void Hd3_off(void)
//----------------------------------------------------------------------------------------------------
void Hd3_off(void)
{
//IO0SET 0000 0000 0000 0000 0000 0000 X000 0000
IO0SET=IO0SET|0x00000080; //写入1
//IO1SET 0000 000X 0000 0000 0000 0000 0000 0000
IO1SET=IO1SET|0x01000000; //写入1
}
//----------------------------------------------------------------------------------------------------
//打开读LED灯
//void LED_R_ON (void)
//----------------------------------------------------------------------------------------------------
void LED_R_ON (void)
{
//IO0SET 0000 0000 00X0 0000 0000 0000 0000 0000
IO0SET=IO0SET|0x00200000; //写入1
}
//----------------------------------------------------------------------------------------------------
//关闭读LED灯
//void LED_R_OFF (void)
//----------------------------------------------------------------------------------------------------
void LED_R_OFF (void)
{
//IO0SET 0000 0000 00X0 0000 0000 0000 0000 0000
IO0CLR=IO0CLR|0x00200000; //写入0
}
//----------------------------------------------------------------------------------------------------
//打开读LED灯
//void LED_W_ON (void)
//----------------------------------------------------------------------------------------------------
void LED_W_ON (void)
{
//IO0SET 0000 0000 0X00 0000 0000 0000 0000 0000
IO0SET=IO0SET|0x00400000; //写入1
}
//----------------------------------------------------------------------------------------------------
//关闭读LED灯
//void LED_W_OFF (void)
//----------------------------------------------------------------------------------------------------
void LED_W_OFF (void)
{
//IO0SET 0000 0000 0X00 0000 0000 0000 0000 0000
IO0CLR=IO0CLR|0x00400000; //写入1
}
//----------------------------------------------------------------------------------------------------
//打开错误LED灯
//void LED_ERR_ON (void)
//----------------------------------------------------------------------------------------------------
void LED_ERR_ON (void)
{
//IO1SET 0000 X000 0000 0000 0000 0000 0000 0000
IO1SET=IO1SET|0x08000000; //写入1
}
//----------------------------------------------------------------------------------------------------
//关闭错误LED灯
//void LED_ERR_OFF (void)
//----------------------------------------------------------------------------------------------------
void LED_ERR_OFF (void)
{
//IO1SET 0000 X000 0000 0000 0000 0000 0000 0000
IO1CLR=IO1CLR|0x08000000; //写入0
}
//-----------------------------------------------------------------------------------------------------
//打开蜂鸣器
//void Beep_ON (void)
//-----------------------------------------------------------------------------------------------------
void Beep_ON (void)
{
//IO1SET 0000 0000 0000 X000 0000 0000 0000 0000
IO1SET=IO1SET|0x00080000; //写入1
}
//-----------------------------------------------------------------------------------------------------
//关闭蜂鸣器
//void Beep_OFF (void)
//-----------------------------------------------------------------------------------------------------
void Beep_OFF (void)
{
//IO1SET 0000 0000 0000 X000 0000 0000 0000 0000
IO1CLR=IO1CLR|0x00080000; //写入0
}
//-----------------------------------------------------------------------------------------------------
//读CPD信号
//unsigned char R_CPD (void)
//-----------------------------------------------------------------------------------------------------
unsigned char R_CPD (void)
{
//IO0PIN 0000 0000 0000 0X00 0000 0000 0000 0000
return ((unsigned char)((IO0PIN&0x00040000)>>18));
}
//-----------------------------------------------------------------------------------------------------
//读磁道1信号
//unsigned char R_HD1 (void)
//-----------------------------------------------------------------------------------------------------
unsigned char R_HD1 (void)
{
//IO1PIN 0000 0000 00x0 0000 0000 0000 0000 0000
return ((unsigned char)((IO1PIN&0x00200000)>>21));
}
//-----------------------------------------------------------------------------------------------------
//读磁道2信号
//unsigned char R_HD2 (void)
//-----------------------------------------------------------------------------------------------------
unsigned char R_HD2 (void)
{
//IO1PIN 0x00 0000 0000 0000 0000 0000 0000 0000
return ((unsigned char)((IO1PIN&0x40000000)>>30));
}
//-----------------------------------------------------------------------------------------------------
//读磁道3信号
//unsigned char R_HD3 (void)
//-----------------------------------------------------------------------------------------------------
unsigned char R_HD3 (void)
{
//IO1PIN 00x0 0000 0000 0000 0000 0000 0000 0000
return ((unsigned char)((IO1PIN&0x20000000)>>29));
}
//-----------------------------------------------------------------------------------------------------
//打开写卡中断
//void EN_W_INT(void)
//-----------------------------------------------------------------------------------------------------
void EN_W_INT(void)
{
VICIntEnable =(1<<14); //使能EINT0
VICIntEnable =(1<<15); //使能EINT1
}
//-----------------------------------------------------------------------------------------------------
//关闭写卡中断
//void CLR_W_INT(void)
//-----------------------------------------------------------------------------------------------------
void CLR_W_INT(void)
{
VICIntEnClr =(1<<14); //关EINT0
VICIntEnClr =(1<<15); //关EINT1
}
//-----------------------------------------------------------------------------------------------------
//打开串口中断
//void EN_W_INT(void)
//-----------------------------------------------------------------------------------------------------
void EN_UART0_INT(void)
{
VICIntEnable =(1<<6); //使能UART0
}
//-----------------------------------------------------------------------------------------------------
//关闭串口中断
//void CLR_W_INT(void)
//-----------------------------------------------------------------------------------------------------
void CLR_UART0_INT(void)
{
VICIntEnClr =(1<<6); //关UART0
}
//-----------------------------------------------------------------------------------------------------
//打开读卡中断
//void EN_R_INT(void)
//-----------------------------------------------------------------------------------------------------
void EN_R_INT(void)
{
VICIntEnable =(1<<16); //使能EINT2;
VICIntEnable =(1<<17); //使能EINT3;
VICIntEnable =(1<<5); //使能TIMER1捕获中断`
}
//-----------------------------------------------------------------------------------------------------
//关闭读卡中断
//void CLR_R_INT(void)
//-----------------------------------------------------------------------------------------------------
void CLR_R_INT(void)
{
VICIntEnClr =(1<<16); //关EINT2;
VICIntEnClr =(1<<17); //关EINT3;
VICIntEnClr=(1<<5); //关TIMER1捕获中断`
}
//---------------------------------------------------------------------------------------------------
//系统初始化
//void Beep_OFF (void)
//-----------------------------------------------------------------------------------------------------
void TargetResetInit(void)
{
/* 设置系统各部分时钟 */
/* Set system timers for each component */
PLLCON = 1;
#if (Fpclk / (Fcclk / 4)) == 1
VPBDIV = 0;
#endif
#if (Fpclk / (Fcclk / 4)) == 2
VPBDIV = 2;
#endif
#if (Fpclk / (Fcclk / 4)) == 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;
/* 设置存储器加速模块 */
/* Set memory accelerater module*/
MAMCR = 0;
#if Fcclk < 20000000
MAMTIM = 1;
#else
#if Fcclk < 40000000
MAMTIM = 2;
#else
MAMTIM = 3;
#endif
#endif
MAMCR = 2;
/* 初始化VIC */
/* initialize VIC*/
VICIntEnClr = 0xffffffff; //清除中断标志位
VICVectAddr = 0x00000000; //向量中断地址寄存器清0
VICIntSelect= 0x00000000; //所有中断为IRQ中断
VICVectCntl0 = 0x0000002e;
VICVectAddr0 = (unsigned int)IRQ_Eint0; // 0
VICVectCntl1 = 0x0000002f;
VICVectAddr1 = (unsigned int)IRQ_Eint1; // 1
VICVectCntl2 = 0x00000030;
VICVectAddr2 = (unsigned int)IRQ_Eint2; // 2
VICVectCntl3 = 0x00000031;
VICVectAddr3 = (unsigned int)IRQ_Eint3; // 3
VICVectCntl4 = 0x00000025;
VICVectAddr4 = (unsigned int)IRQ_TIME1; // 4
VICVectCntl5 = 0x00000026 ;
VICVectAddr5 = (unsigned int)IRQ_UART0; // 5
Port_Init();
Hd1_off();
Hd2_off();
Hd3_off();
UART0_Init ();
UART1_Init (115200);
Uart_Printf("hello philpis lpc2132");
//------------------------------------------------------------------------------------------
// UART0= 0x00000026 串行中断0中断号
// TIME1= 0x00000025 捕获中断3中断号
// Eint0= 0x0000002e 外部中断0中断号
// Eint1= 0x0000002f 外部中断1中断号
// Eint2= 0x00000030 外部中断2中断号
// Eint3= 0x00000031 外部中断3中断号
//------------------------------------------------------------------------------------------
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -