Skip to content

Commit ac6db4f

Browse files
Merge pull request #7 from TimerOverflow/20170322
20170322
2 parents 8ad544b + bf520c8 commit ac6db4f

File tree

2 files changed

+15
-39
lines changed

2 files changed

+15
-39
lines changed

AvrUart.c

Lines changed: 10 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
/*********************************************************************************/
22
/*
3-
* Author : Jung Hyun Gu
3+
* Author : Jeong Hyun Gu
44
* File name : AvrUart.c
55
*/
66
/*********************************************************************************/
77
#include <string.h>
88
#include "AvrUart.h"
99
/*********************************************************************************/
10-
#if(AVR_UART_REVISION_DATE != 20170224)
10+
#if(AVR_UART_REVISION_DATE != 20170322)
1111
#error wrong include file. (AvrUart.h)
1212
#endif
1313
/*********************************************************************************/
14+
#define INC_BUF_POINTER(__PTR__, __RING_BUF__) (__PTR__ == &(__RING_BUF__)->Buf[(__RING_BUF__)->Size - 1] ? \
15+
__PTR__ = (__RING_BUF__)->Buf : \
16+
__PTR__++)
17+
/*********************************************************************************/
1418
/** Global variable **/
1519

1620

@@ -32,37 +36,6 @@ static char CheckAllOfInit(tag_AvrUartCtrl *Com)
3236
return (Com->Bit.InitRegister && Com->Bit.InitBuffer && Com->Bit.InitGeneral) ? true : false;
3337
}
3438
/*********************************************************************************/
35-
static char* MoveBufPointer(char *Ptr, tag_AvrUartRingBuf *Que, int Move)
36-
{
37-
int Distance;
38-
39-
/*
40-
1) 인수
41-
- Ptr : 이동전 기준 버퍼 주소.
42-
- Que : 'tag_AvrUartRingBuf' 타입의 인스턴스 주소.
43-
- Move : 이동할 거리.
44-
45-
2) 반환
46-
- 이동한 버퍼의 주소.
47-
48-
3) 설명
49-
- 인수로 받은 Ptr의 위치에서 지정한 거리만큼 이동한 위치의 버퍼 주소 반환.
50-
*/
51-
52-
Distance = &Que->Buf[Que->Size - 1] - Ptr;
53-
if(Move > Distance)
54-
{
55-
Move--;
56-
Ptr = Que->Buf + (Move - Distance);
57-
}
58-
else
59-
{
60-
Ptr += Move;
61-
}
62-
63-
return Ptr;
64-
}
65-
/*********************************************************************************/
6639
char AvrUartLinkRegister(tag_AvrUartCtrl *Com, char *pUDR, char *pUCSRA, char *pEnablePort, char EnablePin)
6740
{
6841
/*
@@ -210,7 +183,7 @@ void AvrUartPutChar(tag_AvrUartCtrl *Com, char Char)
210183
TxQue->Ctr++;
211184
*TxQue->InPtr = Char;
212185

213-
TxQue->InPtr = MoveBufPointer(TxQue->InPtr, TxQue, 1);
186+
INC_BUF_POINTER(TxQue->InPtr, TxQue);
214187
}
215188
}
216189
/*********************************************************************************/
@@ -240,7 +213,7 @@ void AvrUartTxQueueControl(tag_AvrUartCtrl *Com)
240213
TxQue->Ctr--;
241214
*Com->pUDR = *TxQue->OutPtr;
242215

243-
TxQue->OutPtr = MoveBufPointer(TxQue->OutPtr, TxQue, 1);
216+
INC_BUF_POINTER(TxQue->OutPtr, TxQue);
244217
}
245218
else
246219
{
@@ -305,7 +278,7 @@ void AvrUartRxQueueControl(tag_AvrUartCtrl *Com)
305278
RxQue->Ctr++;
306279
*RxQue->InPtr = *Com->pUDR;
307280

308-
RxQue->InPtr = MoveBufPointer(RxQue->InPtr, RxQue, 1);
281+
INC_BUF_POINTER(RxQue->InPtr, RxQue);
309282
Com->ReceivingCnt = Com->ReceivingDelay;
310283
}
311284
}
@@ -369,7 +342,7 @@ void AvrUartGetChar(tag_AvrUartCtrl *Com, char *Char)
369342
RxQue->Ctr--;
370343
*Char = *RxQue->OutPtr;
371344

372-
RxQue->OutPtr = MoveBufPointer(RxQue->OutPtr, RxQue, 1);
345+
INC_BUF_POINTER(RxQue->OutPtr, RxQue);
373346
}
374347
}
375348
/*********************************************************************************/

AvrUart.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
/*********************************************************************************/
22
/*
3-
* Author : Jung Hyun Gu
3+
* Author : Jeong Hyun Gu
44
* File name : AvrUart.h
55
*/
66
/*********************************************************************************/
77
#ifndef __AVR_UART_H__
88
#define __AVR_UART_H__
99
/*********************************************************************************/
10-
#define AVR_UART_REVISION_DATE 20170224
10+
#define AVR_UART_REVISION_DATE 20170322
1111
/*********************************************************************************/
1212
/** REVISION HISTORY **/
1313
/*
14+
2017. 03. 22. - MoveBufPointer() 함수 삭제하고, 매크로 함수로 대체.
15+
Jung Hyun Gu
16+
1417
2017. 02. 24. - AvrUartViewRxBuf() 함수 삭제.
1518
Jung Hyun Gu
1619

0 commit comments

Comments
 (0)