Go Down

Topic: vinciDuino - un Arduino Leonardo hecho por gente del foro (Read 108830 times) previous topic - next topic

tilthz

Hay ya alguna manera de usar las interrupts desde el IDE de Arduino?

Hay ya alguna manera de usar las interrupts desde el IDE de Arduino?


http://arduino.cc/en/Reference/AttachInterrupt

Un saludo!

tilthz

No me funciona en la vinciduino, ni con el nuevo IDE1.0.1/bootloader. Busqué sobre el tema y ví mensajes de hace unos meses diciendo que no había soporte, y por lo que veo no se ha añadido con la salida oficial de leonardo, por eso pregunto.

#843
Jun 02, 2012, 02:59 pm Last Edit: Jun 02, 2012, 03:02 pm by JRodrigo Reason: 1
@tilthz en el bootloader nuevo si que viene una linea que pone "#include <avr/interrupt.h>"

Si miras http://arduino.cc/en/Main/ArduinoBoardLeonardo veras que pone:

Quote
External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details.


Que IDE estas utilizando? en la versión 1.0 creo que no estaban implementados.

Un saludo!

fm

En versiones anteriores al IDE 1.0.1, pre-leonardo, no se soportaban las interrupciones. En el nuevo IDE sí. Lo único es que para la vinciDuino, bueno para el ATMega32U4, podrías usar 4 creo que no están mapeadas en el SW.

Para manejar interrupciones que no sean las de entrada salida, tendrás que usar las llamadas a la libavr directamente y declarar los vectores de interrupción.

También hay una entrada en este hilo con un enlace a una extensión que preparó Markus para dar soporte a todas las interrupciones externas que soporta el AVR.
   

Markus_L811


En versiones anteriores al IDE 1.0.1, pre-leonardo, no se soportaban las interrupciones. En el nuevo IDE sí. Lo único es que para la vinciDuino, bueno para el ATMega32U4, podrías usar 4 creo que no están mapeadas en el SW.

Para manejar interrupciones que no sean las de entrada salida, tendrás que usar las llamadas a la libavr directamente y declarar los vectores de interrupción.

También hay una entrada en este hilo con un enlace a una extensión que preparó Markus para dar soporte a todas las interrupciones externas que soporta el AVR.

sí, que se encuentran aquí http://arduino.cc/forum/index.php/topic,96202.msg722362.html#msg722362

tilthz

Vale, ya me he dado cuenta de mi fallo, estaba haciendo el tonto debido a un error en http://arduino.cc/en/Main/ArduinoBoardLeonardo ...allí dice "External Interrupts: 2 and 3.", por lo que había supuesto que int0 era D2 y int1 era D3 como en todos los arduinos.

La mayoría de vosotros ya lo sabréis, pero eso está mal. La asignación correcta es:

D0 = INT2
D1 = INT3
D2 = INT1
D3 = INT0

maelva

#847
Jun 10, 2012, 09:24 pm Last Edit: Jun 11, 2012, 08:03 pm by maelva Reason: 1

"Yo acabo de subirle el bootloader del IDE 1.0.1 con el USBasp sin problemas..."

Hola, ¿que interfaz grafica se puede usar para hacerlo con el USBasp?.  He probado varias y ninguna muestra el  atmega32u4.
Si solo se puede hacer desde linea de comandos del AVRDUDE ¿podeis dar algunos "tips" para hacerlo o recomendar algun enlace que haga referencia al procedimiento (...puede resultar muy facil para quienes tienen tiempo lidiando con AVRDUDE, pero he leido y no me aclaro con el tema)
Saludos

***** Edito
...he instalado el IDE 1.0.1 y veo que soporta el USBasp, ademas de que aparece "Leonardo" entre los ICs.  ...probare a ver si va todo bien. Luego os comento.


"...He desempolvado el USBASP y el bootloader lo carga bien pero a la hora de cargar el sketch tenemos que presionar el boton del reset como antiguamente..."


 yOPERO, ¿cual es el procedimiento?.  He conectado vinciDuino rev. A al PC a traves del USBasp y he seleccionado el programador en la lista desplegable, asi como "Leonardo" en la pestaña de tarjetas y luego hago 'click'  en "grabar secuencia de inicio" pero me arroja error.
Quote
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
        Double check connections and try again, or use -F to override
        this check.



¿que estoy haciendo mal?. He reinstalado los drivers (...que descargue desde http://www.fischl.de/usbasp/) pero no he tenido exito.

....el problema era el cable de conexion ISP.  Lo he cambiado y me detecta "arduino Leonardo on COM1". Sin embargo, ahora obtengo lo siguiente cuando intento cargar el bootloader:

Quote
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: Expected signature for ATmega32U4 is 1E 95 87
         Double check chip, or use -F to override this check.

Saludos

Chafardeando las Chinotiendas, en iTead van a inaugurar una nueva tienda y con las PCB de colores si antes te daban 8 piezas por 15 Pavos + envió ahora en la nueva han puesto 10 por el mismo precio, no se si sera error o definitivo pero os pongo los links para quien le interese:

Nueva tienda "iMAll" aparentemente esta operativa (open beta), yo he echo un pedido de las normales verdes y sin problemas.

Un saludo!

*

#849
Jun 17, 2012, 06:58 pm Last Edit: Jun 17, 2012, 07:08 pm by JMN Reason: 1
Placas que se han basado en vinciduino:

http://www.sparkyswidgets.com/Projects/Sparduino.aspx

Quote

Basing our design on the Uno r3 form factor and taking a few notes from the fine work of the VinciDuino team and CrossRoads own leonardino design


http://www.olympiacircuits.com/leolympia.html

Quote

The LeOlympia project was based on Arduino information, the VinciDuino project and the Olimex project.

fm

Corcho, LeOlympia es un poco cariñosa ¿no? Quiero decir, $40, más del doble de la vinciDuino! Lo que no he encontrado es a lo que venden la Sparduino.

Me alegra que estén sacando derivados de nuestras placas, francamente es un auténtico placer que nuestro trabajo lo esté aprovechando otra gente. Por otro lado, también me alegra que nos mencionen como base de inspiración de la placa. Genial!
   

coleoptero

Me gusta que en la LeOlympia se hayan mantenido todos los holes para los pines tanto con distancias protoboard como las que mantienen en Leonardo.
Así en un momento dado también se pueden montar shields verticales empleando la distancia protoboard.

(ºLe
Consejos para hacer un correcto uso de los foros.

http://arduino.cc/playground/Es/Consejos

fm


Me gusta que en la LeOlympia se hayan mantenido todos los holes para los pines tanto con distancias protoboard como las que mantienen en Leonardo.
Así en un momento dado también se pueden montar shields verticales empleando la distancia protoboard.

(ºLe

+1
   

maxid

Quote
Vale, ya me he dado cuenta de mi fallo, estaba haciendo el tonto debido a un error en http://arduino.cc/en/Main/ArduinoBoardLeonardo ...allí dice "External Interrupts: 2 and 3.", por lo que había supuesto que int0 era D2 y int1 era D3 como en todos los arduinos.

La mayoría de vosotros ya lo sabréis, pero eso está mal. La asignación correcta es:

D0 = INT2
D1 = INT3
D2 = INT1
D3 = INT0


Reitero desde mi ignorancia, quiero usar interrupciones, pero segun leo estas estan usadas para el serial 0,1 y para i2c 2,3. ¿Pero que sucede si necesito usar estos 2 puertos mas la interupcion?
Los shield con ethernet ENC28j60 usan un pin interrupcion, aunque es opcional, pero para otro modulo wifi me hace falta.

El que pregunta aprende, el que responde aprende a responder.

fm

@maxid - el caso es que todos los microcontroladores tienen pines con funciones diferentes. Por ejemplo, el pin 0 y 1, está mapeado a una de las UARTs, a un módulo de entradas salidas discretas (pines digitales) y además tanto D0 como D1 se pueden usar para interrumpir al micro cuando cambie el estado de uno de esos pines.

El tema es que el que escribe la aplicación, en muchas ocasiones, tiene que seleccionar el tipo de funcionalidad que va a usar. Por ejemplo, si decides montar un dispositivo I2C como un reloj de tiempo real o sensor de temperatura, ya no puedes usar los pines 2 y 3 para otra cosa tipo digital IO.

Otro ejemplo de funciones especiales son las salidas asociadas a un evento de uno de los timers internos que al final se han mapeado por SW a un PWM.

Al final, cuando escribes tu aplicación, tienes que tener en cuenta este tipo de cosas y tomar decisiones de diseño.
   

Go Up