⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debug.c

📁 ATmega88 + 舵机 程序例子
💻 C
字号:
/*******************************************************************************
OKM-BLDC-SERVO-MOTOR-10W
作者:Alan, 2008-5-3
最后修改:Alan,2008-5-3
芯片:ATMEGA88,
编译器:avr-gcc (GCC) 4.1.2 (WinAVR 20070525)
版本说明:
V0.1  初版
*******************************************************************************/
#define _DEBUG_C_H_
#include "globals_var.h"

#if _DebugEnable_

void UART_Init(void)
{
	vStateFlag |=(1<<fUartWREnd);
	vUartWriteBuf.vTop=vUartWriteBuf.vPoint=0;
	
	
    /* 设置波特率*/
    UBRR0H = (unsigned char)(UART_baud>>8);
    UBRR0L = (unsigned char)UART_baud;
    
    /* 发送器使能, */
    UCSR0B = (1<<TXEN0)|(1<<RXEN0);
    /* 设置帧格式: 8 个数据位, 1 个停止位*/
    UCSR0C = (1<<UCSZ01)|(1<<UCSZ00);
}

void UART_Push_WR_Buf(unsigned char dat)
{
    vUartWriteBuf.vFIFOBuf[vUartWriteBuf.vTop]=dat;
	cli();
	vUartWriteBuf.vTop=vUartWriteBuf.vTop+1;
	if ( vUartWriteBuf.vTop == UARTBufSize )
	{
		vUartWriteBuf.vTop=0;
	}
	if ((vStateFlag & (1<<fUartWREnd)) != 0)
	{
        sei();
		vUartWriteBuf.vPoint=vUartWriteBuf.vPoint+1;
		if ( vUartWriteBuf.vPoint == UARTBufSize )
		{
			vUartWriteBuf.vPoint=0;
		}
		UDR0 = dat;
		vStateFlag &=~(1<<fUartWREnd);
		UCSR0B|=(1<<UDRIE0);  //数据寄存器空中断打开
	}
	else
	{
		if (vUartWriteBuf.vTop==vUartWriteBuf.vPoint)
		{
			vUartWriteBuf.vTop=vUartWriteBuf.vTop-1;
			if (vUartWriteBuf.vTop==0xff)
				 {vUartWriteBuf.vTop=UARTBufSize-1;}
		}
		sei();
	}
}

void UART_putHex(uchar c)
{
	UART_Push_WR_Buf('0');
	UART_Push_WR_Buf('x');
	UART_Push_WR_Buf(pgm_read_byte(&ASIIC_DATA[c>>4]));
	UART_Push_WR_Buf(pgm_read_byte(&ASIIC_DATA[c&0x0f]));
	UART_Push_WR_Buf(' ');
	UART_Push_WR_Buf(' ');
}

SIGNAL(USART_UDRE_vect)
{
	if (vUartWriteBuf.vTop!=vUartWriteBuf.vPoint)
	{
		UDR0=vUartWriteBuf.vFIFOBuf[vUartWriteBuf.vPoint];
		vUartWriteBuf.vPoint=vUartWriteBuf.vPoint+1;
		if ( vUartWriteBuf.vPoint == UARTBufSize )
		{
			vUartWriteBuf.vPoint=0;
		}
	}
	else
	{
		vStateFlag |=(1<<fUartWREnd);
		UCSR0B&=(~(1<<UDRIE0));  //数据寄存器空中断关闭
	} 
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -