📄 initsys.c
字号:
#include "LPC210x.h"
#include "initsys.h"
#include "def.h"
extern SYSVAL sysval;
void InitClk(void)
{
/* 设置系统各部分时钟 */
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;
VICIntEnClr = 0xffffffff;
VICVectAddr = 0;
VICIntSelect = 0;
}
void InitGpio(void)
{
PINSEL0=0x00c00005;// P0.00 TXD 1:0 =01 P0.01 RXD 3:2 =01 P0.10 AIN3 21:20=11 P0.11 AIN4 23:22=11
PINSEL1=0x00000000;
}
void P24_P31_Out(void){
IODIR =0xffE6ffbf; //31 30 29 28
/// 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
/// 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
}
void P24_P31_In(void){
IODIR =0x00E6ffbf; //31 30 29 28
/// 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
/// 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
}
void FIQ_Exception(void)
{
}
void InitVal(void)
{
sysval.standard_row_width=8;
sysval.standard_leftwidth=0 ; //paper left width
sysval.standard_rightwidth=0;
sysval.standard_printwidth=384 ;
sysval.printmax=384;
sysval.chinasize=0 ; //china 16X16 =00 is no double 0x77 x,y is 64 double 0x10 x is double 0x01 is y double
sysval.chinacharleft=0;
sysval.chinacharright=0;
sysval.blackmark=DISABLE ;// blackprint=ENABLE ,have black printer
sysval.hexprint= DISABLE ;// hexprint=ENABLE,have hex print
sysval.keyenable=ENABLE; // default is key to feed paper
sysval.chinaunderline=0; //0,48 is no china underline ,1,49 ,is one dot china underline 2,50 is two dot underlinechar
sysval.bw_invert=DISABLE; //black white invert print
sysval.lastadddot=0;
sysval.softreset=DISABLE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -