Atmel vs Microchip

Estado
Cerrado para nuevas respuestas.
El entorno de programación de Arduino es básicamente una cópia del programa Processing (supongo que están ligados de alguna forma).
Conocí processing cuando buscaba formas de realizar gráficos por código y justamente el trabajo de Processing se centra en el diseño multimedia y audiovisual... todo es full código...

Actualmente he visto que usan Processing (entorno gráfico) + Arduino (hardware) para mostrar por ejemplo el valor ADC de arduino en una pantalla creada por Processing.

O controlar Arduino desde un entorno creado con Processing...
process.jpg

En fin, es una opción gratis....
 
¿Qué utilidad y ventajas tiene processing?

No he trabajo con ambos pero como comparten casi un mismo lenguaje, es facil implementar algo en arduino y processing como interfáz. Además ambos IDEs son gratis.

En Processing solo escribes, hasta donde se todo el ambiente gráfico (la ventana) se crea por medio de código. En fin, Processing es una máquina (me refiero a la facilidad) cuando se trata de gráficos... y utilizarlo con Arduino es solo un aspecto... http://www.airtightinteractive.com/category/processing/, pero no por eso es de bajo nivel como este proyecto http://letsmakerobots.com/node/35147.

Hecho en Processing.
[ame]http://vimeo.com/1330733[/ame]
 
Impresionantes las imágenes. Lo que no le veía sentido Processing con Arduino, ahora viendo el vídeo que la cámara te mira, es muy curioso.

Hará más que eso.

Seguro, ejejje.
 
Arduino no del todo es C/C++, lo correcto seria decir "Arduino parecido a Wiring de Processing basado en Java pero condimentado con C++... :D " hacen un sintaxis más facilita.

No, Arduino es C/C++ solo llamas a las funciones programadas en esos lenguajes y la sintaxis son parecidas al processing/wiring, pero eso no significa que no sea C, puedes abrir el .ino y lo que tienes adentro es puramente lenguaje C/C++, implicitamente el compilador llama a Arduino.h y con ello a todas las otras librerías para que puedas emplear digitalWrite(), como esa declaración pasa desapercibida se considera un "elemento del lenguaje" pero no, si de compilador usa el AVR-GCC, con declarar explicitamente las librerías podrías programar en "lenguaje Arduino" usando cualquier otro IDE.

Muchas funciones son semejantes a las de Processing pero este está basado en java y Arduino en C, siempre puedes meter tu código en C para manipular los registros del microcontrolador directamente, hasta ensamblador puedes colar por ahí
 
es usando __asm__(); por ejemplo para un retraso de un ciclo metes __asm__("nop\n\t"); pero yo no programo en ensamblador así que te dejo un ejemplo de Internet para el "blink a LED"
Código:
void setup() {
  asm volatile (
    "sbi %0, %1 \n\t"           //pinMode(13, OUTPUT);
    :: "I" (_SFR_IO_ADDR(DDRB)), "I" (DDB5)
  );
}
 
void loop() {
  asm volatile (
     "sbi %0, %1 \n\t"          //LED on
     "call OneSecondDelay \n\t" //delay
     "cbi %0, %1 \n\t"          //LED off
     "call OneSecondDelay \n\t" //delay
     "rjmp 4f \n\t"             //exit
 
  "OneSecondDelay: \n\t"
     "ldi r18, 0 \n\t"          //delay 1 second
     "ldi r20, 0 \n\t"
     "ldi r21, 0 \n\t"
 
  "1: ldi r24, lo8(400) \n\t"
     "ldi r25, hi8(400) \n\t"
  "2: sbiw r24, 1 \n\t"         //10x around this loop = 1ms
     "brne 2b \n\t"
     "inc r18 \n\t"
     "cpi r18, 10 \n\t"
     "brne 1b \n\t"
 
     "subi r20, 0xff \n\t"      //1000 x 1ms = 1 second
     "sbci r21, 0xff \n\t"
     "ldi r24, hi8(1000) \n\t"
     "cpi r20, lo8(1000) \n\t"
     "cpc r21, r24 \n\t"
     "breq 3f \n\t"
 
     "ldi r18, 0 \n\t"
     "rjmp 1b \n\t"
 
  "3: \n\t"
     "ret \n\t"
 
  "4: \n\t"                     //exit
 
     :: "I" (_SFR_IO_ADDR(PORTB)), "I" (PORTB5)
     : "r18", "r20", "r21", "r24", "r25"
  );
}
 
Última edición:
Así se trabaja con el GCC en el Avr Studio.

La otra alternativa (supongo que Arduino también lo debe permitir), es juntar archivos assembler y c, mediante funciones.

De cualquier forma hay que saber bien que registros generales se pueden tocar y cuales no, acá les dejo una nota de Atmel.

Lo destacado es que una función hecha en assembler llamada desde "C" puede usar libremente los registros r18-r27, r31. En caso de usar el resto de los registros deben guardarse antes de usar y ser restaurado antes de salir de la función.
 

Adjuntos

  • doc42055- Guía para juntar C y Assembler.pdf
    143.1 KB · Visitas: 12
Sí debe permitirlo, como he dicho Arduino usa AVRGCC para compilar, de hecho si entras a Arduino\hardware\tools\avr (al menos en la versión Windows) te encontrarás el WinAVR
 
Una ves aplique un examen a niños de secundaria sobre el lenguaje C y cuando pedia que escribieran las palabras reservadas de C, ponian que printf era una palabra reservada, lo mismo les pasa hoy dia con arduino
 
Una ves aplique un examen a niños de secundaria sobre el lenguaje C y cuando pedia que escribieran las palabras reservadas de C, ponian que printf era una palabra reservada, lo mismo les pasa hoy dia con arduino

Sabemos que no puedes ver Arduino, antes era igual. Solo lo quiero ver cuando vi lo fácil ue es tener una placa con sus componentes bien funcionando al USb para controlar apatatos y desde Internet. Hablo como prototipo. Prefiero hacer el proyecto final con mi porpia PCB.

Lo que no mehace gracia de Arduino que solo usas AVR o ARM que están clasificados, no tienes tanta libertad. Que pena.

En el fondo prefiero C del XC8 o el de los AVR, lo he estado viendo y haces de todo, lo que es más incómodo para aprender, pero no tanto como el asm.

Saludo.
 
Interesante, creo que ya les había mencionado el cubo LED que estaba haciendo programando con el Arduino UNO R3, bueno, resulta que no quiero usar el Arduino ni el ATmega328P para controlarlo, planeaba usar uno de mis chips sobre inventario, entonces lo hice para emplear un MSP430, hoy es la primera ves que conecto el MSP430G2553 en la LaunchPad para probarlo, estoy trabajando el el código usando los temporizadores y el SPI en hardware, pero se me ocurre copiar el mismo código que el Arduino en Energía, solo renombré los pines y compilé, el código fue más reducido (Arduino 4 172 Bytes vs Energía 3 460 Bytes lo que no es mucha diferencia si consideramos que Arduino usa un bootloader de 0,5kB mientras que la LaunchPad incluye un programador JTAG SBW por lo que no pierde espacio) y noto que la animación es considerablemente más rápida.
Eso parece demostrar que mis técnicas de programación son mejores con 16bits, realmente el tener una variable de 8bits no siempre me es de utilidad :LOL: la ganancia de velocidad debe estar en los cálculos ya que las animaciones están programadas con pseudoaleatorios y los delay aplicados no se tocaron, además ambos operan a 16MHz, de ahí pues el compilador es GCC en ambos casos pero será cosa de optimización, por último el MSP430 es Von Neuman de 16bits y el AVR Hardvard de 8bits.
 
Última edición:
Hola Nuyel:

Si te digo l averedad, no se nada del cubo de LEd, por mi puedes hacerlo con Arduino UNO, lo compré hace semanas, ejejejee.

Saludo.
 
yo tampoco se nada :LOL: pero no se si estoy manejando mal el SPI que no logro que funcione la comunicación del MSP430, los LEDs se encienden de una forma inesperada, al menos los niveles se activan pero hay algunos LEDs que no brillan y cuando detengo el debug se supone debería quedar solo un nivel encendido pero quedan los 4 :cabezon: es la primera ves que intento usar SPI,.
 
Freescale ó es muy celoso de su informacion o pretende que todo, y cuando digo todo digo: capacitacion herramientas BDM, IDE, e inclucive micros sean distribuidos solo por ellos y nadie mas, en Argentina no encontras info en español ni apalos, y la que encontras es de familias en extincion como lo es la serie 908, es una pena.
Creo que Freescale esta apuntando (o mejor dicho, siempre lo hizo, ahora con Freescale antes con Motorola) directo a la yugular pero del Ingeniero, no al técnico, no al aficiondo , menos al hobbista, yo sin tener a quien prguntar y antes de investigar por la web, me compre un BDM (precisamente el modelo RS-POD, de Edudecices, que es muy buena aclaro), de fabricacion nacional que me costo en su momento unos 300 pesos AR, hice alguna pabadas pulsador con led y mas led pero no sali de ahi, por no tener con quien consultar, es como si tubiera alguien te dijera desde hoy vas a empesar a programar micros y de freescale pero.... en Argentina te vendo todo lo necesario, pero cuando se te presente una duda arreglatelas como puedas, asi que el BDM esta guardado en el cajon y estoy penando seriamente (y miren lo que les voy a decir), adquirir la licencia de NIPLE y un programador economico para no frustrarme mas y comenzar a desarrollar ya que el tiempo es riguroso y no tengo 20 como la mayoria de ustedes (en unas palabras estoy completamente DESILUCIONADO con Freescale y con los que prometen marabillas, comercializando sus herramientas en Argentina). Saludos.
 
yo he trabajado con freescale y sinceramente no me parecio malo
su IDE es buena y el compilador el Codewarrior es bastante util a la hora de llamar interrupciones

lo que si vi es que sus puertos para nada son de 8 bits son de 32 bits
y para manejar los pines del puerto hay de 2

usando el prosesador experto "hace el codigo que no pueda cambiarse facilmente"
y la otra es usando mascaras
es decir enmascaras el puerto para usar los bits a usar

informacion en español

bueno eso seria avanzar hacia atras en la ingenieria, si uno quiere aprender debe meterse seriamente a los manuales en ingles

¿NIPLE?
bueno cada quien hace lo que puede mientras no caigas con ARDUINO todo esta bien
 
Hola estaba casi seguro que me iba a responder un colega de Mexico, es mas mis primeras practicas con Freescale fueron asistidas por por el Ingeniero Mexicano Ivan Lara y totalmente sin fines de lucro, el en su momento se encontraba en un puesto laboral, desde donde podia chatear y responder a todas las dudas que tenia, y como dije sin compromiso alguno yo tenia ganas de aparender y a el en ese momento le era facil responder en vivo y en directo.

Pero en fin por Mexico se ve mucho Freescale. incluso en las univercidades aca no, gracias por los ultimos concejos (a buen entendedor pocas palabras, dicen) y capte tu mensaje.

Pero te pregunto a ti si quisiera seguir con mis practicas pasar del pulsador y los led y pasar la manejo de un display lcd o bcd, o conectar algun acelerometro y ver los resultados en un display no se todas las practicas basicas que por lo gral. se realizan con el resto de los micros y no tengo manuales ni simuladores mas que un MC9S08SH8, y su datasheet, como hago para continuar por donde empiezo? en cambio con PIC, si deseara hacer alguna de estas practicas de seguro tendria mucha mas colaboradores dadome alguna idea de como hacerlo, se entiende?, supon que, supero la barrera del idioma a quien le consulto sobre Freescale, es mas fresscale tiene manuales para principieantes , aunque se en ingles?

De todas formas gracias por responder, :apreton:
 
Última edición:
bueno el ingles es algo que casi casi a la de afuerzas si quieres aprender

los americanos estan metidos en los freescale y los AVR los pic son populares por su documentacion en español

aprender un Freescale es casi como manejar un AVR o un PIC
bueno pic siempre y cuando no lo comparemos con el CCS que es como andar en triciclo
y los AVR siempre y cuando no digamos Arduino

¿cual es la diferencia?
el IDE el ide de freescale es amigable , pesado , y de paga

¿como aprender?
bueno yo maneje el Freedom y el Kwistik por cuestiones de que me pagaban mis colegas de la escuela para que les hisiera sus practicas y proyectos

no sabia lo que se llama nada
pero con las bases de programacion en C ve uno claramente que es ANSI C y los fabricantes de Freescale ,Avr Studio y C18 dan ejemplos de programas
en MISRA C

¿que quiere decir?
significa que es un lenguaje C casi casi compatible donde lo que cambia son el uso de los registros
ejemplo DDR en AVR ,ADC ON en el PIC , GPIO en Freescale
fuera de eso todo es igualito

recomendaciones :unsure:
leer mucho sobre programacion en C "no CCS ni ARDUINO" lee mucho de ANSI C

bajar la hoja de datos del micro a usar y ver sus registros y sus puertos , bajar un ejemplito y ya

¿conectores?
bueno las tarjetas Freescale tiene conectores muy poco comerciales como el Kwistic que usa un PCI EXPRESS
uno puede soldar o mandar traer un conector y los mini jumpers lo mismo

¿Acelerometo, Display ,Uart ,ETC.?:eek:

bueno como dije si hay ejemplos en MISRA C una libreria de LCD de un micro diferente te puede servir "SIEMPRE Y CUANDO NO HAGA USO DE REGISTROS DEL MICRO"
un ejemplo es la libreria de LCD de un AVR si uno la escribe pensando genericamente puede que jale en el C18 o el el Codewarrior

si hay que hacer modificaciones pero ya son minimas

leer mucho y saber mas que algo de ingles es algo que no se debe discutir:LOL:
 
El que sea un etorno de trbajo, (ide) de paga, asegura algo?, por ejemplo,(pienso yo) que no lo puedan tener cualquiera, como los micros de TI, ellos tambien tienen su entorno bajo licencia paga, y esto en verdaad asegura algo a la hora de desarrollar, que implica por ejemplo tener ecistencia tecnica por el echo de haber pagado la licencia? creo que es la única ventaja, AVR o ATML tiene el Studio 6 que por lo que me ahn comentado es muy bueno y es totalmente gratuito, conoces que Freescale este inmiscuido en desrrollos verdaderamente importantes, eso seria un buen indicio de por que llegan hasta algunas latitudes si y a a otras no. (esto es simple polemica o debete).

Con respecto a tus consejos lo acepto toditos, ya que acreditas experiencia, muchas gracias:apreton:
 
los americanos estan metidos en los freescale y los AVR los pic son populares por su documentacion en español

Los americanos...

¿Te refiere solo a toda Améica o a los EE.UU. que se creen que están solos? (No cuentan ni con Canadá). Es la mentalidad que tienen los EE.UU. meter esa expresión en sus películas, ahora ya no tanto.

Por eso cuando sacan películas de invasión a la tierra o cosas raras, solo ocurre precisamente en EE.UU como si los demás de la Tierra no existen. ;)

Si es todo el continente, los americanos usan mucho PIC, lo comento porque me llegan comentarios de la gente de América que le explique cosas de PIC, a veces aArduino, no AVR a secas.

Eso de FreeScale más bien era antes, porque ahora está con los ARM a toda costa. Incluido EE.UU. que está hasta Microsoft por medio con ARM para hacer cosas como C# para ella a lo Arduino.

Por lo que he visto, Sur y centro de América es más bien de PIC en su mayoría para aprender, en cuanto al Norde de América, le veo fuerte con ARM. Japón todo lo que sea Tecnología, se pasan estas gente programando lo que tranque.
:)
 
Estado
Cerrado para nuevas respuestas.
Atrás
Arriba