Autor Tema: hola, consulta de lenguaje C generico y arduino  (Leído 3481 veces)

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

Desconectado gustavopic

  • PIC18
  • ****
  • Mensajes: 417
hola, consulta de lenguaje C generico y arduino
« en: 17 de Mayo de 2021, 15:09:33 »
hola, esta consult ano es de arduino, si mas bien de el lenguaje c , por eso la puse aca.

he visto en los temas que hay C especifico para cada uno , pero bueno, ac ales voy con al pregunta, queria ver de comenzar a meterme un un lenguaje C ( ya habia estudiado un poco de arduino , y antes de ASM, lo suficiente como para haber hecho algunas cosas ) .
pero vi que en arduino por ejemplo si bien la programacion esta muy buena, una vez que manejo las instrucciones es muy comodo , pero tengo varios problemas:
1 -- es solo para ese micro de arduino, esta todo ajustado para ese chip.
2 --- usa recursos de el chip, no recuerdo bien , pero "se apodera" de un timer por ejemplo , ( es logico si maneja instrucciones de tiempos )  y mas cosas, que bueno, yo no podre usar sin hacer un lio de todo.

ENTONCES:  imagino que si en vez de el lenguaje de arduino aprendo un C de un chip , pues ahi si tendre disponibles todos los recursos de el chip y tambien tendre disponibles toda la gama de chips de esa marca.

ENTONCES:  mi pregunta  es , hoy dia EN ARGENTINA teniendo en cuenta la disponibilidad de chips ( no todosson facile sd econseguir y a un precio razonable, imagino que si se consiguen bien : atmel, pic, ST  y ahora vendra los de esa placa de rasperri pi que dicen es mucho mejor y saldra mas barata )  :

que lenguaje C para un microcontrolador me aconsejan ?? que tenga mucha info en castellano , amigable, y no me encasille si luego quiero migrar a otra marca ??
yo no hago cosas muy complejas, el tema importante para mi es :
conseguir chips siempre en mi pais y a buen precio y mas importante aun :
la informacion, cursos amigables en al red, info  para poder meterme.

un saludo y gracias.

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Re:hola, consulta de lenguaje C generico y arduino
« Respuesta #1 en: 17 de Mayo de 2021, 17:57:27 »
Él tipo de lenguaje C (implementación, dialecto, Ansi, iso, etc) va a depender del compilador que uses que creo que es realmente por lo que preguntas.

  Cada microcontrolador o familia de microcontroladores tiene su/s compilador/es C. Normalmente todos suelen respetar Ansi C., C89/90, C18, etc.   

  Básicamente eso significa que si no haces mucho uso de las librerías y funciones propias que cada compilador implementa y trabajas lo más posible el lenguaje puro, tu código va a ser muy portable entre un micro y otro e incluso entre otros compiladores.

  Las librerías de los compiladores o de otros usuarios aplicables a un determinado compilador te pueden ayudar muchísimo a implementar y utilizar los recursos del microcontrolador sin tener que recurrir mucho a los datasheet. Una de las cosas buenas de C es que te permite trabajar a bajo o muy bajo nivel, por lo que realmente tú puedes ver los datasheet de los micros con los que trabajas e implementar funciones y tus propias librerías para manipular/usar registros, módulos, memorias, etc obteniendo un control muy bueno sobre el microcontrolador. Algo muy lejos de lo que se puede hacer con arduino. 

  Saludos.

Desconectado gustavopic

  • PIC18
  • ****
  • Mensajes: 417
Re:hola, consulta de lenguaje C generico y arduino
« Respuesta #2 en: 17 de Mayo de 2021, 23:09:33 »
Él tipo de lenguaje C (implementación, dialecto, Ansi, iso, etc) va a depender del compilador que uses que creo que es realmente por lo que preguntas.

  Cada microcontrolador o familia de microcontroladores tiene su/s compilador/es C. Normalmente todos suelen respetar Ansi C., C89/90, C18, etc.   

  Básicamente eso significa que si no haces mucho uso de las librerías y funciones propias que cada compilador implementa y trabajas lo más posible el lenguaje puro, tu código va a ser muy portable entre un micro y otro e incluso entre otros compiladores.

  Las librerías de los compiladores o de otros usuarios aplicables a un determinado compilador te pueden ayudar muchísimo a implementar y utilizar los recursos del microcontrolador sin tener que recurrir mucho a los datasheet. Una de las cosas buenas de C es que te permite trabajar a bajo o muy bajo nivel, por lo que realmente tú puedes ver los datasheet de los micros con los que trabajas e implementar funciones y tus propias librerías para manipular/usar registros, módulos, memorias, etc obteniendo un control muy bueno sobre el microcontrolador. Algo muy lejos de lo que se puede hacer con arduino. 

  Saludos.

si, eso me gusta, por que siempre tengo tiempo  y si, la idea es no usar librerias, no me gusta poner algo en el programa que no lo hice yo.
Por otro lado me han dicho que el C es casi lo mismo que el lenguaje de arduino, y como tu aclaras sin  perder el control de las funciones de el micro.

entonces: me puedes apuntar a donde iniciar el asunto ?? segun las opciones de familias que te parezcan mas que cumplen con lo que yo indique.
mas que opciones de familias opcion de una de ellas.....
a que familia te parece seria mejor meterme, por ser facil de conseguir en argentina y economicas y por tema info en castellano ?¡?¡
microchip ¡¡ atmel ?? st ??
o no se como va lo de raspérri, me parece que esa opcion es a futuro, no ahora, ademas creo que son chips de muchos pines.
yo usaria chips de no muchos pines ( 20 pines por ejemplo ) , y de encapsiulado DIP, o sea el clasico, no el de montqaje superficial.

fijate que yo NO pregunto ni me pongo como prioridad las prestaciones ( cual tiene mas memoria o mas recursos ) , ya que eso no me importa, el uso que le dare, para lo que hoy dia trae un microcontrolador, estare siempre sobrado , ademas, cualquier familia tiene  monton de variantes  con mas o menos recursos, por eso ese punto no lo marco siquiera.
 

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:hola, consulta de lenguaje C generico y arduino
« Respuesta #3 en: 18 de Mayo de 2021, 05:46:23 »
Algo muy lejos de lo que se puede hacer con arduino

Eso no es así para nada. No termino de comprender por qué tantas personas piensan así sobre el entorno Arduino de manera equivocada.
Lo explico.
Arduino utiliza por debajo el compilador de C++ GNU GCC sobre el micro Atmega328. Con él se puede hacer de todo. Control a bajo nivel y a muy alto nivel  (más que con los PIC que utilizan solo un compilador de C).

En Arduino se AÑADEN características mediante definiciones y funciones predefinidas para facilitar el control sencillo del micro SIN QUITAR nada del compilador original.

Por lo tanto en Arduino puedes programar algo así como
   DDRD = 0b11110000;
que configura pines 0,1,2,3 como entradas digitales y los pines 4,5,6,7 como salidas digitales escribiendo directamente sobre el registro del microcontrolador.

Es decir que en Arduino puedes programar con acceso directo a registros o programar con funciones predefinidas:
   pinMode(13, OUTPUT);    // Función predefinida de Arduino. Pin 13 (RB5) es una salida digital.


Tienes todas las ventajas de un entorno sencillo para comenzar y todas las ventajas de un entorno muy potente para continuar aprendiendo y avanzando.

Arduino es un conjunto de herramientas de las que puedes utilizar las que quieras o utilizar otras si quieres avanzar más:
  - Placa de desarrollo Atmega328P con Bootloader
  - Programación directa del micro con programador
  - IDE de programación
  - Librerías de funciones y cabeceras con definiciones para facilitar la programación

Un saludo.

« Última modificación: 18 de Mayo de 2021, 05:57:27 por Picuino »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:hola, consulta de lenguaje C generico y arduino
« Respuesta #4 en: 18 de Mayo de 2021, 06:50:05 »
Yo opino casi igual que Picuino...

Lo que no coincido es con el IDE, el IDE original de Arduino es una patada entre las piernas.
Y no se hasta que punto el tema de las interrupciones es configurable.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:hola, consulta de lenguaje C generico y arduino
« Respuesta #5 en: 18 de Mayo de 2021, 10:38:56 »
El IDE es muy sencillo. Está hecho así a propósito para los principiantes.

A mí personalmente me gusta porque soy muy rústico. Pero como tantas otras cosas de Arduino, si a alguien no le parece suficiente, lo puede cambiar y tan contento.
En este caso el IDE se puede cambiar por Eclipse:
https://www.luisllamas.es/programar-arduino-con-eclipse/

Edito:
Las interrupciones son completamente configurables. El problema es que si las reconfiguras, puedes perder algunas funciones de Arduino como la función millis() o analogWrite().
Pero puedes hacerte tú mismo otras funciones equivalentes con las nuevas funciones de interrupción que has creado.
https://www.luisllamas.es/que-son-y-como-usar-interrupciones-en-arduino/
« Última modificación: 18 de Mayo de 2021, 10:46:09 por Picuino »

Desconectado uZYNQ

  • PIC16
  • ***
  • Mensajes: 123
Re:hola, consulta de lenguaje C generico y arduino
« Respuesta #6 en: 18 de Mayo de 2021, 10:54:02 »
Otra alternativa como IDE es utilizar Visual Studio Code con PlatformIO. Todas las ventajas de arduino en un IDE profesional gratuito que posee muchísimas extensiones. multiplataforma, autocompletado, intellisense, terminal y monitor integrados, y muchos etc. ademas que soporta muchos entornos de programación como Python, Javascript, C, C++, etc.

Desconectado gustavopic

  • PIC18
  • ****
  • Mensajes: 417
Re:hola, consulta de lenguaje C generico y arduino
« Respuesta #7 en: 18 de Mayo de 2021, 14:14:09 »
El IDE es muy sencillo. Está hecho así a propósito para los principiantes.


el reloj es fijo ( tendria que ver cada funcion y si usa o no el ck en esa configuracion, si no  , chau si cambio el reloj= ) 
que yo sepa es para un model de atmel.
no se si puse interrupcciones mas atras, pero me referia a el TIMER, que el lenguaje arduino ocupa para varias funciones.
tendria que mirar cada funcion, pero no solo millis, sino tambien la de leer valores analogicos y no dudo que otras mas .


si pude ver cuando aprendi que podia programar cosas en ASM , eso esta en la pagina de arduino, tambien me "desentendi" de muchisimas cosas que cuando programaba en ASM era un dolor de huevos como el inicio que no debia olvidar de configurar nada, pero bueno, no se yo.
por eso les pregunto.

« Última modificación: 18 de Mayo de 2021, 14:16:20 por gustavopic »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Hola, consulta de lenguaje C genérico y Arduino
« Respuesta #8 en: 18 de Mayo de 2021, 14:40:50 »
En cuanto a los chips, no sé exactamente cuántos puedes programar desde la plataforma Arduino. Como mínimo los siguientes de 8 bits:
   Atmega328P
   Attiny85

Y a partir de ahí muchos más: https://en.wikipedia.org/wiki/List_of_Arduino_boards_and_compatible_systems

Aquí la guía de instalación de cores: https://www.arduino.cc/en/guide/cores

« Última modificación: 18 de Mayo de 2021, 14:58:45 por Picuino »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Hola, consulta de lenguaje C genérico y Arduino
« Respuesta #9 en: 18 de Mayo de 2021, 14:51:52 »
no se si puse interrupcciones mas atras, pero me referia a el TIMER, que el lenguaje arduino ocupa para varias funciones.

Arduino no es un lenguaje. Solo es un conjunto de funciones de C++ y de #defines añadidos a un compilador C++ estándar.

Esas funciones de Arduino no funcionan bien si cambias el TIMER que las controla o si cambias la frecuencia de reloj de 16MHz.
Pero eso no supone ningún problema si tienes conocimientos para hacerte tus propias funciones de control y manejo de Timer (modo avanzado ON)
« Última modificación: 18 de Mayo de 2021, 14:58:38 por Picuino »