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

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

?? dbgu.c

?? AT91SAM7S-BasicUSB的源代碼
?? 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
    	AT91F_US_EnableIt((AT91PS_USART) AT91C_BASE_DBGU,AT91C_US_RXRDY);

    //* open interrupt
	AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_SYS, USART_SYS_LEVEL,AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, DBGU_irq_handler);
	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一区二区三区免费野_久草精品视频
一区二区三区高清不卡| 久久综合久久99| 亚洲精品高清在线| 欧美综合色免费| 日韩精品成人一区二区在线| 欧美一区二区三区视频| 日韩福利视频导航| 精品福利二区三区| 成人国产精品视频| 亚洲激情图片qvod| 日韩一区国产二区欧美三区| 国产一区二区福利视频| 中文字幕国产精品一区二区| 在线视频欧美精品| 日本不卡高清视频| 中文字幕不卡的av| 欧美日韩一本到| 狠狠色狠狠色综合日日91app| 日本一区二区三区高清不卡| 99久久免费国产| 日韩国产在线观看| 久久久国产综合精品女国产盗摄| 97se亚洲国产综合在线| 亚洲va欧美va人人爽| 欧美精品一区二区蜜臀亚洲| 成人av中文字幕| 日产国产高清一区二区三区| 欧美精彩视频一区二区三区| 欧美三日本三级三级在线播放| 久久国产精品72免费观看| 亚洲色图都市小说| 精品国产免费人成电影在线观看四季| 97久久久精品综合88久久| 日韩精品成人一区二区三区| 国产精品免费网站在线观看| 制服丝袜激情欧洲亚洲| av激情综合网| 麻豆国产欧美日韩综合精品二区| 日韩毛片一二三区| 久久毛片高清国产| 欧美精选在线播放| 91色婷婷久久久久合中文| 精品一区二区三区日韩| 亚洲一区二区五区| 国产精品福利影院| 久久久久久亚洲综合影院红桃| 欧美在线免费视屏| 99天天综合性| 国产精品一区二区三区99| 亚洲444eee在线观看| 亚洲视频在线观看三级| 精品久久人人做人人爰| 欧美精选在线播放| 欧美亚洲国产怡红院影院| 国产成人精品1024| 国产一区二区调教| 欧美高清dvd| 欧美影视一区二区三区| 一区二区三区鲁丝不卡| 日韩精品自拍偷拍| av在线免费不卡| 国产成人日日夜夜| 麻豆成人久久精品二区三区小说| 一区二区三区在线观看欧美 | 久久爱另类一区二区小说| 亚洲最色的网站| 亚洲色欲色欲www| 国产精品成人免费在线| 久久精品视频一区二区三区| 欧美成人综合网站| 日韩免费电影一区| 日韩午夜小视频| 日韩精品在线一区| 日韩欧美国产电影| 精品国产1区二区| 日韩欧美一级片| ww久久中文字幕| 精品va天堂亚洲国产| 亚洲精品一线二线三线| 2019国产精品| 国产欧美日韩精品在线| 成人久久视频在线观看| 精品亚洲porn| 国产伦精品一区二区三区在线观看| 久久99久久99精品免视看婷婷| 久久精品国产澳门| 韩国欧美国产1区| 国产精品乡下勾搭老头1| 国产精品一线二线三线| 成人av在线影院| 99久久综合精品| 欧美在线视频不卡| 678五月天丁香亚洲综合网| 91麻豆精品国产| 精品国产一区二区在线观看| 国产拍欧美日韩视频二区| 自拍偷自拍亚洲精品播放| 亚洲永久免费av| 美脚の诱脚舐め脚责91 | 国产91在线看| 一本在线高清不卡dvd| 欧美日韩黄色一区二区| 日韩欧美色电影| 中文字幕一区二区三区蜜月| 一区二区久久久| 久久精品国产第一区二区三区| 国产成人综合自拍| 欧美午夜精品一区二区三区| 精品少妇一区二区| 亚洲三级在线免费观看| 蜜桃视频免费观看一区| 国产一区二区视频在线播放| 一本色道久久综合亚洲aⅴ蜜桃| 欧美精品在线观看播放| 国产精品午夜久久| 奇米精品一区二区三区在线观看| 成人黄色免费短视频| 欧美男男青年gay1069videost| 日本久久一区二区| 精品三级在线看| 亚洲欧美经典视频| 日本欧洲一区二区| 欧美性极品少妇| 久久久精品免费网站| 亚洲人吸女人奶水| 丝袜美腿亚洲一区二区图片| 国产一区在线不卡| 欧美久久久久久久久久| 精品精品国产高清a毛片牛牛| 欧美国产视频在线| 亚洲电影第三页| 国产福利精品一区二区| 91精品国产欧美一区二区成人 | 欧美日韩在线电影| 精品欧美久久久| 亚洲三级在线免费观看| 国产精品一级在线| 欧美性三三影院| 久久久www成人免费毛片麻豆| 亚洲精品乱码久久久久久久久| 成人欧美一区二区三区小说| 国产一区二区剧情av在线| 日本精品免费观看高清观看| 日韩免费高清电影| 艳妇臀荡乳欲伦亚洲一区| 日韩国产高清在线| 欧美日韩午夜在线| 中文字幕av一区二区三区高| 日韩国产精品大片| 一本久久a久久精品亚洲| 日韩亚洲欧美中文三级| 丝袜亚洲精品中文字幕一区| av综合在线播放| 久久亚洲综合色| 日韩国产欧美在线视频| 欧美精品tushy高清| 一区在线中文字幕| 国产精品一二三四| 日韩欧美一区二区视频| 亚洲三级理论片| 95精品视频在线| 国产欧美日韩另类一区| 久久97超碰色| 91精品国产综合久久精品麻豆| 中文字幕欧美区| 国产精品123区| 日韩免费观看高清完整版| 午夜欧美2019年伦理| 成人免费av资源| 国产精品久久久久精k8| 成熟亚洲日本毛茸茸凸凹| 精品国内片67194| 美女免费视频一区二区| 欧美卡1卡2卡| 五月天激情综合| 欧美性videosxxxxx| 一区二区三区蜜桃网| 韩国毛片一区二区三区| 日本一区二区三区四区在线视频| 国产精品一区二区在线看| 精品日韩在线观看| 韩国女主播一区二区三区| 国产欧美精品国产国产专区| 国产福利一区在线| 久久99九九99精品| 成人天堂资源www在线| 欧美人妇做爰xxxⅹ性高电影 | 亚洲欧美电影院| 国产精品自拍网站| 国产亚洲短视频| 国产99久久久国产精品| 一区二区三区国产精品| 欧美一a一片一级一片| 亚洲一级二级三级在线免费观看| 91理论电影在线观看| 国产精品色哟哟网站| 欧美午夜精品电影| 日本不卡在线视频| 26uuu精品一区二区| 东方欧美亚洲色图在线|