1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
/*
* c't-Sim - Robotersimulator fuer den c't-Bot
*
* 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 2 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.
*
*/
/*! @file uart.h
* @brief Routinen zur seriellen Kommunikation
* @author Benjamin Benz (bbe@heise.de)
* @date 26.12.05
*/
#ifndef UART_H_
#define UART_H_
#include "command.h"
//extern char uart_timeout; /*!< 0, wenn uart_read/uart_send erfolgreich; 1, wenn timeout erreicht */
/*!
* Initialisiere UART
*/
void uart_init(void);
/*!
* Prüft, ob daten verfügbar
* @return Anzahl der verfuegbaren Bytes
*/
uint8 uart_data_available(void);
/*!
* Überträgt ein Zeichen per UART
* Achtung ist noch blockierend!!!!
* TODO: umstellen auf nicht blockierend und mehr als ein Zeichen
* @param data Das Zeichen
*/
void uart_send_byte(uint8 data);
/*!
* Sende Kommando per UART im Little Endian
* @param cmd Zeiger auf das Kommando
* @return Anzahl der gesendete Bytes
*/
//int uart_send_cmd(command_t *cmd);
#define uart_send_cmd(cmd) uart_write((uint8*)cmd,sizeof(command_t));
/*!
* Sende Daten per UART im Little Endian
* @param data Datenpuffer
* @param length Groesse des Datenpuffers in bytes
* @return Anzahl der gesendete Bytes
*/
int uart_write(uint8 * data, int length);
/* Liest Zeichen von der UART
* @param data Der Zeiger an die die gelesenen Zeichen kommen
* @param length Anzahl der zu lesenden Bytes
* @return Anzahl der tatsaechlich gelesenen Zeichen
*/
int uart_read(void* data, int length);
#endif
|