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

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

?? lcd_functions.c

?? The collection of AVR source code in C.
?? C
字號(hào):
//
//  Author(s)...: ATMEL Norway
//
//  Target(s)...: ATmega169
//
//  mt - used for debugging only - may not work

//  Include files
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <inttypes.h>
#include "lcd_driver.h"
#include "lcd_functions.h"
#include "BCD.h"
//#include "main.h"


#define FALSE   0
#define TRUE    (!FALSE)

char CONTRAST = LCD_INITIAL_CONTRAST;

// Start-up delay before scrolling a string over the LCD. "LCD_driver.c"
extern char gLCD_Start_Scroll_Timer;

/****************************************************************************
*
*	Function name : LCD_puts_f
*
*	Returns :		None
*
*	Parameters :	pFlashStr: Pointer to the string in flash
*                   scrollmode: Not in use
*
*	Purpose :		Writes a string stored in flash to the LCD
*
*****************************************************************************/

// mt void LCD_puts_f(char __flash *pFlashStr, char scrollmode)
void LCD_puts_f(const char *pFlashStr, char scrollmode)
{
    // char i;
	uint8_t i;

    while (gLCD_Update_Required);      // Wait for access to buffer

    // mt: for (i = 0; pFlashStr[i] && i < TEXTBUFFER_SIZE; i++)
	for (i = 0; pgm_read_byte(&pFlashStr[i]) && i < TEXTBUFFER_SIZE; i++)
    {
        // mt: gTextBuffer[i] = pFlashStr[i];
		gTextBuffer[i] = pgm_read_byte(&pFlashStr[i]);
    }

    gTextBuffer[i] = '\0';

    if (i > 6)
    {
        gScrollMode = 1;        // Scroll if text is longer than display size
        gScroll = 0;
        gLCD_Start_Scroll_Timer = 3;    //Start-up delay before scrolling the text
    }
    else
    {
        gScrollMode = 0;        
        gScroll = 0;
    }

    gLCD_Update_Required = 1;
}


/****************************************************************************
*
*	Function name : LCD_puts
*
*	Returns :		None
*
*	Parameters :	pStr: Pointer to the string
*                   scrollmode: Not in use
*
*	Purpose :		Writes a string to the LCD
*
*****************************************************************************/
void LCD_puts(char *pStr, char scrollmode)
{
	uint8_t i; // char i;
	
	while (gLCD_Update_Required);      // Wait for access to buffer

    for (i = 0; pStr[i] && i < TEXTBUFFER_SIZE; i++)
    {
        gTextBuffer[i] = pStr[i];
    }

    gTextBuffer[i] = '\0';

    if (i > 6)
    {
        gScrollMode = 1;        // Scroll if text is longer than display size
        gScroll = 0;
        gLCD_Start_Scroll_Timer = 3;    //Start-up delay before scrolling the text
    }
    else
    {
        gScrollMode = 0;        
        gScroll = 0;
    }

    gLCD_Update_Required = 1;
}


/****************************************************************************
*
*	Function name : LCD_putc
*
*	Returns :		None
*
*	Parameters :	digit: Which digit to write on the LCD
*                   character: Character to write
*
*	Purpose :		Writes a character to the LCD
*
*****************************************************************************/
// mt void LCD_putc(char digit, char character)
// mt void LCD_putc(char digit, char character)
void LCD_putc(uint8_t digit, char character)
{
    if (digit < TEXTBUFFER_SIZE)
        gTextBuffer[digit] = character;
}


/****************************************************************************
*
*	Function name : LCD_Clear
*
*	Returns :		None
*
*	Parameters :	None
*
*	Purpose :		Clear the LCD
*
*****************************************************************************/
void LCD_Clear(void)
{
    uint8_t i; // char i;
	   
    for (i=0; i<TEXTBUFFER_SIZE; i++)
        gTextBuffer[i] = '\0'; // JP changed from ' ' to stop LCD_puts_f buffer overrun
}


/****************************************************************************
*
*	Function name : LCD_Colon
*
*	Returns :		None
*
*	Parameters :	show: Enables the colon if TRUE, disable if FALSE
*
*	Purpose :		Enable/disable colons on the LCD
*
*****************************************************************************/
void LCD_Colon(char show)
{
    gColon = show;
}


/****************************************************************************
*
*	Function name : LCD_UpdateRequired
*
*	Returns :		None
*
*	Parameters :	update: TRUE/FALSE
*                   scrollmode: not in use
*
*	Purpose :		Tells the LCD that there is new data to be presented
*
*****************************************************************************/
void LCD_UpdateRequired(char update, char scrollmode)
{

    while (gLCD_Update_Required);
    
    gScrollMode = scrollmode;
    gScroll = 0;

    gLCD_Update_Required = update;
}


/****************************************************************************
*
*	Function name : LCD_FlashReset
*
*	Returns :		None
*
*	Parameters :	None
*
*	Purpose :		This function resets the blinking cycle of a flashing digit
*
*****************************************************************************/
void LCD_FlashReset(void)
{
    gFlashTimer = 0;
}


/****************************************************************************
*
*	Function name : SetContrast
*
*
*   Parameters :    char input from PC
*
*	Purpose :		Adjust the LCD contrast
*
*****************************************************************************/



void SetContrast(char input)
{

    LCD_Clear();

    LCD_putc(0, 'A');
    LCD_putc(1, 'B');
    LCD_putc(2, 'C');
    LCD_putc(3, 'D');
    LCD_putc(4, 'E');
    LCD_putc(5, 'F');

    LCD_UpdateRequired(TRUE, 0);

    LCD_CONTRAST_LEVEL(input);

}



?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人亚洲精品青草天美| 国产欧美日韩综合精品一区二区 | 欧美亚洲免费在线一区| 亚洲色图欧洲色图| 欧美性xxxxxxxx| 色屁屁一区二区| 午夜精品免费在线| 欧美成人欧美edvon| 国产+成+人+亚洲欧洲自线| 亚洲女子a中天字幕| 日韩一级二级三级| 日韩av一级片| 欧美激情一区二区三区蜜桃视频 | 色综合久久九月婷婷色综合| 成人黄色av电影| 午夜影院久久久| 在线不卡a资源高清| 成人美女视频在线看| 日本成人在线看| 麻豆久久一区二区| 亚洲精品国产a| 91福利精品第一导航| 国产精品123| 成人免费视频视频在线观看免费| 图片区日韩欧美亚洲| 日韩精品福利网| 亚洲欧美激情在线| 亚洲成人精品在线观看| 日韩电影在线一区二区| 国产在线不卡一卡二卡三卡四卡| 久久综合色天天久久综合图片| 韩国视频一区二区| 亚洲综合在线免费观看| 中文字幕国产一区二区| 精品国产乱码久久久久久久| 欧美一区二区三区在线视频| 欧美日韩卡一卡二| 国产精品资源网| 美女精品一区二区| 视频一区视频二区中文| 韩国中文字幕2020精品| 91亚洲永久精品| 国产91精品久久久久久久网曝门| 美国毛片一区二区三区| 国产精品一区二区三区乱码| 91麻豆国产福利精品| 欧美一区二区三区在线观看 | 久久99精品久久久久久动态图| 国产精品入口麻豆原神| 日韩女优av电影| 日韩久久久精品| 国产精品的网站| 精品日韩在线观看| 国产精品国模大尺度视频| 亚洲v中文字幕| 国产成人精品影视| 欧美日韩黄色一区二区| 欧美另类z0zxhd电影| 国产婷婷色一区二区三区四区| 欧美日韩视频专区在线播放| 欧美中文字幕一区二区三区亚洲| 激情小说亚洲一区| 色国产综合视频| 久久免费偷拍视频| 337p亚洲精品色噜噜| 欧美日韩大陆一区二区| 欧美国产精品专区| 亚洲天堂网中文字| 久久er精品视频| 国产成人午夜视频| 欧美精品自拍偷拍动漫精品| 日韩精品中文字幕一区二区三区| 精品va天堂亚洲国产| 一区二区三区四区在线| 五月婷婷另类国产| 一本到一区二区三区| 久久久久久久久岛国免费| 偷拍日韩校园综合在线| 一本在线高清不卡dvd| 在线观看一区二区视频| 欧美肥妇毛茸茸| 亚洲欧美另类久久久精品| 天天操天天干天天综合网| 91免费观看视频在线| 国产三级精品三级| 一区二区三区日韩在线观看| 北条麻妃一区二区三区| 欧美在线看片a免费观看| 制服丝袜激情欧洲亚洲| 一二三区精品福利视频| 97久久精品人人澡人人爽| 成人av免费在线| 久久久久久**毛片大全| 久久成人精品无人区| 成年人午夜久久久| 国产精品午夜久久| 国产一区二区三区电影在线观看 | 欧美精品一级二级三级| 亚洲精品国产无套在线观| 成人h动漫精品一区二| 欧美经典一区二区| 国产成人av一区| 国产丝袜欧美中文另类| 国产乱码精品1区2区3区| 欧美一区二区三区日韩视频| 天天影视涩香欲综合网 | 欧美猛男超大videosgay| 伊人开心综合网| 色婷婷狠狠综合| 成人欧美一区二区三区小说 | 欧美体内she精高潮| 亚洲欧美日韩国产另类专区| 成人avav在线| 国产精品美女一区二区三区| 成人在线综合网站| 国产精品乱码久久久久久 | 亚洲青青青在线视频| av综合在线播放| 亚洲美女区一区| 欧美综合久久久| 三级不卡在线观看| 欧美成人女星排行榜| 国产一区二区网址| 欧美一区二区播放| 久久www免费人成看片高清| 久久精品日韩一区二区三区| 日韩电影免费在线| 欧美xingq一区二区| 国产98色在线|日韩| 精品国精品国产| 国产成a人无v码亚洲福利| 欧美一区二区三区在线观看视频| 亚洲综合成人网| 国产乱淫av一区二区三区| 国产亚洲一区二区三区在线观看 | 精品99一区二区| 成人网页在线观看| 亚洲乱码国产乱码精品精小说 | 日韩免费观看高清完整版在线观看| 一个色妞综合视频在线观看| 51精品视频一区二区三区| 亚洲成av人影院| 欧美中文字幕亚洲一区二区va在线| 国产精品理伦片| 在线亚洲精品福利网址导航| 日韩av在线播放中文字幕| 久久久综合精品| 一本到不卡精品视频在线观看| 中文字幕欧美激情一区| 欧美日韩久久久| 国产精品一色哟哟哟| 一区二区欧美国产| 精品播放一区二区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 久久不见久久见中文字幕免费| 日韩免费视频一区二区| 久久超级碰视频| 成人一区在线观看| 亚洲va欧美va国产va天堂影院| 91猫先生在线| 麻豆精品视频在线| 亚洲精品自拍动漫在线| 色综合色狠狠综合色| 精品亚洲porn| 一区二区三区av电影| 中文在线资源观看网站视频免费不卡| 国产精品一级片在线观看| 亚洲国产精品麻豆| 国产老肥熟一区二区三区| 亚洲电影一区二区| 久久久亚洲欧洲日产国码αv| 国产精品乡下勾搭老头1| 亚洲国产日韩在线一区模特| 国产日韩欧美高清| 欧美一区二区三区色| 欧美亚洲尤物久久| 99国产精品久久久久久久久久 | 国产高清一区日本| 丝袜美腿亚洲综合| 亚洲人成网站影音先锋播放| 欧美亚洲一区二区在线| 蜜臀久久久久久久| 色婷婷一区二区| 国产伦精品一区二区三区免费| 国产精品视频你懂的| 精品国产乱码久久| 制服丝袜日韩国产| 国产成人精品亚洲777人妖| 自拍视频在线观看一区二区| 久久久久综合网| 日韩欧美的一区| 91麻豆精品国产91久久久资源速度 | 91小视频免费看| 国产综合色产在线精品| 国产精品久久久久久久蜜臀| 精品国产一区二区三区av性色| 成人激情av网| 国产成人福利片| 国产白丝网站精品污在线入口| 一区二区三区精密机械公司|