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

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

?? rd_useserialframe_proc.s

?? LCD1602鍵盤顯示模塊實(shí)例
?? S
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
	.module RD_UseSerialFrame_PROC.c
	.area text(rom, con, rel)
	.dbfile O:\2007全國(guó)電子設(shè)計(jì)大賽\鍵盤顯示模塊\RD_UseSerialFrame_PROC.c
	.dbfunc e SFP_NULL_Output_Data_Function _SFP_NULL_Output_Data_Function fc
;              p -> R10,R11
;          cData -> y+2
	.even
_SFP_NULL_Output_Data_Function::
	st -y,r17
	st -y,r16
	st -y,R10
	st -y,R11
	.dbline -1
	.dbline 94
; /***********************************************************
; *   函數(shù)庫(kù)說明:串行通信數(shù)據(jù)幀處理函數(shù)函數(shù)庫(kù)               *
; *   版本:      v1.00                                      *
; *   作者:      王卓然                                     *
; *   創(chuàng)建日期:  2007年4月6日                               *
; * -------------------------------------------------------- *
; *  [支 持 庫(kù)]                                              *
; *   支持庫(kù)名稱:LIB_Config.h                               *
; *   需要版本:  -----                                      *
; *   支持庫(kù)說明:庫(kù)函數(shù)配置聲明庫(kù)                           *
; *                                                          *
; *   支持庫(kù)名稱:RD_MacroAndConst.h                         *
; *   需要版本:  v0.01 &abv                                 *
; *   支持庫(kù)說明:系統(tǒng)常用宏定義庫(kù)                           *
; *                                                          *
; *   支持庫(kù)名稱:RD_UseSerialFrame_PROC.h                   *
; *   需要版本:  -----                                      *
; *   支持庫(kù)名稱:串行通信數(shù)據(jù)幀處理函數(shù)聲明庫(kù)               *
; * -------------------------------------------------------- *
; *  [版本更新]                                              *
; *   修改:                                                 *
; *   修改日期:                                             *
; *   版本:                                                 *
; * -------------------------------------------------------- *
; *  [版本歷史]                                              *
; * -------------------------------------------------------- *
; *  [使用說明]                                              *
; ***********************************************************/
; 
; /********************
; * 頭 文 件 配 置 區(qū) *
; ********************/
; # include "RD_MacroAndConst.h"
; # include "RD_ADT_QUEUE.h"
; # include "RD_ADT_MSGMap.h"
; # include "RD_UseSerialFrame_PROC.h"
; # include "RD_UseBits.h"
; 
; /********************
; *   系 統(tǒng) 宏 定 義  *
; ********************/
; 
; /*------------------*
; *   常 數(shù) 宏 定 義  *
; *------------------*/
; 
; /*------------------*
; *   動(dòng) 作 宏 定 義  *
; *------------------*/
; # define SFP_ACTION_FLAG            SET_BIT8_FORMAT(cTempActionFlag)
; # define SFP_STOP_ALL_ACTION        cTempActionFlag = NULL;
; # define SFP_WAIT_FOR_FRAME_HEAD    SFP_ACTION_FLAG.BIT0
; # define SFP_WAIT_FOR_FRAME_SIZE    SFP_ACTION_FLAG.BIT1
; # define SFP_WAIT_FOR_ALL_DATA      SFP_ACTION_FLAG.BIT2
; 
; 
; /********************
; *  用戶變量類型定義 *
; ********************/
; 
; /********************
; *    結(jié)構(gòu)體定義區(qū)   *
; ********************/
; 
; /********************
; *   模塊函數(shù)聲明區(qū)  *
; ********************/
; static void SFP_Check_Frames(SERIAL_FRAME_PROCESS *pSFP);
; 
; /********************
; *   全局函數(shù)聲明區(qū)  *
; ********************/
; void Serial_Frame_Process(SERIAL_FRAME_PROCESS *pSFP);
; BOOL SFP_NULL_Output_Data_Function(uint8 cData);
; BOOL SFP_NULL_Input_Data_Function(uint8 *pData);
; BOOL SFP_NULL_Peek_Data_Function(uint8 *pData);
; BOOL SPF_Send_MSG(SERIAL_FRAME_PROCESS *pSFP,
;                   uint8 cCMD,uint8 *pMSG,uint8 Length);
; /********************
; *   模塊變量聲明區(qū)  *
; ********************/
; 
; /********************
; *   全局變量聲明區(qū)  *
; ********************/
; 
; /***********************************************************
; *   函數(shù)說明:數(shù)據(jù)輸出空函數(shù)                               *
; *   輸入:    數(shù)據(jù)                                         *
; *   輸出:    FALSE                                        *
; *   調(diào)用函數(shù):無                                           *
; ***********************************************************/
; BOOL SFP_NULL_Output_Data_Function(uint8 cData)
; {
	.dbline 95
;     uint8 *p = &cData;
	movw R24,R28
	adiw R24,2
	movw R10,R24
	.dbline 97
;     
;     return FALSE;
	clr R16
	.dbline -2
L1:
	.dbline 0 ; func end
	ld R11,y+
	ld R10,y+
	adiw R28,2
	ret
	.dbsym r p 10 pc
	.dbsym l cData 2 c
	.dbend
	.dbfunc e SFP_NULL_Input_Data_Function _SFP_NULL_Input_Data_Function fc
;          pData -> R16,R17
	.even
_SFP_NULL_Input_Data_Function::
	.dbline -1
	.dbline 107
; }
; 
; /***********************************************************
; *   函數(shù)說明:數(shù)據(jù)輸入空函數(shù)                               *
; *   輸入:    指針                                         *
; *   輸出:    FALSE                                        *
; *   調(diào)用函數(shù):無                                           *
; ***********************************************************/
; BOOL SFP_NULL_Input_Data_Function(uint8 *pData)
; {
	.dbline 108
;     (*pData) = NULL;
	clr R2
	movw R30,R16
	std z+0,R2
	.dbline 110
;     
;     return FALSE;
	clr R16
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbsym r pData 16 pc
	.dbend
	.dbfunc e SFP_NULL_Peek_Data_Function _SFP_NULL_Peek_Data_Function fc
;          pData -> R16,R17
	.even
_SFP_NULL_Peek_Data_Function::
	.dbline -1
	.dbline 120
; }
; 
; /***********************************************************
; *   函數(shù)說明:數(shù)據(jù)察看空函數(shù)                               *
; *   輸入:    指針                                         *
; *   輸出:    FALSE                                        *
; *   調(diào)用函數(shù):無                                           *
; ***********************************************************/
; BOOL SFP_NULL_Peek_Data_Function(uint8 *pData)
; {
	.dbline 121
;     (*pData) = NULL;
	clr R2
	movw R30,R16
	std z+0,R2
	.dbline 123
;     
;     return FALSE;
	clr R16
	.dbline -2
L3:
	.dbline 0 ; func end
	ret
	.dbsym r pData 16 pc
	.dbend
	.dbfunc e Serial_Frame_Process _Serial_Frame_Process fV
	.dbstruct 0 18 AbstructDataTypeQueue
	.dbfield 0 pBuffer pc
	.dbfield 2 nSize i
	.dbfield 4 nHead i
	.dbfield 6 nTail i
	.dbfield 8 nCount i
	.dbfield 10 fnAddToBuffer pfc
	.dbfield 12 fnGetFromBuffer pfc
	.dbfield 14 fnCheckEmpty pfc
	.dbfield 16 fnPeekFromBuffer pfc
	.dbend
	.dbstruct 0 3 MsgMapItem
	.dbfield 0 cCMD c
	.dbfield 1 pMsgFunc pfc
	.dbend
	.dbstruct 0 3 MsgMap
	.dbfield 0 cItemCount c
	.dbfield 1 pMsgItems pS[MsgMapItem]
	.dbend
	.dbstruct 0 4 MsgItem
	.dbfield 0 cCMD c
	.dbfield 1 cDataLength c
	.dbfield 2 pData pc
	.dbend
	.dbstruct 0 37 SerialFrameProcess
	.dbfield 0 FrameBuffer S[AbstructDataTypeQueue]
	.dbfield 18 pMsgMap pS[MsgMap]
	.dbfield 20 MsgItem S[MsgItem]
	.dbfield 24 cHeadByte c
	.dbfield 25 cEndByte c
	.dbfield 26 cFixLength c
	.dbfield 27 cAddress c
	.dbfield 28 InputDataFunc pfc
	.dbfield 30 OutputDataFunc pfc
	.dbfield 32 PeekDataFunc pfc
	.dbfield 34 cActionFlag c
	.dbfield 35 cXORCheck c
	.dbfield 36 cFrameSize c
	.dbend
;      cTempData -> y+1
;         pQueue -> R22,R23
; cTempActionFlag -> y+0
;           pSFP -> R20,R21
	.even
_Serial_Frame_Process::
	xcall push_xgsetF00C
	movw R20,R16
	sbiw R28,2
	.dbline -1
	.dbline 134
; }
; 
; 
; /***********************************************************
; *   函數(shù)說明:串行通訊數(shù)據(jù)幀處理函數(shù)                       *
; *   輸入:    要處理的數(shù)據(jù)幀結(jié)構(gòu)指針                       *
; *   輸出:    無                                           *
; *   調(diào)用函數(shù):SFP_Check_Frames()                           *
; ***********************************************************/
; void Serial_Frame_Process(SERIAL_FRAME_PROCESS *pSFP)
; {
	.dbline 135
;     uint8 cTempActionFlag = pSFP->cActionFlag;
	movw R30,R20
	ldd R2,z+34
	std y+0,R2
	.dbline 136
;     uint8 cTempData = 0;
	clr R2
	std y+1,R2
	.dbline 137
;     ADT_QUEUE *pQueue = &(pSFP->FrameBuffer);
	movw R22,R30
	.dbline 140
; 
;     
;     if (!(*(pSFP->InputDataFunc))(&cTempData))              //利用函數(shù)指針調(diào)用函數(shù)
	movw R16,R28
	subi R16,255  ; offset = 1
	sbci R17,255
	ldd R26,z+28
	ldd R27,z+29
	movw R30,R26
	xcall xicallx
	tst R16
	brne L5
X0:
	.dbline 141
;     {
	.dbline 142
;         return ;
	xjmp L4
L5:
	.dbline 145
;     }
;     
;     if (cTempActionFlag == NULL)
	ldd R2,y+0
	tst R2
	brne L7
X1:
	.dbline 146
;     {
	.dbline 147
;         pSFP->cXORCheck = 0;
	clr R2
	movw R30,R20
	std z+35,R2
	.dbline 148
;         pSFP->cFrameSize = 0;
	std z+36,R2
	.dbline 149
;         SFP_WAIT_FOR_FRAME_HEAD = TRUE;
	ldd R24,y+0
	ori R24,1
	std y+0,R24
	.dbline 150
;     }
L7:
	.dbline 152
;     
;     if (SFP_WAIT_FOR_FRAME_HEAD)
	movw R30,R28
	ldd R24,z+0
	andi R24,1
	brne X13
	xjmp L9
X13:
X2:
	.dbline 153
;     {
	.dbline 154
;         if (cTempData == pSFP->cHeadByte)
	movw R30,R20
	ldd R2,z+24
	ldd R3,y+1
	cp R3,R2
	breq X14
	xjmp L4
X14:
X3:
	.dbline 155
;         {
	.dbline 156
;             ADT_ADD_DATA_TO_QUEUE((*pQueue),cTempData);
	mov R18,R3
	movw R16,R22
	movw R24,R22
	adiw R24,10
	movw R30,R24
	ldd R26,z+0
	ldd R27,z+1
	movw R30,R26
	xcall xicallx
	.dbline 159
;             
;             
;             if (!(pSFP->cFixLength))
	movw R30,R20
	ldd R2,z+26
	tst R2
	brne L13
X4:
	.dbline 160
;             {
	.dbline 162
;                 //變長(zhǎng)數(shù)據(jù)幀
;                 SFP_WAIT_FOR_FRAME_SIZE = TRUE;
	ldd R24,y+0
	ori R24,2
	std y+0,R24
	.dbline 163
;             }
	xjmp L14
L13:
	.dbline 165
;             else
;             {
	.dbline 167
;                 //固定長(zhǎng)度的數(shù)據(jù)幀
;                 SFP_WAIT_FOR_ALL_DATA = TRUE;
	ldd R24,y+0
	ori R24,4
	std y+0,R24
	.dbline 168
;                 pSFP->cFrameSize = pSFP->cFixLength;
	movw R30,R20
	ldd R2,z+26
	std z+36,R2
	.dbline 169
;             }
L14:
	.dbline 171
;             
;             SFP_WAIT_FOR_FRAME_HEAD = FALSE;
	ldd R24,y+0
	andi R24,254
	std y+0,R24
	.dbline 172
;             pSFP->cActionFlag = cTempActionFlag;
	mov R2,R24
	movw R30,R20
	std z+34,R2
	.dbline 174
;             
;         }
	.dbline 176
;         
;         return ;
	xjmp L4
L9:
	.dbline 179
;     }
;     
;     if (SFP_WAIT_FOR_FRAME_SIZE)
	movw R30,R28
	ldd R24,z+0
	lsr R24
	andi R24,1
	brne X15
	xjmp L15
X15:
X5:
	.dbline 180
;     {
	.dbline 182
;         
;         if (cTempData > (pQueue->nSize))
	movw R30,R22
	ldd R2,z+2
	ldd R3,z+3
	ldd R4,y+1
	clr R5
	cp R2,R4
	cpc R3,R5
	brsh L17
X6:
	.dbline 183
;         {
	.dbline 186
;             //錯(cuò)誤的數(shù)據(jù)幀長(zhǎng)度
;            
;             ADT_QUEUE_LET_EMPTY((*pQueue))                  //清空隊(duì)列
	.dbline 186
	clr R2
	clr R3
	std z+5,R3
	std z+4,R2
	.dbline 186
	std z+7,R3
	std z+6,R2
	.dbline 186
	std z+9,R3
	std z+8,R2
	.dbline 186
	.dbline 188
; 
;             SFP_STOP_ALL_ACTION
	std y+0,R2
	.dbline 189
;         }
	xjmp L18
L17:
	.dbline 191
;         else
;         {
	.dbline 193
;             //有效的數(shù)據(jù)幀長(zhǎng)度
;             pSFP->cFrameSize = cTempData;                   //更新數(shù)據(jù)幀長(zhǎng)度信息
	ldd R2,y+1
	movw R30,R20
	std z+36,R2
	.dbline 194
;             pSFP->cXORCheck ^= cTempData;
	movw R24,R30
	adiw R24,35
	movw R30,R24
	ldd R3,z+0
	eor R3,R2
	std z+0,R3
	.dbline 196
;             
;             ADT_ADD_DATA_TO_QUEUE((*pQueue),cTempData);     //將該信息添加到緩沖區(qū)
	mov R18,R2
	movw R16,R22
	movw R24,R22
	adiw R24,10
	movw R10,R24
	movw R30,R24
	ldd R26,z+0
	ldd R27,z+1
	movw R30,R26
	xcall xicallx
	.dbline 199
;             
;             
;             SFP_WAIT_FOR_ALL_DATA = TRUE;
	ldd R24,y+0
	ori R24,4
	std y+0,R24
	.dbline 200
;             SFP_WAIT_FOR_FRAME_SIZE = FALSE;        
	andi R24,253
	std y+0,R24
	.dbline 201
;         }
L18:
	.dbline 203
;         
;         pSFP->cActionFlag = cTempActionFlag;
	ldd R2,y+0
	movw R30,R20
	std z+34,R2
	.dbline 204
;         return ;
	xjmp L4
L15:
	.dbline 207
;     }
;     
;     if (SFP_WAIT_FOR_ALL_DATA)
	movw R30,R28
	ldd R24,z+0
	lsr R24
	lsr R24
	andi R24,1
	brne X16
	xjmp L19
X16:
X7:
	.dbline 208
;     {
	.dbline 209
;         if ((pQueue->nCount) < (pSFP->cFrameSize))
	movw R30,R20
	ldd R2,z+36

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品免费视频一区二区| 欧美午夜片在线看| 亚洲欧美日韩系列| 日韩精品专区在线影院观看| 成人免费视频视频在线观看免费 | 色综合 综合色| 精品综合免费视频观看| 一二三四社区欧美黄| 久久久久免费观看| 欧美在线观看一区二区| 精品影视av免费| 亚洲国产成人91porn| 国产精品久久久一本精品| 精品国产乱子伦一区| 欧美剧情片在线观看| 91视频www| 国产精品一区二区91| 免费人成在线不卡| 亚洲成av人片在线| 亚洲精品伦理在线| 亚洲品质自拍视频网站| 中文字幕精品综合| 久久久久亚洲综合| 欧美成人女星排行榜| 51精品国自产在线| 欧美午夜影院一区| 91久久精品日日躁夜夜躁欧美| 粗大黑人巨茎大战欧美成人| 国产制服丝袜一区| 国内精品免费**视频| 美女视频网站久久| 久久精品国产免费| 国内精品久久久久影院薰衣草| 日本中文在线一区| 日本亚洲三级在线| 青椒成人免费视频| ...xxx性欧美| 国产精品大尺度| 久久欧美中文字幕| 国产精品卡一卡二| 精品久久国产老人久久综合| 成人网在线播放| 视频一区二区国产| 国产精品久久久久久户外露出| 精品sm在线观看| 不卡视频在线观看| 精品无码三级在线观看视频| 亚洲自拍另类综合| 欧美在线观看一二区| 94-欧美-setu| 色偷偷成人一区二区三区91| 色综合久久久久综合| 97精品久久久久中文字幕 | 欧美日韩大陆一区二区| 国产成人在线免费| 另类欧美日韩国产在线| 青青草国产成人99久久| 亚洲成人av电影在线| 91理论电影在线观看| 欧美国产成人精品| 欧美吻胸吃奶大尺度电影| eeuss鲁片一区二区三区| 99久久精品国产毛片| 97国产精品videossex| 成人h动漫精品| 成人av在线播放网址| 国产成人aaa| 成+人+亚洲+综合天堂| av电影天堂一区二区在线观看| 老色鬼精品视频在线观看播放| 一区二区三区在线视频免费| 亚洲成av人片一区二区| 亚洲v精品v日韩v欧美v专区| 午夜激情久久久| 91老司机福利 在线| 欧美影视一区在线| 最近日韩中文字幕| 欧美日韩一区二区三区高清| 亚洲国产欧美一区二区三区丁香婷 | 亚洲人成亚洲人成在线观看图片| av日韩在线网站| 日韩一区在线播放| 日韩一区二区三区四区五区六区| 美女视频黄频大全不卡视频在线播放| 国产精品影视网| 欧美午夜视频网站| 国产喂奶挤奶一区二区三区| 一区二区三区资源| 国产一区二区久久| 欧美日韩在线电影| 中文字幕av一区二区三区| 日韩有码一区二区三区| 成人午夜激情片| 久久综合资源网| 樱花影视一区二区| 大美女一区二区三区| 欧美精品色一区二区三区| 国产精品免费aⅴ片在线观看| 调教+趴+乳夹+国产+精品| 国产在线看一区| 成人av网在线| 日韩一区二区麻豆国产| 一区二区三区四区五区视频在线观看| 国产ts人妖一区二区| 久久久综合九色合综国产精品| 欧亚洲嫩模精品一区三区| 国产精品99久久久久久有的能看| 一区二区三区欧美久久| 国产亚洲精品超碰| 日本精品裸体写真集在线观看 | 亚洲国产精品黑人久久久| 欧美日韩一区三区四区| 岛国精品在线播放| 国产一区二区调教| 爽好久久久欧美精品| 亚洲美女电影在线| 国产欧美日韩在线看| 久久综合网色—综合色88| 3d成人动漫网站| 欧美探花视频资源| 欧日韩精品视频| 色综合久久88色综合天天6 | 色综合久久88色综合天天6| 处破女av一区二区| 国产精品综合在线视频| 日日骚欧美日韩| 欧美成人一区二区| 丰满白嫩尤物一区二区| 国产精品不卡在线观看| av电影在线观看一区| 综合av第一页| 中文字幕的久久| av色综合久久天堂av综合| 成人福利在线看| 国产精品视频看| 92精品国产成人观看免费| 国产精品乱码一区二区三区软件| 狠狠色丁香久久婷婷综合_中 | 日韩一级视频免费观看在线| 午夜欧美视频在线观看| 欧美日韩国产首页| 天天综合色天天| 日韩欧美精品在线| 国产麻豆91精品| 国产精品美女久久久久久2018 | 亚洲一级二级在线| 欧美日韩在线电影| 亚洲成人av中文| 欧美一区永久视频免费观看| 日本欧美一区二区| 精品成人一区二区三区四区| 国产在线精品免费av| 国产三级三级三级精品8ⅰ区| 成人国产精品免费观看视频| 亚洲欧美在线视频| 欧美视频一区在线| 精品在线免费观看| 亚洲国产成人私人影院tom| 色伊人久久综合中文字幕| 亚洲福利国产精品| 欧美精品一区二区三区久久久| 国产精一区二区三区| 亚洲欧洲99久久| 欧美酷刑日本凌虐凌虐| 久草在线在线精品观看| 中文在线一区二区| 欧美美女黄视频| 国产一区二区三区综合| 自拍偷拍欧美激情| 日韩午夜电影av| 成人午夜av在线| 亚洲二区视频在线| 国产亚洲一区二区三区四区| 色综合一区二区三区| 日本视频中文字幕一区二区三区| 亚洲精品在线三区| 在线观看91精品国产入口| 日韩美女视频一区二区| 亚洲高清在线精品| 亚洲成av人片在线| 久久久亚洲精品石原莉奈| 国产精品国产三级国产有无不卡| 国产欧美视频一区二区| 亚洲精品国产无套在线观| 亚洲黄色免费电影| 一区二区在线免费观看| 视频一区国产视频| 精品亚洲成av人在线观看| 国产精品自拍av| 在线观看亚洲一区| 日韩欧美一二三| 亚洲国产精品久久一线不卡| 五月天激情综合网| 中文字幕乱码亚洲精品一区| 欧美性大战xxxxx久久久| 高清在线不卡av| 麻豆一区二区三| 亚洲成人在线免费| 亚洲色图20p| 久久精品视频在线看|