Autor Tema: usb_cdc_kbhit() me deja el micro colgado..  (Leído 319 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado remi04

  • PIC16
  • ***
  • Mensajes: 242
usb_cdc_kbhit() me deja el micro colgado..
« en: 15 de Febrero de 2019, 16:01:12 »
Hola..  Si pongo esto:

Código: C
  1.  
  2. while(1) {
  3.               char caracter = usb_cdc_getc();
  4.               putc(caracter);
  5.             }
  6.  

El eco funciona perfecto, pero si hago esto:

Código: C
  1.  
  2. while(1) {
  3.               while(!usb_cdc_kbhit())
  4.               char caracter = usb_cdc_getc();
  5.               putc(caracter);
  6.             }
  7.  

 El eco funciona si vas enviado caracteres despacito. Pero como envíes una cadena recibe unos cuantos y se queda colgado el micro.

   No solo el micro, sino el programa con el que estuviese enviando el string, por ejemplo, "Coolterm" se queda también colgado esperando poder enviar.

  Que esa es otra,  ¿Por que se queda coolterm en espera si tiene todos los controles de flujo desactivados?






Desconectado remi04

  • PIC16
  • ***
  • Mensajes: 242
Re:usb_cdc_kbhit() me deja el micro colgado..
« Respuesta #1 en: 16 de Febrero de 2019, 08:52:55 »
Solucionado. Instalando otra version mas reciente de Coolterm. Parecia fallo del propio Coolterm.

  Aprovecho para preguntar,  ¿ Sabe alguien si un 18f4550 permite reescribir los fuses en tiempo de ejecución?, a través de la dirección: 0x00300000 usada en la función write_program_memory();

  Saludos.


Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7354
Re:usb_cdc_kbhit() me deja el micro colgado..
« Respuesta #2 en: 16 de Febrero de 2019, 10:33:17 »
Me mataste sobre si la función esa puede escribir los config bits..

Es posible siempre y cuando tengas deshabilitada la protección de escritura de los fuses en los fuses (valga la redundancia ) y como ves NO se puede cambiar en runtime.


Citar
bit 5 WRTC: Configuration Register Write Protection bit(1)
1 = Configuration registers (300000-3000FFh) are not write-protected
0 = Configuration registers (300000-3000FFh) are write-protected

Note 1: This bit is read-only in normal execution mode; it can be written only in Program mode.

Desconectado remi04

  • PIC16
  • ***
  • Mensajes: 242
Re:usb_cdc_kbhit() me deja el micro colgado..
« Respuesta #3 en: 17 de Febrero de 2019, 09:59:06 »
Gracias Killer.