 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
marko Član



Pridružen-a: Sre 07 Jan 2004 15:14 Prispevkov: 755 Aktiv.: 3.18
|
Objavljeno: Sre Jan 07, 2015 10:19 pm Naslov sporočila: XMEGA usb CDC <> UART težave |
|
|
Živjo,
prvič se srečujem z XMEGO in ASF frameworkom (groza) in že imam težave.
RX callback, ki ga naj bi se klical vsakič ko je kaj na vhodu (RX notify), se mi preneha klicati, če v terminal pošljem več znakov hitro. Če pošiljam enega po enega s nekaj 100 ms razmika je ok, če pa prehitro, pa se RX neha izvajati. Glavna zanka v main() sicer teče normalno. V RX callbacku niti ni treba, da je kaj hudo potratnega. Tudi, če se samo vračam z return, ne dela.
Tole je moj callback:
Koda: |
void usb_rx(uint8_t port)
{
volatile uint8_t ch = 0;
if (udi_cdc_is_rx_ready())
{
ch = udi_cdc_getc();
udi_cdc_putc(ch);
}
return;
}
|
V conf_usb.h pa imam tole:
Koda: |
#define UDI_CDC_ENABLE_EXT(port) stdio_usb_enable()
#define UDI_CDC_DISABLE_EXT(port) stdio_usb_disable()
#define UDI_CDC_RX_NOTIFY(port) usb_rx(port)
|
Če berem in izpisujem v main(), potem dela ok, takole:
Koda: |
while (true)
{
if (udi_cdc_is_rx_ready())
{
value = udi_cdc_getc();
udi_cdc_putc(value);
}
}
|
Uporabljam ASF 3.20.1 in USB Device (service) - cdc_stdio
Za kakršenkoli hint se že v naprej lepo zahvaljujem. _________________ Mondays aren't so bad, it's your job that sucks |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 11 dni
Powered by phpBB © 2001, 2005 phpBB Group
|