uart.c
69 lines
| 2.0 KiB
| text/x-c
|
CLexer
r1 | /*------------------------------------------------------------------------------ | |||
-- This file is a part of the libuc, microcontroler library | ||||
-- Copyright (C) 2011, Alexis Jeandet | ||||
-- | ||||
-- This program is free software; you can redistribute it and/or modify | ||||
-- it under the terms of the GNU General Public License as published by | ||||
-- the Free Software Foundation; either version 3 of the License, or | ||||
-- (at your option) any later version. | ||||
-- | ||||
-- This program is distributed in the hope that it will be useful, | ||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
-- GNU General Public License for more details. | ||||
-- | ||||
-- You should have received a copy of the GNU General Public License | ||||
-- along with this program; if not, write to the Free Software | ||||
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||||
------------------------------------------------------------------------------- | ||||
-- Author : Alexis Jeandet | ||||
-- Mail : alexis.jeandet@gmail.com | ||||
-------------------------------------------------------------------------------*/ | ||||
#include "uart.h" | ||||
void uartputc(uartDev* dev,char c) { | ||||
while (!((dev->LineStat & (1<<5)))); | ||||
dev->RWreg = c; | ||||
} | ||||
char uartgetc(uartDev* dev) { | ||||
while (!((dev->LineStat & 1))); | ||||
return (char)dev->RWreg; | ||||
} | ||||
void uartputs(uartDev* dev,char *s) { | ||||
while (*s) uartputc(dev,*s++); | ||||
} | ||||
void uartgets(uartDev* dev,char *s) { | ||||
while (*s && (*s!=0xd)) *s++ = uartgetc(dev); | ||||
} | ||||
void uartsetup(uartDev* dev,int baudRate,int cpuClk) | ||||
{} | ||||
uartDev* uartopen(int count){ | ||||
uartDev* dev; | ||||
switch(count) | ||||
{ | ||||
case 0: | ||||
dev = (uartDev*)((unsigned long)LPC_UART0_BASE); | ||||
break; | ||||
case 1: | ||||
dev = (uartDev*)((unsigned long)LPC_UART1_BASE); | ||||
break; | ||||
case 2: | ||||
dev = (uartDev*)((unsigned long)LPC_UART2_BASE); | ||||
break; | ||||
case 3: | ||||
dev = (uartDev*)((unsigned long)LPC_UART3_BASE); | ||||
break; | ||||
default: | ||||
dev = (uartDev*)0; | ||||
break; | ||||
} | ||||
return dev; | ||||
} | ||||