summaryrefslogtreecommitdiffhomepage
path: root/digital/avr/modules/twi/test/test_twi_master.c
diff options
context:
space:
mode:
authorNicolas Schodet2008-03-31 18:43:51 +0200
committerNicolas Schodet2008-03-31 18:43:51 +0200
commit63a0f3b710ebd6651a159aef16f2195396290aa9 (patch)
tree0a588ebbc09ec51e378d8460130536a6929eab4f /digital/avr/modules/twi/test/test_twi_master.c
parent2a43dfdd687cac76235cba053bd559cc9a022bb1 (diff)
* digital/avr/modules/twi:
- added host support.
Diffstat (limited to 'digital/avr/modules/twi/test/test_twi_master.c')
-rw-r--r--digital/avr/modules/twi/test/test_twi_master.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/digital/avr/modules/twi/test/test_twi_master.c b/digital/avr/modules/twi/test/test_twi_master.c
index d65d185d..e032f839 100644
--- a/digital/avr/modules/twi/test/test_twi_master.c
+++ b/digital/avr/modules/twi/test/test_twi_master.c
@@ -31,6 +31,10 @@
#include "modules/math/random/random.h"
#include "io.h"
+#ifdef HOST
+# include "modules/host/mex.h"
+#endif
+
void
proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
{
@@ -121,6 +125,10 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
twi_ms_send (args[0], random_bytes, byte_number);
while (!twi_ms_is_finished ())
;
+#ifdef HOST
+ /* Give time to slave to copy data. */
+ mex_node_wait_date (mex_node_date () + 2);
+#endif
/* Received buffer */
uint8_t received_buffer[max_byte_number];
@@ -182,8 +190,12 @@ proto_callback (uint8_t cmd, uint8_t size, uint8_t *args)
}
int
-main (void)
+main (int argc, char **argv)
{
+ avr_init (argc, argv);
+#ifdef HOST
+ mex_node_connect ();
+#endif
/* Enable interruptions */
sei ();
/* Initialize serial port */
@@ -196,8 +208,13 @@ main (void)
proto_send0 ('M');
while (42)
{
- uint8_t c = uart0_getc ();
- proto_accept (c);
+#ifdef HOST
+ mex_node_wait_date (mex_node_date () + 1);
+ while (uart0_poll ())
+ proto_accept (uart0_getc ());
+#else
+ proto_accept (uart0_getc ());
+#endif
}
return 0;
}