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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 44blib.c

?? ADS1.2軟件下測試
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************
   Copyright (c) 2006 by RockOS.
   All rights reserved.

   This software is supported by Rock Software Workroom.

   Any bugs please contact the author with e-mail or QQ:
     E-mail : baobaoba520@yahoo.com.cn
         QQ : 59681888
*******************************************************************************
File name   : 44b_lib.c
Description : This is the hardware management libary for QW44B0x board, the CPU
            : is ARM S3C44B0x, you should write a new hwlib.c when you are
            : porting RockOS to other board.
            :
Auther      : sunxinqiu
History     :
  2006-3-15   first release.
******************************************************************************/

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

#include "..\inc\44b.h"
#include "..\inc\44blib.h"

/******************************************************************************
Function    : void init_gpio(void)
Params      : N/A
            : 
            : 
            : 
Return      : N/A
Description : This function is used to config the GPIO registers for QW44B0x
            : board only.
******************************************************************************/
void init_gpio()
{
    // PORT A GROUP
	/*  BIT 9	8	7	6	5	4	3	2	1	0	*/
	/*  A24	  A23	A22	A21	A20	A19	A18	A17	A16	A0	*/	      
	/*  0		1	1	1	1	1	1	1	1	1	*/
	rPCONA = 0x1ff;	

	// PORT B GROUP
	/*  BIT 10	9		8		7		6		5		4		3		2		1		0		*/
	/*	/CS5	/CS4	/CS3	/CS2	/CS1	nWBE3	nWBE2	/SRAS	/SCAS	SCLK	SCKE	*/
	/*	EXT		NIC		8019	IDE		D12		NC		NC		Sdram	Sdram	Sdram	Sdram	*/
	/*	1,		1,   	1,   	1,    	1,    	0,      0,		1,    	1,    	1,   	1       */
	rPDATB = 0x04f;
	rPCONB = 0x3cf;    
    
	//PORT C GROUP
	//BUSWIDTH=16													*/
	/*  PC15	14		13		12		11		10		9		8	*/
	/*	o		o		RXD1	TXD1	o		o		o		o	*/
	/*	NC		NC		Uart1	Uart1	NC		NC		NC		NC	*/
	/*  01		01		11		11		01		01		01		01	*/

	/*  PC7		6		5		4		3		2		1		0	*/
	/*  o		o		o		o		o		o		o		o	*/
	/*  NC		NC		NC		NC		LED		LED		LED		LED	*/
	/*  01		01		01		01		01		01		01		01	*/
	rPDATC = 0x0000;	//All IO is low
	rPCONC = 0x5f555555;	
	rPUPC  = 0x3000;	//PULL UP RESISTOR should be enabled to I/O

	//PORT D GROUP
	/*  PORT D GROUP(I/O OR LCD)										*/
	/*  BIT7		6		5		4		3		2		1		0	*/
	/*  VF			VM		VLINE	VCLK	VD3		VD2		VD1		VD0	*/
	/*	01			01		01		01		01		01		01		01	*/
	rPDATD= 0x55;
	rPCOND= 0xaaaa;	
	rPUPD = 0x00;
	//These pins must be set only after CPU's internal LCD controller is enable
/////////////////////////////////////////////////////	
	//PORT E GROUP 
	/*  Bit 8		7		6		5		4		3		2		1		0		*/
	/*	ENDLAN		o		o		TOU2	o		o		RXD0	TXD0	FOUT	*/ 
	/*  00			01		01		10		01		01		10		10		11		*/	
	rPDATE	= 0x157;				//Beep = 10
	rPCONE	= 0x596b;				
	rPUPE	= 0xff;
	
	//PORT F GROUP
	/*  Bit8		7		6		5		 4		3		2		1		0		*/   
	/*  IISCLK		IISDI	IISDO	IISLRCK	Input	Input	Input	IICSDA	IICSCL	*/
	/*	100			100		100		100		00		00		00		10		10		*/	
	rPDATF = 0x0;
	rPCONF = 0x24900a;	 
	rPUPF  = 0x1d3;

	//PORT G GROUP
	/*  BIT7		6		5		4		3		2		1		0		*/
	/*	EINT7		EINT6	EINT5	EINT4	EINT3	EINT2	EINT1	EINT0	*/
	/*  KEY3		KEY2	KEY1	KEY0	NIC		EXT		IDE		USB		*/
	/*	11 			11      11      11      11      11      11      11		*/
	rPDATG = 0xff;
	rPCONG = 0x0000;
	rPUPG  = 0x00;	//should be enabled  

	rSPUCR= 0x4;//0x7;  //D15-D0 pull-up disable
	//rSPUCR= 0x6;  //D15-D0 pull-up enable
	
	rSYSCFG = 0x0e;				    //使用8K字節(jié)的指令緩存,write buffer disable		 
	rNCACHBE0 = 0xc0002000;		//定義非Cache區(qū),從0x2000000到0xbffffff,中斷時進入ROM,若不允許CACHE不正常
	rEXTINT = 0x0;				    //所有的外部硬件中斷為低電平觸發(fā)
}

/******************************************************************************
Function    : void init_irq()
Params      : N/A
            : 
            : 
            : 
Return      : N/A
Description : This function is used to config interrupt controller, and open
            : all interrupts which are accepted.
******************************************************************************/
void init_irq()
{
    /* Bit2 = 1, non-vectored interrupt mode.
     * Bit1 = 0, IRQ interrupt enable.
     * Bit0 = 0, FIQ interrupt enable.
     */
    rINTCON = 0x4;

    /*
     * INTMSK: All interrupts are inhibited, but global mask(Bit 26) bit is cleared.
     */
    rINTMSK = 0x03ffffff;

    /*
     * INTMOD: All interrupts are in IRQ mode.
     */
    rINTMOD = 0x0;
}
/******************************************************************************
Function    : void enable_irq()
Params      : N/A
            :
Return      : N/A
Description : Enable IRQ by clear the CPSR's I bit.
            :
******************************************************************************/
void enable_irq()
{
    __asm
    {
        mrs r0, CPSR
        bic r0, r0, #0x80
        msr CPSR_c, r0
    }
}

/******************************************************************************
Function    : void disable_irq()
Params      : N/A
            :
Return      : N/A
Description : Disable IRQ by set the CPSR's I bit.
            :
******************************************************************************/
void disable_irq()
{
    __asm
    {
        mrs r0, CPSR
        orr r0, r0, #0x80
        msr CPSR_c, r0
    }
}

/******************************************************************************
Function    : void init_pwm(void)
Params      : N/A
            : 
            : 
            : 
Return      : N/A
Description : This function configs some basic registers for PWM timer.
            : 
******************************************************************************/
void init_pwm()
{
    /* MCLK is 32MHz,
     * Timer 4&5's resolving power is 0.1ms(100us, frequency is 10KHz)
     * Timer 2&3's resolving power is 0.01ms(10us, frequency is 0.1MHz)
     * Timer 0&1's resolving power is 0.001ms(1us, frequency is 1MHz)
     */

    /* Bit 31..24 : Dead zone length
     * Bit 23..16 : Perscaler2, for Timer 4 & 5
     * Bit 15..8  : Perscaler1, for Timer 2 & 3
     * Bit 7..0   : Perscaler0, for Timer 0 & 1
     */
    rTCFG0 = (0<<24)      /* dead zone */
             |(199<<16)   /* perscaler for Timer 4&5 */
             |(19<<8)     /* perscaler for Timer 2&3 */
             |1;          /* perscaler for Timer 0&1 */

    /* Bit 27..24 : DAM mode
     * Bit 23..20 : MUX 5
     * Bit 19..16 : MUX 4
     * Bit 15..12 : MUX 3
     * BIT 11..8  : MUX 2
     * BIT 7..4   : MUX 1
     * BIT 3..0   : MUX 0
     */
    rTCFG1 = (0<<24)      /* DMA mode, none timer */
             |(3<<20)     /* 1/16 for timer 5. */
             |(3<<16)     /* 1/16 for timer 4. */
             |(3<<12)     /* 1/16 for timer 3. */
             |(3<<8)      /* 1/16 for timer 2. */
             |(3<<4)      /* 1/16 for timer 1. */
             |3;          /* 1/16 for timer 0. */
}

/******************************************************************************
Function    : void pwm_start (int which, int tout, int periodly)
Params      : which  - PWM Timer 0, 1 ... 5
            : tout   - the counter for generating TOUT with devidered frequence.
            :          should be 1 ~ 65535
            : periodly - indicate whether start pwm timer periodly or only once,
            :            0 for only once, 1 for periodly.
            : 
Return      : N/A
Description : This function start a special PWM timer.
            : 
******************************************************************************/
void pwm_start (int which, int tout, int periodly)
{
    unsigned ctrl;
    unsigned ctrlMsk;

    char buff[256];

    if ((tout > 65535)||(tout == 0))
    {
        sprintf(&buff[0], "pwm_start(): tout [%d] invalid for pwm timer [%d]...\n", tout, which);
        UART_sendString(UART_CH0, &buff[0]);
        return;
    }

    /* The TCON register format is:
     * Bit 26 : Timer 5 auto reload on/off
     * Bit 25 : Timer 5 manual update
     * Bit 24 : Timer 5 start/stop
     * Bit 23 : Timer 4 auto reload on/off
     * Bit 22 : Timer 4 output inverter on/off
     * Bit 21 : Timer 4 manual update
     * Bit 20 : Timer 4 start/stop
     * Bit 19 : Timer 3 auto reload on/off
     * Bit 18 : Timer 3 output inverter on/off
     * Bit 17 : Timer 3 manual update
     * Bit 16 : Timer 3 start/stop
     * Bit 15 : Timer 2 auto reload on/off
     * Bit 14 : Timer 2 output inverter on/off
     * Bit 13 : Timer 2 manual update
     * Bit 12 : Timer 2 start/stop
     * Bit 11 : Timer 1 auto reload on/off
     * Bit 10 : Timer 1 output inverter on/off
     * Bit 9  : Timer 1 manual update
     * Bit 8  : Timer 1 start/stop
     * Bit 7..5 : not used.
     * Bit 4  : Dead zone enable
     * Bit 3  : Timer 0 auto reload on/off, 1 for auto reload
     * Bit 2  : Timer 0 output inverter on/off, 1 for inverter on
     * Bit 1  : Timer 0 manual update, 1 for manual update, 0 for no operation
     * Bit 0  : Timer 0 start/stop, 1 for start
     */
    switch (which)
    {
    case PWM_TIMER0:
        /* Write the initial value into TCNTB0 and TCMPB0 */
        rTCNTB0 = tout;
        rTCMPB0 = tout>>1;

        /* Set the manual update bit of the corresponding timer. */
        ctrlMsk = ~(0xf<<0);
        ctrl = rTCON & ctrlMsk;
        ctrl |= (0x2<<0);    /* auto reload off,
                              * inverter off,
                              * manual update,
                              * timer stop.
                              */
        rTCON = ctrl;

        /* Set the start bit of the corresponding timer to start the timer,
         * At the same time, clear the manual update bit.*/
        ctrl &= ~(0xf<<0);
        if (periodly != 0)
        {
            ctrl |= (0xd<<0);   /* auto-reload on(Interval mode)
                                 * Timer output inverter on
                                 * No operation (for manual update off)
                                 * Timer start
                                 */

        }
        else
        {
            ctrl |= (0x5<<0);   /* auto-reload off (one shot mode)
                                 * Timer output inverter on
                                 * No operation (for manual update off)
                                 * Timer start
                                 */
        }
        rTCON = ctrl;
        break;
    case PWM_TIMER1:
        /* Write the initial value into TCNTB1 and TCMPB1 */
        rTCNTB1 = tout;
        rTCMPB1 = tout>>1;

        /* Set the manual update bit of the corresponding timer. */
        ctrlMsk = ~(0xf<<8);
        ctrl = rTCON & ctrlMsk;
        ctrl |= 0x2<<8;    /* auto reload off,
                            * inverter off,
                            * manual update,
                            * timer stop.
                            */
        rTCON = ctrl;

        /* Set the start bit of the corresponding timer to start the timer,
           At the same time, clear the manual update bit.*/
        ctrl &= ~(0xf<<8);
        if (periodly != 0)
        {
            ctrl |= (0xd<<8);   /* auto-reload on(Interval mode)
                                 * Timer output inverter on
                                 * No operation (for manual update off)
                                 * Timer start
                                 */

        }
        else
        {
            ctrl |= (0x5<<8);   /* auto-reload off (one shot mode)
                                 * Timer output inverter on
                                 * No operation (for manual update off)
                                 * Timer start
                                 */
        }
        rTCON = ctrl;
        break;
    case PWM_TIMER2:
        /* Write the initial value into TCNTB2 and TCMPB2 */
        rTCNTB2 = tout;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区在线看| 色哟哟国产精品免费观看| 99re热这里只有精品视频| 欧美精品粉嫩高潮一区二区| 国产精品视频一二三区| 日韩va欧美va亚洲va久久| 成人av网址在线| 精品久久久久久久久久久久久久久 | 日韩欧美高清一区| 亚洲视频每日更新| 国产99精品在线观看| 91精品国产综合久久香蕉的特点| 1024成人网| 国产成人av影院| 久久影院电视剧免费观看| 三级精品在线观看| 欧洲av一区二区嗯嗯嗯啊| 亚洲欧洲精品天堂一级| 国产91在线看| 国产色91在线| 国产成人99久久亚洲综合精品| 日韩欧美国产三级电影视频| 亚洲成人777| 欧美日韩久久久| 亚洲线精品一区二区三区八戒| caoporm超碰国产精品| 国产日韩欧美综合一区| 久久精品国产一区二区三| 日韩精品综合一本久道在线视频| 天天做天天摸天天爽国产一区| 日本韩国精品一区二区在线观看| 国产精品不卡一区| 波多野结衣精品在线| 中文字幕中文乱码欧美一区二区| 国产1区2区3区精品美女| 欧美激情在线免费观看| 成人国产免费视频| 亚洲猫色日本管| 欧美日韩在线观看一区二区 | 亚洲欧美日韩电影| 色94色欧美sute亚洲线路一ni| 专区另类欧美日韩| 91丨九色丨黑人外教| 亚洲人123区| 欧美日韩dvd在线观看| 日韩高清一区二区| 精品成人私密视频| 成人性视频免费网站| 亚洲欧洲韩国日本视频| 91国偷自产一区二区三区观看| 亚洲永久精品大片| 欧美精品日日鲁夜夜添| 九色综合国产一区二区三区| 国产午夜三级一区二区三| www.久久精品| 午夜国产精品一区| 久久久久久久久免费| 不卡视频在线看| 亚洲高清免费观看高清完整版在线观看| 91激情在线视频| 麻豆国产一区二区| 国产精品久久久久久久久免费相片| 成人视屏免费看| 亚洲午夜日本在线观看| 欧美大胆一级视频| 播五月开心婷婷综合| 亚洲成av人片在线观看无码| 久久综合成人精品亚洲另类欧美 | 欧美日韩国产综合一区二区| 精品夜夜嗨av一区二区三区| **欧美大码日韩| 精品久久国产老人久久综合| 91日韩一区二区三区| 免费看欧美美女黄的网站| 国产精品色哟哟网站| 制服丝袜av成人在线看| 成人午夜免费av| 日韩av一区二区三区四区| 日本一区二区三区久久久久久久久不| 色综合中文综合网| 欧美日韩一区二区三区在线| 精品在线播放午夜| 亚洲麻豆国产自偷在线| 国产亚洲一区二区在线观看| 欧美高清视频一二三区| 91视频www| 国产盗摄一区二区| 蜜桃精品视频在线| 亚洲一区av在线| 中文一区二区在线观看| 日韩精品一区二区三区蜜臀 | 欧美亚洲高清一区二区三区不卡| 激情五月婷婷综合| 丝袜美腿亚洲一区二区图片| 1024成人网| 国产精品久久免费看| 日韩欧美综合一区| 欧美丰满少妇xxxxx高潮对白| av午夜一区麻豆| 国产大片一区二区| 激情欧美一区二区| 蜜臀av在线播放一区二区三区| 亚洲国产你懂的| 伊人婷婷欧美激情| 国产精品久久久久久妇女6080| 久久新电视剧免费观看| 日韩视频免费直播| 欧美一区二区三级| 4438成人网| 欧美疯狂性受xxxxx喷水图片| 在线看日本不卡| 欧美亚洲一区三区| 欧洲激情一区二区| 色网综合在线观看| 在线欧美日韩精品| 日本久久电影网| 欧美性色黄大片| 欧美日韩精品一区二区三区四区 | 亚洲视频一二区| 亚洲精品国产精华液| 一二三四区精品视频| 亚洲综合一区二区三区| 亚洲高清在线精品| 日本色综合中文字幕| 日本不卡一二三区黄网| 免费观看成人av| 韩国在线一区二区| 成人激情文学综合网| 91香蕉视频黄| 欧美在线短视频| 欧美高清激情brazzers| 欧美videossexotv100| 欧美国产精品一区二区三区| 国产精品国产三级国产普通话蜜臀 | 美国一区二区三区在线播放| 免费的成人av| 高清av一区二区| 日本韩国欧美一区| 欧美r级在线观看| 欧美激情一区二区三区| 亚洲黄色性网站| 免费美女久久99| 91一区二区在线观看| 3d动漫精品啪啪1区2区免费| 久久女同精品一区二区| 亚洲男同1069视频| 免费精品视频最新在线| 成人久久18免费网站麻豆| 欧美日韩国产综合一区二区三区| 精品999在线播放| 亚洲精品自拍动漫在线| 奇米亚洲午夜久久精品| 9i看片成人免费高清| 欧美一区二区成人| 国产精品灌醉下药二区| 午夜不卡av免费| 成人综合激情网| 在线不卡欧美精品一区二区三区| 国产日韩欧美激情| 日韩高清不卡一区二区三区| av电影天堂一区二区在线| 日韩亚洲欧美综合| 一区二区三区在线免费播放| 黄色精品一二区| 欧美日韩不卡在线| 综合久久久久综合| 国内精品第一页| 欧美日韩在线不卡| 中文字幕一区二区三区色视频| 日本成人在线一区| 91久久国产综合久久| 久久久91精品国产一区二区三区| 亚洲中国最大av网站| 北条麻妃国产九九精品视频| 日韩色在线观看| 夜夜精品视频一区二区| 国产a久久麻豆| 精品国产乱码久久久久久老虎 | 成人永久免费视频| 精品日韩99亚洲| 日韩激情视频在线观看| 色婷婷久久一区二区三区麻豆| 国产三级一区二区三区| 韩国女主播一区| 日韩欧美国产午夜精品| 日韩精品三区四区| 欧美精品1区2区3区| 亚洲国产日韩精品| 色悠悠久久综合| 一区在线观看免费| a美女胸又www黄视频久久| 国产精品三级电影| av在线综合网| 国产精品久久久久永久免费观看| 国产ts人妖一区二区| 国产精品免费aⅴ片在线观看| 国产成人亚洲综合a∨猫咪| 久久嫩草精品久久久久| 国产福利一区二区| 国产欧美视频在线观看|