The problem with the print_string function is somehow due to the bootloader, because if I upload the program using a PICKit2 the print_string function works as expected (although I still can't reconnect after disconnecting).
On Monday, July 28, 2014 6:24:43 AM UTC-5, Jim Gregory wrote: > > -- chip setup > include 18f14k50 > > -- target frequency to 48 MHz > I am experiencing strange behavior with the print_string() function using > usb_serial and an 18f14k50 and jalv2.4q and jallib version 1.0.0. With the > following code: > > pragma target clock 48_000_000 > > -- no fuses (use bootloader) > pragma BOOTLOADER loader18 2048 > pragma fuses no > > const byte str_welcome[] = "Hi there" > var byte i -- temporary variable > > forever loop > -- poll the usb ISR function on a regular base, in order to > -- serve the USB requests > usb_serial_flush() > > -- check if USB device has been configured by the HOST > if ( usb_cdc_line_status() != 0x00 ) then > if !has_shown_welcome_msg then > has_shown_welcome_msg = true > print_string( usb_serial_data, str_welcome ) > print_crlf( usb_serial_data ) > end if > else > has_shown_welcome_msg = false > end if > > -- check for input character > if usb_serial_read( ch ) then > -- echo input character > usb_serial_data = ">" > usb_serial_data = ch > print_crlf( usb_serial_data ) > i print_string( usb_serial_data, str_welcome ) > print_crlf( usb_serial_data ) > blink_led(green) > end if > end if > > Under Linux, it prints 3 unprintable characters when a serial connection > is established and each time a key is pressed. Under Windows 8, it prints > the correct string. > > If I replace the print_string() function calls by explicitly looping > through the array, i.e.: > > ;print_string( usb_serial_data, str_welcome ) > for 8 using i loop > usb_serial_data = str_welcome[i] > end loop > > The string prints normally on both Linux and Windows 8. > > Furthermore, if I close the serial terminal and try to re-establish a > connection under either Linux or Windows, I can't reconnect regardless of > which code I use. Under Linux, I receive the error message: > > tty_port_close_start: tty->count = 1 port count = 0. > > It won't reconnect without manually resetting the 18f14k50. > > I suspect the two problems are related, but am not sure....:( > -- You received this message because you are subscribed to the Google Groups "jallib" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/jallib. For more options, visit https://groups.google.com/d/optout.
