📄 lpc_lib_88.c
字号:
/*
***********************************************************************
Embest Info&Tech Co., Ltd. All rights reserved.
www.embedinfo.com
***********************************************************************
---------------- file information -------------------------------------
file name: 88_test.c
version : v0
author : peter pan / panqan@hotmail.com
begin : 2006-02-10
finish : 2006-02-10
define : 88 test file
notes :
---------------- modify information -----------------------------------
version :
modify :
begin :
finish :
define :
-----------------------------------------------------------------------
*/
// (--------------------- compiler condition --------------------------
/*
#ifdef xxx
#define xxx
#endif
*/
// --------------------- compiler condition --------------------------)
/*-------------------------------------------------------------------*/
/* include files */
/*---------------------------------------------------------------- --*/
#include "..\..\com\lpc_lib_88\lpc_lib_88.h"
/*-------------------------------------------------------------------*/
/* local function declare */
/*-------------------------------------------------------------------*/
/*
void xxx(xxx xxx, xxx xxx);
*/
/*-------------------------------------------------------------------*/
/* variable define */
/*-------------------------------------------------------------------*/
static INT32U display_88_data=0;
extern void irq_timer0(void);
/*-------------------------------------------------------------------*/
/* extern function declare */
/*-------------------------------------------------------------------*/
/*--- define in XXX.c ---
extern void XXX();
*/
/*-------------------------------------------------------------------*/
/* extern variable declare */
/*-------------------------------------------------------------------*/
/*--- USED in XXX() ---
XXX SSS; // used inXXX()
*/
/*-------------------------------------------------------------------*/
/* function code */
/*-------------------------------------------------------------------*/
void display_88(INT32U data_88)
{
display_88_data=data_88;
}
void display_88_init(void)
{
timer_init(0,1,0);
VICVectCntl3 = 0x24;
VICVectAddr3 = (INT32U)irq_timer0;
VICIntEnable = 0x00000010;
}
void timer_init(INT8U which_timer,INT32U mstime,INT8U int_onoff)
{
INT32U i;
i=PCLKF*mstime/((TIMERPR+1)*1000);
if(which_timer==0)
{
TIMER0_PR=TIMERPR;
if(int_onoff!=0)
TIMER0_MCR=0x02;
else
TIMER0_MCR=0x03;
TIMER0_MR0=i;
TIMER0_TCR = 0x03;
TIMER0_TCR = 0x01;
}
else
{
TIMER1_PR=TIMERPR;
if(int_onoff!=0)
TIMER1_MCR=0x02;
else
TIMER1_MCR=0x03;
TIMER1_MR0=i;
TIMER1_TCR = 0x03;
TIMER1_TCR = 0x01;
}
}
void display_88_close(void)
{
timer_init(0,0,1);
spi_data_send(0, 0);
spi_data_send(0, 0);
//latch 88
display88_latch(1);
//EN 88
display88_outputen(1);
}
void dis88_timer0_svr(void)
{
INT32U data_bit;
INT32U data_bit_d;
INT32U data_bit_value=0;
INT32U data_bit_value_d;
INT32U data_divisor=1;
INT32U data_10_n;
for (data_bit=1;data_bit<9;data_bit++)
{
switch(data_bit)
{
case 1:
data_10_n = 10;
data_divisor = 1;
data_bit_d = 0xEF; //b11101111
break;
case 2:
data_10_n = 100;
data_divisor = 10;
data_bit_d = 0xDF; //b11011111
break;
case 3:
data_10_n = 1000;
data_divisor = 100;
data_bit_d = 0xBF; //b10111111
break;
case 4:
data_10_n = 10000;
data_divisor = 1000;
data_bit_d = 0x7F; //B01111111
break;
case 5:
data_10_n = 100000;
data_divisor = 10000;
data_bit_d = 0xFE; //b11111110
break;
case 6:
data_10_n = 1000000;
data_divisor = 100000;
data_bit_d = 0xFD; //b11111101
break;
case 7:
data_10_n = 10000000;
data_divisor = 1000000;
data_bit_d = 0xFB; //b11111011
break;
case 8:
data_10_n = 100000000;
data_divisor = 10000000;
data_bit_d = 0xF7; //b11110111
break;
default:
break;
}
data_bit_value = (display_88_data % data_10_n) / data_divisor;
switch(data_bit_value)
{
case 0:
data_bit_value_d = D88_0;
break;
case 1:
data_bit_value_d = D88_1;
break;
case 2:
data_bit_value_d = D88_2;
break;
case 3:
data_bit_value_d = D88_3;
break;
case 4:
data_bit_value_d = D88_4;
break;
case 5:
data_bit_value_d = D88_5;
break;
case 6:
data_bit_value_d = D88_6;
break;
case 7:
data_bit_value_d = D88_7;
break;
case 8:
data_bit_value_d = D88_8;
break;
case 9:
data_bit_value_d = D88_9;
break;
default:
break;
}
//send the data to 88 bit?/enbit?
spi_data_send(0, data_bit_d);
spi_data_send(0, data_bit_value_d);
//latch 88
display88_latch(1);
//EN 88
display88_outputen(1);
}
//set all off
//send the data to 88 bit?/enbit?
spi_data_send(0, 0);
spi_data_send(0, 0);
//latch 88
display88_latch(1);
//EN 88
display88_outputen(1);
TIMER0_IR =TIMER0_IR;
VICVectAddr = 0x00;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -