- some uart changes
git-svn-id: http://moon:8086/svn/projects/HendiControl@37 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
@@ -12,22 +12,25 @@
|
|||||||
#include "message.h"
|
#include "message.h"
|
||||||
|
|
||||||
static Fifo *g_pFifo = NULL;
|
static Fifo *g_pFifo = NULL;
|
||||||
|
ISR(USART_UDRE_vect)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ISR(USART_TX_vect)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
ISR(USART_RX_vect)
|
ISR(USART_RX_vect)
|
||||||
{
|
{
|
||||||
uint8_t status = UCSR0A;
|
uint8_t status = UCSR0A;
|
||||||
|
|
||||||
if (status & (1 << RXC0))
|
if (status & (1 << RXC0))
|
||||||
{
|
{
|
||||||
uint8_t rx_data = UDR0;
|
uint8_t rx_data = UDR0;
|
||||||
Msg_t msg = {Uart, rx_data};
|
Msg_t msg = {Uart, rx_data};
|
||||||
fifo_push(g_pFifo, &msg);
|
fifo_push(g_pFifo, &msg);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
Msg_t msg = {NOP, 0};
|
|
||||||
fifo_push(g_pFifo, &msg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void uart_init(Fifo *pFifo, uint16_t BAUD_PRESCALE)
|
void uart_init(Fifo *pFifo, uint16_t BAUD_PRESCALE)
|
||||||
@@ -48,12 +51,10 @@ void uart_init(Fifo *pFifo, uint16_t BAUD_PRESCALE)
|
|||||||
|
|
||||||
void uart_putc(char c)
|
void uart_putc(char c)
|
||||||
{
|
{
|
||||||
enterCritical();
|
|
||||||
while((UCSR0A & (1<<UDRE0)) == 0)
|
while((UCSR0A & (1<<UDRE0)) == 0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
UDR0 = c;
|
UDR0 = c;
|
||||||
exitCritial();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int uart_putchar(char c, FILE *stream)
|
int uart_putchar(char c, FILE *stream)
|
||||||
|
|||||||
Reference in New Issue
Block a user