コード例 #1
0
bool is_school_zone_detected() {
	
	char buf[10];
	bool ret_val = false;
	
	DisableExternalInterrupts();
	
	int a1 = A2D_GetSingleCh_10bit(PIN_IR_SENSOR_1_ADC);
	
	int a3 = A2D_GetSingleCh_10bit(PIN_IR_SENSOR_3_ADC);
	
	int a5 = A2D_GetSingleCh_10bit(PIN_IR_SENSOR_5_ADC);
	
	if(a1 < ADC_BLACK_REFERENCE) {
		
		if(a5 < ADC_BLACK_REFERENCE) {
			
			if(a3 < ADC_BLACK_REFERENCE) {
				ret_val = true;
			}
		}
	}
	
	EnableExternalInterrupts();
	
	return ret_val;
}
コード例 #2
0
ファイル: serialdebug.c プロジェクト: cmh6188/workspace
//- Tx Queue에 Ch 넣음. 단, Tx Queue가 차 있으면 빌 때까지 기다림
void SDBG_PutCh(char ch)
{
	vint32_t cnt=0;
	
	while (SDBG_IsTxQueFull()) {
		if (++cnt>30000)
			break;
	}
	if (ch == SDBG_ASCII_LF)
		SDBG_PutCh(SDBG_ASCII_CR);

	DisableExternalInterrupts();

	if (LINFLEX_0.LINIER.B.DTIE == 0) {
	    LINFLEX_0.UARTSR.R = 0x2;	// DTF
		LINFLEX_0.LINIER.B.DTIE = 1;
		LINFLEX_0.BDRL.R = ch;
		LINFLEX_0.LINSR.R = 0xF23F;
	}
	else {
		sdbg_TxQue[sdbg_TxQueHeadPtr] = ch;
		sdbg_TxQueHeadPtr = (sdbg_TxQueHeadPtr+1)%SDBG_TX_QUE_SIZE;
	}
	EnableExternalInterrupts();
}
コード例 #3
0
ファイル: youruart.c プロジェクト: cmh6188/workspace
//- Tx Queue에 Ch 넣음. 단, Tx Queue가 차 있으면 빌 때까지 기다림
void YUART_PutCh(char ch)
{
	vint32_t cnt=0;
	
	while (YUART_IsTxQueFull()) {
		if (++cnt>30000)
			break;
	}
	if (ch == YUART_ASCII_LF)
		YUART_PutCh(YUART_ASCII_CR);

	DisableExternalInterrupts();

	if (LINFLEX_2.LINIER.B.DTIE == 0) {
	    LINFLEX_2.UARTSR.R = 0x2;	// DTF
		LINFLEX_2.LINIER.B.DTIE = 1;
		LINFLEX_2.BDRL.R = ch;
		LINFLEX_2.LINSR.R = 0xF23F;
	}
	else {
		yuart_TxQue[yuart_TxQueHeadPtr] = ch;
		yuart_TxQueHeadPtr = (yuart_TxQueHeadPtr+1)%YUART_TX_QUE_SIZE;
	}
	EnableExternalInterrupts();
}
コード例 #4
0
ファイル: serialdebug.c プロジェクト: cmh6188/workspace
//- Tx Queue가 다 차면 NGV_DMU_TRUE 리턴, 그렇지 않으면 NGV_DMU_FALSE 리턴
int16_t SDBG_IsTxQueFull(void)
{
	int16_t size;
	
	DisableExternalInterrupts();
	size = (sdbg_TxQueHeadPtr-sdbg_TxQueTailPtr+SDBG_TX_QUE_SIZE)%SDBG_TX_QUE_SIZE;
	EnableExternalInterrupts();
	
	if (size>=(SDBG_TX_QUE_SIZE-2)) {
		return NGV_DMU_TRUE;
	}
	return NGV_DMU_FALSE;
}
コード例 #5
0
ファイル: youruart.c プロジェクト: cmh6188/workspace
//- Tx Queue가 다 차면 NGV_DMU_TRUE 리턴, 그렇지 않으면 NGV_DMU_FALSE 리턴
int16_t YUART_IsTxQueFull(void)
{
	int16_t size;
	
	DisableExternalInterrupts();
	size = (yuart_TxQueHeadPtr-yuart_TxQueTailPtr+YUART_TX_QUE_SIZE)%YUART_TX_QUE_SIZE;
	EnableExternalInterrupts();
	
	if (size>=(YUART_TX_QUE_SIZE-2)) {
		return NGV_DMU_TRUE;
	}
	return NGV_DMU_FALSE;
}