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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dbgu.c

?? EMB91SAM7S64開發板(全套資料)
?? C
字號:
//*----------------------------------------------------------------------------
//*         ATMEL Microcontroller Software Support  -  ROUSSET  -
//*----------------------------------------------------------------------------
//* The software is delivered "AS IS" without warranty or condition of any
//* kind, either express, implied or statutory. This includes without
//* limitation any warranty or condition with respect to merchantability or
//* fitness for any particular purpose, or against the infringements of
//* intellectual property rights of others.
//*----------------------------------------------------------------------------
//* File Name           : Debug.c
//* Object              : Debug menu
//* Creation            : JPP   14/Sep/2004
//*----------------------------------------------------------------------------


// Include Standard files
#include "Board.h"
#include "dbgu.h"

#define USART_SYS_LEVEL 4
/*---------------------------- Global Variable ------------------------------*/
//*--------------------------1--------------------------------------------------
//* \fn    AT91F_DBGU_Printk
//* \brief This function is used to send a string through the DBGU channel
//*----------------------------------------------------------------------------
void AT91F_DBGU_Ready(void)
{
	while (!(AT91C_BASE_DBGU->DBGU_CSR & AT91C_US_TXEMPTY));

}
//*----------------------------------------------------------------------------
//* Function Name       : Send_reset
//* Object              : Acknoledeg AIC and send reset
//*----------------------------------------------------------------------------
void Send_reset(void)
{
 void(*pfct)(void) = (void (*)(void) ) 0x00000000;

    // Acknoledge the interrupt
    // Mark the End of Interrupt on the AIC
     AT91C_BASE_AIC->AIC_EOICR=0;
     AT91F_DBGU_Ready();
    // Jump in reset
     pfct();
}

//*----------------------------------------------------------------------------
//* Function Name       : DBGU_irq_handler
//* Object              : C handler interrupt function called by the interrupts
//*                       assembling routine
//*----------------------------------------------------------------------------
void DBGU_irq_handler(void)
{
 char value;

       AT91F_DBGU_Get(&value);
       switch (value) {
       case '0': //* info
         AT91F_DBGU_Frame("Set Pull up\n\r");
         // Set
          AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,AT91C_PIO_PA16);
       break;
       case '1': //* info
           AT91F_PIO_SetOutput(AT91C_BASE_PIOA,AT91C_PIO_PA16);
           AT91F_DBGU_Printk("Clear Pull up\n\r");
         // Reset Application
            Send_reset();
       break;
       default:
	   AT91F_DBGU_Printk("\n\r");
        break;
       }// end switch
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_DBGU_Init
//* \brief This function is used to send a string through the DBGU channel (Very low level debugging)
//*----------------------------------------------------------------------------
void AT91F_DBGU_Init(void)
{
    //* Open PIO for DBGU
        AT91F_DBGU_CfgPIO();
  //* Enable Transmitter & receivier
       ((AT91PS_USART)AT91C_BASE_DBGU)->US_CR = AT91C_US_RSTTX |AT91C_US_RSTRX;

    //* Configure DBGU
	AT91F_US_Configure (
		(AT91PS_USART) AT91C_BASE_DBGU,       // DBGU base address
		MCK,
		AT91C_US_ASYNC_MODE ,                 // Mode Register to be programmed
		AT91C_DBGU_BAUD ,                     // Baudrate to be programmed
		0);                                   // Timeguard to be programmed

    //* Enable Transmitter & receivier
       ((AT91PS_USART)AT91C_BASE_DBGU)->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;

    //* Enable USART IT error and AT91C_US_ENDRX
//00    	AT91F_US_EnableIt((AT91PS_USART) AT91C_BASE_DBGU,AT91C_US_RXRDY);

    //* open interrupt
//00	AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_SYS, USART_SYS_LEVEL,AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, DBGU_irq_handler);
//00	AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_SYS);
}
//*----------------------------------------------------------------------------
//* \fn    AT91F_DBGU_Printk
//* \brief This function is used to send a string through the DBGU channel (Very low level debugging)
//*----------------------------------------------------------------------------
void AT91F_DBGU_Printk(	char *buffer)
{
    while(*buffer != '\0') {
	while (!AT91F_US_TxReady((AT91PS_USART)AT91C_BASE_DBGU));
	AT91F_US_PutChar((AT91PS_USART)AT91C_BASE_DBGU, *buffer++);
    }
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_DBGU_Frame
//* \brief This function is used to send a string through the DBGU channel
//*----------------------------------------------------------------------------
void AT91F_DBGU_Frame(	char *buffer)
{
	unsigned char len;

	for (len =0; buffer[len] != '\0'; len++){}
	AT91F_US_SendFrame((AT91PS_USART)AT91C_BASE_DBGU, buffer,len,0,0);

}

//*----------------------------------------------------------------------------
//* \fn    AT91F_US_Get
//* \brief Get a Char to USART
//*----------------------------------------------------------------------------
 int AT91F_DBGU_Get( char *val)
{
    if ((AT91F_US_RxReady((AT91PS_USART)AT91C_BASE_DBGU)) == 0) return (false);
    else
    {
	*val= AT91F_US_GetChar((AT91PS_USART)AT91C_BASE_DBGU);
        return (true);
    }
}
//*----------------------------------------------------------------------------
//* \fn    AT91F_DBGU_scanf
//* \brief Get a string to USART manage Blackspace and echo
//*----------------------------------------------------------------------------
void AT91F_DBGU_scanf(char * type,unsigned int * val)
{//* Begin
    unsigned int read = 0;
    char buff[10];
    unsigned int nb_read =0;

    while( (read != 0x0D) & (nb_read != sizeof(buff)) ) {
        //* wait the USART Ready for reception
	 while((AT91C_BASE_DBGU->DBGU_CSR  & AT91C_US_RXRDY) == 0 ) ;
        //* Get a char
	read = AT91C_BASE_DBGU->DBGU_RHR ;
        buff[nb_read]= (char)read;
        //* Manage Blackspace
        while((AT91C_BASE_DBGU->DBGU_CSR & AT91C_US_TXRDY) ==0)  {}
        if ((char)read == 0x08) {
            if ( nb_read != 0 ) {
              nb_read--;
              AT91C_BASE_DBGU->DBGU_THR = read;
            }
        }
        else {
          //* echo
          AT91C_BASE_DBGU->DBGU_THR = read;
          nb_read++;
        }
    }
    //* scan the value
    sscanf(buff,type,val);
}//* End

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美羞羞免费网站| 一区二区不卡在线视频 午夜欧美不卡在| 久久久精品日韩欧美| 日本成人在线一区| 欧美日韩不卡一区| 亚洲丶国产丶欧美一区二区三区| 国产成人午夜精品影院观看视频| 久久久精品免费观看| 国产丶欧美丶日本不卡视频| 久久丝袜美腿综合| 国产精品亚洲综合一区在线观看| 国产午夜精品一区二区| 成人午夜视频网站| 国产精品国产精品国产专区不片| 风间由美性色一区二区三区| 欧美激情艳妇裸体舞| 成人黄色在线网站| 亚洲蜜臀av乱码久久精品蜜桃| 成人app在线| 一区在线观看免费| 欧美在线免费播放| 久久久噜噜噜久久中文字幕色伊伊| 午夜av一区二区| 精品国产网站在线观看| 国产精品夜夜嗨| 亚洲免费色视频| 欧美日韩小视频| 免费成人结看片| 久久久99免费| 91视频在线观看免费| 午夜精品久久久久| 正在播放亚洲一区| 国产一区二区h| 亚洲精品免费在线| 日韩精品中文字幕一区| 岛国一区二区三区| 一区二区高清免费观看影视大全 | 懂色一区二区三区免费观看 | 国产午夜亚洲精品不卡 | 91亚洲男人天堂| 亚洲v日本v欧美v久久精品| 精品国产91洋老外米糕| 色综合久久88色综合天天| 日本vs亚洲vs韩国一区三区二区| 国产欧美日韩亚州综合| 在线观看视频一区| 韩国中文字幕2020精品| 亚洲免费av高清| 91亚洲国产成人精品一区二三| 亚洲高清视频中文字幕| 国产亚洲自拍一区| 欧美精选在线播放| 精品一区二区三区在线观看国产 | 亚洲免费观看视频| 精品区一区二区| 日本韩国欧美一区| 国产成人av电影在线播放| 亚洲国产成人av| 中文字幕一区视频| 日韩欧美国产电影| 欧美体内she精视频| 久久99久久久久久久久久久| 亚洲欧洲国产日韩| 欧美久久久久免费| 色婷婷综合久久久久中文一区二区| 久久99国产精品免费网站| 一区二区三区精品久久久| 久久综合久久99| 欧美丰满嫩嫩电影| 91精彩视频在线| 久久se精品一区二区| 午夜精品免费在线| 亚洲综合丁香婷婷六月香| 欧美日韩一区二区电影| 99久久精品免费观看| 99久久国产综合精品女不卡| 白白色亚洲国产精品| 成熟亚洲日本毛茸茸凸凹| 国产毛片精品视频| 国产suv一区二区三区88区| 高清不卡一二三区| 97成人超碰视| 欧美色精品在线视频| 欧美猛男男办公室激情| 日韩欧美激情四射| 久久综合精品国产一区二区三区| 2019国产精品| 中文字幕亚洲区| 亚洲地区一二三色| 奇米777欧美一区二区| 激情综合五月婷婷| 成人精品视频一区二区三区| 97久久精品人人做人人爽50路| 色域天天综合网| 欧美一区中文字幕| 国产亚洲一区二区三区| 亚洲欧美国产77777| 亚洲国产精品尤物yw在线观看| 日日骚欧美日韩| 国产一区视频导航| 97se狠狠狠综合亚洲狠狠| 欧美日韩一区二区三区不卡| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品嫩草久久久久| 亚洲欧洲av色图| 亚洲午夜视频在线观看| 蜜臀av一区二区三区| 国产成人福利片| 欧美亚洲动漫另类| 精品国产欧美一区二区| 中文字幕亚洲一区二区av在线| 亚洲v日本v欧美v久久精品| 精品一区二区三区在线播放视频| 成人动漫视频在线| 欧美一区二区在线免费观看| 久久精品欧美日韩| 亚洲不卡在线观看| 国产91精品免费| 欧洲一区在线电影| 久久蜜臀中文字幕| 亚洲成人午夜影院| 国产91精品在线观看| 91精品国产综合久久精品app| 久久久无码精品亚洲日韩按摩| 亚洲一区在线观看免费| 国产成人精品三级麻豆| 91精品欧美福利在线观看| 国产精品区一区二区三区| 日韩综合小视频| 一本色道久久综合狠狠躁的推荐 | 久久午夜老司机| 亚洲成av人综合在线观看| 成人精品一区二区三区四区 | 日韩精品一区二区三区在线播放| 亚洲欧洲在线观看av| 精品一区二区免费| 欧美日韩在线电影| 日韩毛片视频在线看| 国产酒店精品激情| 精品三级av在线| 午夜久久久久久久久| 99re这里只有精品视频首页| 国产视频不卡一区| 国产在线精品免费| 日韩亚洲电影在线| 午夜av一区二区| 欧美伊人久久久久久午夜久久久久| 日本一区二区成人在线| 久久99精品久久久| 日韩美女视频在线| 日韩福利视频导航| 欧美日韩高清不卡| 亚洲国产婷婷综合在线精品| 99久久国产综合精品麻豆| 国产精品婷婷午夜在线观看| 国产在线播放一区三区四| 日韩午夜精品视频| 天天色图综合网| 欧美日韩极品在线观看一区| 亚洲一区二区3| 欧美午夜电影网| 亚洲综合网站在线观看| 欧美中文字幕一区| 亚洲大片精品永久免费| 欧美三级日本三级少妇99| 亚洲精品美国一| 在线观看国产精品网站| 亚洲综合成人在线| 欧美老肥妇做.爰bbww视频| 日韩av中文在线观看| 91精品国产综合久久精品app| 日韩在线a电影| 欧美成人r级一区二区三区| 狠狠色狠狠色综合日日91app| 久久久综合视频| 成人一区二区三区| 中文字幕亚洲视频| 欧洲另类一二三四区| 亚洲va韩国va欧美va精品 | av成人老司机| 一区二区三区毛片| 欧美精品九九99久久| 蜜桃传媒麻豆第一区在线观看| 日韩一区二区三区视频| 九九**精品视频免费播放| 久久综合999| 99精品视频在线观看| 亚洲一区在线观看视频| 日韩欧美一区二区不卡| 国产一区二区91| 尤物在线观看一区| 日韩写真欧美这视频| 粉嫩在线一区二区三区视频| 亚洲精品少妇30p| 91精品国产综合久久蜜臀| 国产精品亚洲а∨天堂免在线| 国产精品视频在线看| 欧美日韩国产免费一区二区 | 国产成人综合自拍| 亚洲精品一卡二卡|