Hanna
Sourcecode Kontrollplatine
usb_stdio.c
gehe zur Dokumentation dieser Datei
1 
14 #include "usb_stdio.h"
15 
16 #include "usb_cdc.h"
17 #include <stdio.h>
18 
19 void stdio_usb_init ( void )
20 {
21  // For AVR GCC libc print redirection uses fdevopen.
22  fdevopen ( (int (*) ( char, FILE* )) (usb_write),
23  (int (*) ( FILE* )) (usb_read) );
24 }
25 
26 void usb_write ( char c, int *f )
27 {
28 
29  cdc_txb.data[0] = c;
30  cdc_txb.len = 1;
31  cdc_txb.flag = 1;
32  EP_DEF_out( ep_in );
33  cdc_txb.flag = 0;
34  _delay_us(120);
35 
36 }
37 
38 int usb_read ( int *f )
39 {
40  cdc_rxb.flag = 1; // Empfangsmodus (wartet auf Daten), false Daten wurden empfangen
41  cdc_rxb.len = 0;
42  cdc_rxb.bytes = 0;
43  cdc_rxb.data[0] = 0;
44 
45  EP_DEF_in( ep_out );
46 
47  return cdc_rxb.data[0];
48 // Nach dieser Funktion muss evtl. cdc_rxb.flag = 1; gesetzt werden
49 }
50 
51 
52 int usb_read_wait ( int *f )
53 {
54  cdc_rxb.flag = 1; // Empfangsmodus (wartet auf Daten), false Daten wurden empfangen
55  cdc_rxb.len = 0;
56  cdc_rxb.bytes = 0;
57  cdc_rxb.data[0] = 0;
58 
59  while ( cdc_rxb.flag ) // flag = true => Empfangsmodus (wartet auf Daten), = false Daten wurden empfangen
60  {
61  EP_DEF_in( ep_out );
62  }
63 
64  cdc_rxb.flag = 1; // Empfangsmodus (wartet auf Daten), false Daten wurden empfangen
65  return cdc_rxb.data[0];
66 
67 }
Bibliothek zur USB-Kommunikation von Jürgen W.
Bibliothek zur USB-Kommunikation von Jürgen W.