亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 44blib.c

?? 三星S3C44B0X的一個(gè)DEMO代碼,實(shí)現(xiàn)LCD顯示時(shí)鐘運(yùn)行.
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/************************************************
 * NAME    : 44BLIB.C				*
 * Version : 17.APR.00				*
 ************************************************/

#include "option.h"
#include "def.h"
#include "44b.h" 
#include "44blib.h"    

#include "lcd.h"
#include "lcdlib.h"

#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>

#define STACKSIZE     0xa00 
	//SVC satck size(do not use user stack)

#define HEAPEND     (_ISR_STARTADDRESS-STACKSIZE-0x500) // = 0xc7ff000
	//SVC Stack Area:0xc(e)7ff000-0xc(e)7ffaff

//#define   DBUFgprslen         0x500
U8  Dgprs[DBUFgprslen];	 // for gprs

//#define   DBUFgpslen          0x1000
U8  Dgps[DBUFgpslen];	 // for gps

U8  DBUFA[0x1000];	    //temp
U8  DBUFB[0x1000];	    //temp

U8  DBUF0[0x100F];	    // for cpu serial (4K+9)*2 byte for one frame of cpu
U8  DBUF1[0x100F];	    // for cpu serial

U8  count_timer0_overflow=0;           //count for T0
U8  count_time;                        //time over for sending to server
U8  Top_Count_T0_Overflow=80;          //Top of count for T0
U8  switch_display_16s,bool_arrive_16s;
U8  bool_start_count=0;
U8  bool_arrive_8s=0;
U8  display_time_arrive=1;
U8  check_key_time_arrive=1;
U8  Display_Which_Screen=0;
U16 MenuStatus=0;

//************************************************************************
extern char *date[8] = {" ","日","一","二","三","四","五","六"};
volatile U32 sec_tick;

U8  date_t[7]={0x05,0x07,0x11,0x18,0x37,0x10,0x02}; //year=2005 month=01 day=01 hour=08 minute=0 second=0 week=7 周六
U8  buff[6];
U8  Status=0;

U8  Screen_Y_Offset=3;

U16 Font1616[0x48000];

U32	UART_BAUD = 115200 ; 		//串口波特率設(shè)定

U32 MCLK = 60000000; 		//系統(tǒng)主頻設(shè)定

extern char Image$$RW$$Limit[];

void *mallocPt=Image$$RW$$Limit;

//******************************************************************************
static int delayLoopCount=400;

//從FLASH調(diào)字庫(kù)進(jìn)入SDRAM中
void Sysloader_LoadFont1616(void)
{
	unsigned short int *p,d;
	unsigned int i;

	p = (unsigned short int*)P_FONT1616;
	for( i = 0 ; i < 0x48000 ; i++ )  //00-0x8f,即:0x90個(gè)4K
	{
		d = *p;
		Font1616[i] = d>>8 | d << 8;
		p++;
	}
}

//從FLASH調(diào)信息進(jìn)入SDRAM中
void read_flash_to_ram(U32 sourcestartaddr,U8 *buffer, U16 deststartaddr, U16 movelen)
{
      U16 i,d,*p;
 	  p = (U16 *)sourcestartaddr;
      for (i=0;i<movelen;i+=2)
        { d=*p;
          *((U16*)(buffer+deststartaddr+i))= d;
          p++;
        }
}

//從SDRAM存信息進(jìn)入FLASH中
void write_ram_to_flash(U8 *buffer, U16 sourcestartaddr, U32 deststartaddr, U16 movelen)
{
      U16 i,j;
      U8  *p;
 	  p = (U8 *)deststartaddr;
      for (i=0;i<movelen;i+=2)
        { j=*(buffer+sourcestartaddr+i) | (*(buffer+sourcestartaddr+i+1))<<8;
          SST39LF160_ProgFlash( deststartaddr+i, j);
        }
}

void Delay(int time)
// time=0: adjust the Delay function by WatchDog timer.
// time>0: the number of loop time
// 100us resolution.
{
    int i,adjust=0;
    if(time==0)
    {
		time=200;
		adjust=1;
		delayLoopCount=400;
		rWTCON=((MCLK/1000000-1)<<8)|(2<<3);    //MCLK/1M,Watch-dog disable,1/64,interrupt disable,reset disable
		rWTDAT=0xffff;//for first update
		rWTCNT=0xffff;//resolution=64us	@any MCLK 
		rWTCON=((MCLK/1000000-1)<<8)|(2<<3)|(1<<5); //Watch-dog timer start
    }

    for(;time>0;time--)

	for(i=0;i<delayLoopCount;i++);

    if(adjust==1)
    {
		rWTCON=((MCLK/1000000-1)<<8)|(2<<3);//Watch-dog timer stop
		i=0xffff-rWTCNT;		//1count->64us, 200*400 cycle runtime = 64*i us
		delayLoopCount=8000000/(i*64);	//200*400:64*i=1*x:100 -> x=80000*100/(64*i)   
    }
}

//******************************************************************************
//******************************************************************************
void Port_Init(void)
{
    //SMDK41100 B/D Status
    //LED D5  D6
    //	  PB9 PB10
    //S/W S4  S5 
    //	  PG5 PG4

    //CAUTION:Follow the configuration order for setting the ports. 
    // 1) setting value 
    // 2) setting control register 
    // 3) configure pull-up resistor.  
	     
    //16bit data bus configuration  
    //PORT A GROUP
    //ADDR24 ADDR23 ADDR22 ADDR21 ADDR20 ADDR19 ADDR18 ADDR17 ADDR16 ADDR0		      
    //     1,     1,	 1,     1,     1,     1,     1,	    1,     1,    1
    rPDATA=0x3ff;	//All I/O Is High
    rPCONA=0x1ff;	//ADDR24 is not used,so is IO and OUTPUT

    //PORT B GROUP
    //rPCONB[10:0]
    //|BIT10|....................................................|BIT0
    //|nGCS5|nGCS4|nGCS3|nGCS2|nGCS1  |nWBE3 |nWBE2|nSRAS|nSCAS|SCLK|SCKE
    //|LEDG |LEDR |n8019|LED  |MCSVRAM|POWOFF|BUZA |nSRAS|nSCAS|SCLK|SCKE
    //rPCONB
    //|    0|    0|    1|	 0|      1|    0 |    0|    1|    1|   1|   1
    //rPDATB
    //|    1|    1|    1|    0|      1|    1 |    0|	1|    1|   1|   1
    //   亮    亮          亮          不關(guān)機(jī)  不響
    rPCONB=0x14f;
    rPDATB=0x76f;   //All I/O Is High
    
    //PORT C GROUP
    //BUSWIDTH=16
    //PORT C GROUP
    //rPCONC[31:0]
    //00- input  01-output  10-data  11-function
    //|GPC15|............................GPC9GPC8.........GPC5GPC4...............|GPC0
    //|BIT31|....................................................................|BIT0
    //|MAST CLK|TxEN|RXD1|TXD1|LOCK|  CS2| CS1|  RS|LCD7|LCD6|LCD5|LCD4|LCD3|LCD2|LCD1|LCD0
    //rPCONC
    //|      01|  01|  11|  11|  01|   01|  01|  01|  01|  01|  01|  01|  01|  01|  01|  01
    //rPDATC[15:0]
    //|       1|   0|   1|   1|   0|    0|   0|   1|   1|   1|   1|   1|   1|   1|   1|   1
    //rPUPC[15:0]
    //|       0|   0|   1|   1|   0|    0|   0|   0|   0|   0|   0|   0|   0|   0|   0|   0
    rPCONC=0x5f555555;	
    rPDATC=0xb1ff;	    //CS1 CS2是高電平選中
    rPUPC =0x3000;	    //PULL UP RESISTOR should be enabled to I/O

    //PORT D GROUP                      //所有輸出輸入要?jiǎng)討B(tài)地設(shè)
    //rPCOND[15..0]
    //| BIT7 |.........................|BIT0 
    //|PD7|PD6|PD5|PD4|PD3|PD2|PD1|PD0
    //| 01| 01| 01| 01| 01| 01| 01| 01  //???????????????????????????????00-input,01-output
    //rPUPD[7:0]
    //|  1|  1|  1|  1|  1|  1|  1|  1 //0-要上拉電阻  1-不要
    rPDATD=0xff;
    rPCOND=0x5555;	
	rPUPD =0xff;    //數(shù)據(jù)是雙向  不要上拉電阻
	//These pins must be set only after CPU's internal LCD controller is enable

    //PORT E GROUP
    //rPCONE[8..0]
    //| BIT8 |PE7   |PE6  |PE5    |PE4      |PE3..........|BIT0
    //|ENDIAN|KIN3|KIN2|KIN1|KIN0|SLAV CLK|RXD0|TXD0| DIP SW
    //|    00| 00 | 00 |  00| 00 | 00     |  10|  10|  00    //00-input
    //|rPUPE[7:0]
    //      ?|  1 |  1 |   1|  1 |  1     |   1|   1|   1
    //rPDATE=0x0;  	
    rPCONE=0x00028;	//All IO is INPUT	
    rPUPE =0xff;	//PE8 do not have programmable pull-up resistor.  

    //PORT F GROUP
    //rPCONF[21..0]
    //| BIT8|..................................|BIT0
    //|KO3|KO2|KO1|KO0|IMACLK|VSYNC|P SEN|SDA|SCL
    //|001|001|001|001|  00  | 01  | 00 | 10| 10
    //rPUPF[8:0]
    //|  0|  0|  0| 0 |  1   |  1  |  1 |  1|  1
    rPDATF=0x1ff;	 //KO0-KO3是輸出
    rPCONF=0x09244a; 
    rPUPF =0x1f;

    //PORT G GROUP
    //rPCONG[15..0]
    //|BIT7|................................|  BIT0
    //| GPG7|GPG6|GPG5|GPG4|GPG3|WIEGAND-|WIEGAND+|EXINT0
    //|   01|  01|  01|  01|  01|  01    |    01  |    11
    //rPUPG[8:0]
    //|    0|   0|   0|   0|   0|   1    |     1  |     1
    rPDATG=0xff; 
    rPCONG=0x5557;		
    rPUPG =0x7;		//should be enabled  
    
    rSPUCR=0x7; 	//D15-D0 pull-up disable
    
    //| EXINT7|EXINT6|EXINT5|EXINT4|EXINT3|EXINT2|EXINT1|EXINT0
    //|    000|   000|  000|    000|   000|   000|   000|   000
    //000-low   001-high  01x-falling   10x-rising  11x-both edge
	rEXTINT=0x0;	//All EXTINT0-7 Low level interrupt
	
	//Define the Non_Cache area
	rNCACHBE0=(((Non_Cache_End)>>12)<<16)|((Non_Cache_Start)>>12); 

}


//******************************************************************************
//******************************************************************************
void Uart_Init(int mclk,int baud)
{
    int i;
    if(mclk==0)
	   mclk=MCLK;
    rUFCON0=(2<<6)|(1<<4)|(6)|1;
    //FIFO trigger:tx/rx:8byte,tx/rx_fifo reset(will be cleared),FIFO enable.
    rUFCON1=(2<<6)|(1<<4)|(6)|1;
    rUMCON0=0x0;     //modem control
    rUMCON1=0x0;
//UART0
    rULCON0=0x3;     //Normal,No parity,1 stop,8 bit
    //rUCON0=0x245;    //tx=level int,rx=edge int,disable timeout int,enable rx error int,normal,interrupt or polling
    rUCON0=0x245|0x80;	//tx:level,rx:edge,tx/rx:int,rcv_time_out enabled,error int enable
    rUBRDIV0=( (int)(mclk/16./baud + 0.5) -1 );
//UART1
    rULCON1=0x3;
    rUCON1=0x245;
    rUBRDIV1=( (int)(mclk/16./baud + 0.5) -1 );

    pISR_URXD0=(unsigned)Uart0_RxFifoInt;
    //rINTMSK=~(BIT_GLOBAL|BIT_URXD0);

    for(i=0;i<100;i++);
}

void __irq Uart0_RxFifoInt(void)
{   int i;
    rI_ISPC=BIT_URXD0;
    while( (rUFSTAT0&0xf) >0 )	    //until FIFO is empty
    {
          i = rURXH0;
    }
}


//*****************************************************************************
char whichUart=0;

void Uart_Select(U8 ch)
{
    whichUart=ch;
}

//*****************************************************************************
void Uart_TxEmpty(U8 ch)
{
    if(ch==0)
	    while(!(rUTRSTAT0 & 0x4)); //wait until tx shifter is empty.
    else
    	while(!(rUTRSTAT1 & 0x4)); //wait until tx shifter is empty.
}

//*****************************************************************************
int UartRxStat(U8 ch)
{
	if(!ch)    	    
		return (rUTRSTAT0&0x1);    
    else    
		return (rUTRSTAT1&0x1);		    
}

//******************************************************************************
//******************************************************************************
char Uart_Getch(U8 ch)
{
    if(ch==0)
      {	    
	    while(!(rUTRSTAT0 & 0x1)); //Receive data read
	    return RdURXH0();
      }
    else
      {
	    while(!(rUTRSTAT1 & 0x1)); //Receive data ready
	    return	rURXH1;
      }
}


//******************************************************************************
//******************************************************************************
void Uart_SendByte(U8 ch, U8 data )
{
    if(ch==0)
      {
		if(data=='\n')
		{
		    while(!(rUTRSTAT0 & 0x2));
		    Delay(10);	//because the slow response of hyper_terminal 
		    WrUTXH0('\r');
		}
		while(!(rUTRSTAT0 & 0x2)); //Wait until THR is empty.
		Delay(10);
		WrUTXH0(data);
      }
    else
      {
		if(data=='\n')
		{
	    	while(!(rUTRSTAT1 & 0x2));
		    Delay(10);	//because the slow response of hyper_terminal 
		    rUTXH1='\r';
		}
		while(!(rUTRSTAT1 & 0x2));  //Wait until THR is empty.
		Delay(10);
		rUTXH1=data;
      }	
}		


//*****************************************************************************
void Uart_SendString(U8 ch,char *pt)
{
    while(*pt)
	   Uart_SendByte(ch,*pt++);
}

//******************************************************************************
//******************************************************************************
//if you don't use vsprintf(), the code size is reduced very much.
void Uart_Printf(char *fmt,...)
{
    va_list ap;
    char string[256];

    va_start(ap,fmt);
    vsprintf(string,fmt,ap);
    Uart_SendString(whichUart,string);
    va_end(ap);
}

/**************************send_string to computer****************************/
void send_cpu_serial_string(U8 *str,U16 strlen)
{
	U16 k=0;
	do
	{                            //send_cpu_serial_char(*(str+k));
      if (whichUart)
		{ while(!(rUTRSTAT1 & 0x2)); //Wait until THR is empty.
		  Delay(10);
		  WrUTXH1(*(str+k));
		}
      else
		{ while(!(rUTRSTAT0 & 0x2)); //Wait until THR is empty.
		  Delay(10);
		  WrUTXH0(*(str+k));
		}
      k++;
	} while(k < strlen);
}

//*****************************************************************************
void Led_Display(int data)
{
    rPDATB=(rPDATB & (~(1<<7)) ) | ((data & 0x1)<<7);
}

//******************************************************************************
//【功能說(shuō)明】蜂鳴器鳴叫time個(gè)100us
//******************************************************************************
void Beep(unsigned int time)
{
	rPDATB = (rPDATB | (1<<4));    //rPDATB:4 high-beep
	Delay(time);		//延時(shí)若干個(gè)100us
	rPDATB = (rPDATB & (~(1<<4)));
}

void Beep_On(void)
{
	rPDATB = (rPDATB | (1<<4));    //rPDATB:4 high-beep
}

void Beep_Off(void)
{

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线一二三| 91丨porny丨中文| 亚洲高清不卡在线观看| 国产精品美女久久久久久久久久久 | 日韩伦理免费电影| 99久久国产免费看| 亚洲成人久久影院| 午夜精品久久一牛影视| 国产拍揄自揄精品视频麻豆| 精品欧美乱码久久久久久1区2区 | 日韩一区二区精品葵司在线| 久久99精品国产| 国模少妇一区二区三区| 国产一区二区三区av电影| 亚洲美女精品一区| 亚洲bdsm女犯bdsm网站| 蜜桃视频在线观看一区| 精品亚洲免费视频| 亚洲免费观看视频| 日韩激情在线观看| 国产精品一区专区| 欧美在线观看你懂的| 日韩一级视频免费观看在线| 国产色一区二区| 欧美日本高清视频在线观看| 日韩视频中午一区| 国产精品国产自产拍在线| 悠悠色在线精品| 国产欧美日本一区视频| 亚洲精品免费在线观看| 国产亚洲美州欧州综合国| 9191成人精品久久| 91久久精品网| 高清不卡在线观看| 韩国av一区二区三区| 99久久精品国产毛片| 日韩一级大片在线观看| 日韩码欧中文字| 国产在线精品一区二区不卡了| 亚洲国产aⅴ天堂久久| 久久99精品久久久久婷婷| 色激情天天射综合网| 精品国产1区2区3区| 欧美一二三区在线| 日韩一区有码在线| 中文字幕中文字幕一区| 久久久午夜电影| 久久免费偷拍视频| 久久久国产一区二区三区四区小说 | 在线电影院国产精品| 亚洲欧洲性图库| 精品一区二区三区免费| 日本强好片久久久久久aaa| 9l国产精品久久久久麻豆| 99久久久无码国产精品| 国产在线看一区| 欧美日本在线观看| 亚洲男人电影天堂| 亚洲精品美国一| bt欧美亚洲午夜电影天堂| 欧美v亚洲v综合ⅴ国产v| 精品久久一区二区三区| 亚洲成人黄色影院| 日韩中文字幕一区二区三区| 91在线观看美女| 99久久精品情趣| 99vv1com这只有精品| 日本韩国欧美一区| 国产精品动漫网站| 午夜影院在线观看欧美| 色伊人久久综合中文字幕| 中文字幕亚洲一区二区va在线| 国产精品18久久久久久久久 | 国产盗摄一区二区| 欧美精品一区二区三区视频| 青青草91视频| 懂色一区二区三区免费观看| 欧美精品一区二区三区蜜臀| 激情都市一区二区| 久久久综合精品| av男人天堂一区| 一区二区三区日韩欧美精品| 欧美三级三级三级爽爽爽| 欧美精品一区二区三区视频| 国产一区二区按摩在线观看| 亚洲国产精品成人综合| 91在线视频播放| 久久久综合精品| 不卡免费追剧大全电视剧网站| 国产精品第一页第二页第三页| 日本人妖一区二区| 久久影院午夜片一区| 亚洲一区二区三区在线看| 国产老肥熟一区二区三区| 日本一区二区久久| **性色生活片久久毛片| 欧洲人成人精品| 国产色一区二区| 91久久精品一区二区| 日本不卡一区二区三区| 久久精品欧美一区二区三区麻豆| 岛国av在线一区| 国产在线精品一区在线观看麻豆| 成人中文字幕合集| 一区二区三区四区精品在线视频 | 国产日韩v精品一区二区| 亚洲制服丝袜av| 日韩亚洲欧美成人一区| 成人av电影在线| 国产亚洲视频系列| 蜜芽一区二区三区| 欧美日韩一二三区| 国产美女视频91| 欧美va日韩va| 日本精品一区二区三区高清 | 欧美乱妇23p| 一色屋精品亚洲香蕉网站| 欧美三级电影一区| 国产精品一卡二| 一区二区三区中文字幕| 久久综合狠狠综合久久综合88| 色一区在线观看| 成人免费福利片| 美美哒免费高清在线观看视频一区二区| 91免费观看国产| 国产一二精品视频| 五月天网站亚洲| 一本久久a久久精品亚洲| 中文字幕在线一区| 久久综合色综合88| 国产中文字幕一区| 久久免费看少妇高潮| 国产精品亚洲成人| 国产精品久久久久久久久果冻传媒| 777亚洲妇女| 欧美视频一区在线| 日韩国产欧美在线观看| 亚洲色图清纯唯美| 国产精品国产三级国产普通话三级 | 亚洲高清久久久| 亚洲男人的天堂在线aⅴ视频| 久久亚区不卡日本| 精品国产免费人成电影在线观看四季| 美美哒免费高清在线观看视频一区二区| 欧美一区二区成人6969| 欧美色手机在线观看| 日韩精品影音先锋| 国产在线精品一区二区| 免费看欧美女人艹b| 天堂影院一区二区| 日韩不卡一区二区| 欧美日韩免费观看一区三区| 色婷婷精品久久二区二区蜜臂av | 久久精品国产澳门| 老司机一区二区| 激情国产一区二区| 成人在线视频一区二区| 成人激情免费视频| 日韩高清不卡一区二区| 男女激情视频一区| 成人欧美一区二区三区黑人麻豆| 久久精品网站免费观看| 欧美激情在线看| 亚洲欧美一区二区三区极速播放| 欧洲精品在线观看| 欧美日韩国产精品自在自线| 欧美日韩成人激情| 99re视频精品| 激情成人午夜视频| 亚洲午夜羞羞片| 免费在线看成人av| 国内外精品视频| 日韩福利电影在线观看| 久久精品久久精品| 99热这里都是精品| 国产精品小仙女| 日本不卡1234视频| 国产精品盗摄一区二区三区| 亚洲另类在线制服丝袜| 日韩欧美高清在线| 欧美日韩成人综合天天影院| 日韩精品一区二区三区四区 | 国产主播一区二区三区| 成人污污视频在线观看| 在线免费不卡电影| 99精品视频中文字幕| 5566中文字幕一区二区电影| 色综合天天性综合| 国产成人高清视频| 欧美区一区二区三区| 色屁屁一区二区| 精品少妇一区二区三区在线播放| 欧美午夜精品一区| 日本久久一区二区| 精品免费一区二区三区| 亚洲欧美日韩久久| 国产一区二区不卡老阿姨| 久久99国产精品免费| 欧美专区在线观看一区| 久久久高清一区二区三区|