-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinit.c
152 lines (142 loc) · 3.18 KB
/
init.c
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
/*
* 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 init.c
* \brief Initialisierungsroutinen
* \author Timo Sandmann ([email protected])
* \date 09.03.2010
*/
#include "init.h"
#include "timer.h"
#include "uart.h"
#include "tcp.h"
#include "bot-2-sim.h"
#include "bot-2-atmega.h"
#include "bot-2-linux.h"
#include "shift.h"
#include "display.h"
#include "led.h"
#include "ena.h"
#include "mmc.h"
#include "log.h"
#include "mouse.h"
#include "map.h"
#include "i2c.h"
#include "twi.h"
#include "gui.h"
#include "motor.h"
#include "sensor.h"
#include "ir-rc5.h"
#include "sdfat_fs.h"
#include "sp03.h"
#include <stdlib.h>
mmc_buffers_t mmc_buffers; /**< Puffer fuer alle MMC-Transfers */
/**
* Initialisierung
*/
void ctbot_init(int argc, char * argv[]) { // explizit ** int **
ctbot_init_low_1st(argc, argv);
timer_2_init();
#ifdef UART_AVAILABLE
uart_init();
#endif
#ifdef ARM_LINUX_BOARD
const int8_t ret = bot_2_atmega_init();
if (ret != 0) {
LOG_ERROR("ctbot_init(): bot_2_atmega_init() failed with %d", ret);
}
#endif // ARM_LINUX_BOARD
#if defined PC && defined BOT_2_SIM_AVAILABLE
tcp_init();
#endif
#ifdef COMMAND_AVAILABLE
command_init();
#endif
#ifdef BOT_2_SIM_AVAILABLE
bot_2_sim_init();
#endif
#ifdef SHIFT_AVAILABLE
shift_init();
#endif
#ifdef DISPLAY_AVAILABLE
display_init();
#endif
#ifdef LED_AVAILABLE
LED_init();
#endif
motor_init();
#ifdef ENA_AVAILABLE
ENA_init();
#endif
#ifdef MMC_AVAILABLE
if (sd_init(SPI_SPEED)) {
LOG_ERROR("sd_card_init() failed: error code=0x%02x 0x%02x", sd_get_error_code(), sd_get_error_data());
}
#endif
bot_sens_init();
#ifdef BEHAVIOUR_AVAILABLE
bot_behave_init();
#endif
#ifdef RC5_AVAILABLE
ir_init(&RC5_PORT, &RC5_DDR, 1 << RC5_PIN);
#endif
#ifdef BPS_AVAILABLE
ir_init(&BPS_PORT, &BPS_DDR, 1 << BPS_PIN);
#endif
#ifdef MOUSE_AVAILABLE
mouse_sens_init();
#endif
#ifdef MAP_AVAILABLE
{
const int8_t res = map_init();
if (res != 0) {
LOG_ERROR("map_init()=%d", res);
}
}
#if defined PC && defined MAP_2_SIM_AVAILABLE
map_2_sim_send();
#endif
#endif
#ifdef LOG_MMC_AVAILABLE
log_mmc_init();
#endif
#ifdef I2C_AVAILABLE
i2c_init(42); // 160 kHz
#endif
#ifdef TWI_AVAILABLE
Init_TWI();
#endif
#ifdef DISPLAY_AVAILABLE
gui_init();
#endif
#ifdef BOT_2_RPI_AVAILABLE
bot_2_linux_init();
#endif
ctbot_init_low_last();
#ifdef WELCOME_AVAILABLE
display_cursor(1, 1);
display_puts("c't-Roboter");
#ifdef LOG_AVAILABLE
LOG_INFO("Hallo Welt!");
#endif
#ifdef SP03_AVAILABLE
sp03_say("I am Robi %d", sensError);
#endif
#endif // WELCOME_AVAILABLE
}