Buenas,
Necesito mandar por el serial port 122 bytes, sin embargo sólo consigo enviar 64 bytes, leyendo la documentación parece que el buffer está limitado.
Sabéis si al genuino 101 se le puede ampliar el buffer al menos a 128 bytes?
Graciaaaas.
Buenas,
Necesito mandar por el serial port 122 bytes, sin embargo sólo consigo enviar 64 bytes, leyendo la documentación parece que el buffer está limitado.
Sabéis si al genuino 101 se le puede ampliar el buffer al menos a 128 bytes?
Graciaaaas.
Fuera de cualquier función, prueba agregando la siguiente línea:
#define SERIAL_TX_BUFFER_SIZE 128
Nótese que la línea no debe terminar en ;
Puedes ampliar el bufer mas todavía (si lo necesitas y tienes suficiente memoria) por ejemplo
#define SERIAL_TX_BUFFER_SIZE 128
#define SERIAL_TX_BUFFER_SIZE 256
Además puedes hacer que los bufers de TX y de RX sean de distinto tamaño, lo que te permitirá utilizar mejor la memoria disponible cuando tu programa tenga distintas necesidades de transmision y de recepcion
#define SERIAL_TX_BUFFER_SIZE 128
#define SERIAL_RX_BUFFER_SIZE 32
Algo debe pasar porque no se altera nada, no se si hay una limitación física, he cambiado también el archivo HardwareSerial.h
Alguna pista?
gracias
Tendría que ver en los archivos que le dan las definiciones necesarias (Arduino/hardware/arduino). El corazón de un 101 no es un AVR; así que ahí nos cambian las reglas de lo que popularmente conocemos como "Arduino".
Si compilas con el IDE Arduino, usas las librerias Arduino, por lo tanto parece lógico suponer que la funcionalidad se respeta.
Puede ocurrir que la version del IDE que usas no permita esos cambios.
Tendras que ver cual es tu version.
Saludos.
Buenas,
Tenía la versión 1.0.5, he instalado la versión 1.07, tras haber tenido que solucionar un problema de permisos, adjunto solución de paso.
AppData\Local\Arduino15\packages\Intel\hardware\arc32\1.0.7
cambiar el archivo platform.txt
from
recipe.hooks.objcopy.preobjcopy.1.pattern=cp -f "{build.path}/{build.project_name}.elf" "{build.path}/../arduino101_sketch.debug.elf"
recipe.hooks.objcopy.preobjcopy.1.pattern.windows=cmd /C copy /y "{build.path}{build.project_name}.elf" "{build.path}..\arduino101_sketch.debug.elf"
to
##recipe.hooks.objcopy.preobjcopy.1.pattern=cp -f "{build.path}/{build.project_name}.elf" "{build.path}/../arduino101_sketch.debug.elf"
##recipe.hooks.objcopy.preobjcopy.1.pattern.windows=cmd /C copy /y "{build.path}{build.project_name}.elf" "{build.path}..\arduino101_sketch.debug.elf
Tras esto compila, y ahora a solucionar el problema del buffer.. en los archivos HardwareSerial.h no viene ningun valor para cambiar el tamaño, viene en RingBuffer.h el cual viene por defecto 256.
Sin embargo en la libreria SoftwareSerial.h viene por defecto 64, lo he cambiado a 128 y nada igual.
Alguna pista en este embrollo?
Gracias.
Genuino 101 con Arduino 1.0.7 me parece que no van... verifica por favor!!
Como dice Lucario el Genuino 101 tiene 2 cores
two tiny cores, an x86 (Quark) and a 32-bit ARC architecture core, both clocked at 32MHz
por ende si luego miras Arduino IDE te envia a versión 1.8.1 que creo exagerado pero si mal recuerdo desde la 1.6.algo funciona
Revisé y acá esta
ARDUINO 1.6.8 - 2016.03.09
[ide]
- Added support for GUI interface scaling for UHD monitors.
Thanks to all contributors and testers:
Arduino IDE on High DPI (take 2) by cmaglie · Pull Request #4376 · arduino/Arduino · GitHub
Add scaling for themed fonts and graphics (hires displays) by PaulStoffregen · Pull Request #2776 · arduino/Arduino · GitHub- Editor position is saved when closing with Alt+F4 or clicking on the "X" button. Thanks @willie68
- Fixed a NullPointerException when dealing with some rare combination of package_*.json files
- Fixed incorrect key bindings handling for changing tab. Thanks @matthijskooijman
- MacOSX: Fixed handling of add indent/remove indent shortcuts (CMD+[ and CMD+])
- Fixed incorrect update of available libraries in Library Manager. Thanks @vicnevicne
- Serial plotter now correctly resize graphs with negative values. Thanks @vicnevicne
- Improved sketch preprocessor when handling C++11 keywords. Thanks @matthijskooijman @igrr
- Updates to keyword pigmentation to match Create
- Fixed display of LITERAL1 keywords
- Added target board information when "Error compiling" message is displayed. Thanks @PaulStoffregen
[core]
- avr: fixed USB_SendControl(...) for buffer with len > 64. Thanks @NicoHood
- avr: fixed yield() usage inside delay(). Thanks @vbextreme
- sam: fixed USB descriptor length
- avr: reduced boiler-plate for ISR declarations. Thanks @paulo-raca
- avr: added Timer3 support for atmega1284/1284p. Thanks @feilipu
- sam: added USB CDC send break support and readBreak API
[libraries]
* Added support for Arduino/Genuino 101 to: TFT, Ethernet, SD
- SD: the library is now board-agnostic. Thanks @feilipu
Gracias, he probado con la 1.07 y compila bien, pero el buffer sigue sin ampliarse a 128. Debe haber algún archivo que no he modificado, pero no se cual es.
IDE 1.6.1 o superior.
Alfaville:
Si compilas con el IDE Arduino, usas las librerias Arduino, por lo tanto parece lógico suponer que la funcionalidad se respeta.Puede ocurrir que la version del IDE que usas no permita esos cambios.
- versiones anteriores a la 1.6.x (creo recordar) no permiten redimensionar los bufers asignando un tamaño de 64 bytes (si la memoria es mayor de 1024 bytes) a ambos bufers (TX y RX)
- versiones posteriores permiten ampliar los bufers, y la 1.8.1 permite hacer lo que te comentaba en mi post
Tendras que ver cual es tu version.
Saludos.
Buenas, la versión del ide es la última la 1.8.1, y la de la tarjeta Genuino 101, es la intel 1.0.7 (la última).
Por tanto entiendo que no es un problema de versiones.
Si estás usando el IDE 1.8.1, efectivamente no es un problema de versiones.
Asegurate de hacer los #define al comienzo del programa, antes de iniciar el Serial, y comprueba la sintaxis:
#define SERIAL_TX_BUFFER_SIZE 128 // por ejemplo
#define SERIAL_RX_BUFFER_SIZE 128 // por ejemplo
Ten en cuenta que si la sintaxis no es correcta no te dará ningun error al compilar, pero tampoco vas a modificar nada.
Saludos