Autor Tema: Microcursillo en C  (Leído 178970 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado tsu_daniel

  • PIC10
  • *
  • Mensajes: 17
Re: Microcursillo en C
« Respuesta #390 en: 05 de Julio de 2006, 17:40:07 »
hola a todos y saludos fde venezuela. yo quisiera pedirles el favor de que me ayuden a  aprender a programar pic en c, se programar en ensamblador pero ya quiero aprender en c, ya que dicen que ya el ensanblador paso de moda y en c es mas facil. nose nada de lenguaje asi que sera un poco dificil aprender, hasta luego y espero la ayuda de ustedes
Se puede confiar en las malas personas, nunca cambian

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Microcursillo en C
« Respuesta #391 en: 06 de Julio de 2006, 08:59:54 »
Buenas!!!! y bienbenido al maravilloso mundo del C!!!jeje, una matizacion el ensamblador nunca pasara de moda, siempre debe estar presente para ciertas aplicaciones(y es una buena herramienta para conocer en profundidad al microcontrolador), eso si, el C te dara mayor flexibidad al escribir codigos, poco codigo y tal, ¿para empezar? pues este mismo hilo, el cual trata del microcursillo conjuntamente con los ejemplitos en C y muchas ganas de aprender!


Animo y suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado FJPPitta

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 116
    • Mi pagina personal
Re: Microcursillo en C
« Respuesta #392 en: 19 de Julio de 2006, 04:39:29 »
Saludos, estoy comenzando con esto de los PICs y estoy tratando de usar el 18F2550 para realizar mi proyecto, mi duda es:

existe alguna manera de hacer en C un temporizador que corra mientras el micro realiza otra funcion?

Lo que intento es hacer es una especie de frecuencimetro, tengo una señal de onda cuadrada de frecuencia variable y un ciclo de trabajo del 50% la cual entrara a un pin de micro y deseo conocer la frecuencia cuando lo solicite.

La frecuencia varia entre 10 KHz y 600 KHz.

Aprovechando, que es mas sencillo y eficaz para medir esa frecuencia, hacer un conteo de pulsos en cierta unidad de tiempo o contar el tiempo que tarda en presentarse cierto numero de pulsos.

EDIT: ya localize un hilo acerca de como medir la frecuencia y ya lo estoy leyendo, solo me gustará saber si es posible medir esa frecuencia de 10 KHz y 600 KHz y lo ultimo acerca de que metodo es mas recomendable para medir frecuencia.
« Última modificación: 19 de Julio de 2006, 04:50:07 por FJPPitta »
Que la fuerza te acompañe

Desconectado microfull

  • PIC10
  • *
  • Mensajes: 26
    • microfull
Re: Microcursillo en C
« Respuesta #393 en: 16 de Agosto de 2006, 23:26:42 »
Bueno soy nuevo en esto del C quiero aprender se un poco de pic basic pro quiero saber cual es mejor cual genera codigo mas puro porque ya he tenido problemas con pic basic pro

quiero aprender me apunto en el minicurso de c
www.microfull.com
Desarrollo de proyectos microcontrolados

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Microcursillo en C
« Respuesta #394 en: 17 de Agosto de 2006, 01:41:21 »
Bienvenido, Maser.

Creo que podría ser un buen ejercicio para empezar ese que propones; hacer el programa con Basic y con C y comparar qué código está más optimizado. Podrías empezar por encender un led, por ejemplo.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Microcursillo en C
« Respuesta #395 en: 17 de Agosto de 2006, 04:28:28 »
Hola.
Como me interesa esto de la optimización, he realizado el análisis de hacer parpadear un led en ambos compiladores.Y en assembler, por supuesto.
En PBP: Usando el ejemplo de LordLafebre(Ejemplos en PBP y PROTEUS) : 56 instrucciones asm
En CCS: Usando el ejemplo de vszener(Ejemplitos en C para 16F648A): 51 instrucciones asm.
El mísmo programa hecho por mi en assembler: 24 instrucciones.

Aclaraciones:
1)Elegí entre las 4 opciones que puso LordLafebre la que menor cantidad de lineas generó.
2)Convertí el programa de vszener para el pic 16F84A y a los delay los cambié a 1 segundo.

Programas desensambladores utilizados:
PIC-Disasm
IC-PROG.
.

Saludos.
« Última modificación: 17 de Agosto de 2006, 04:56:52 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Microcursillo en C
« Respuesta #396 en: 17 de Agosto de 2006, 05:17:20 »
Bruno:

Pásame el ejemplo en C de vszener tal como tu lo has compilado para darle un vistazo ... y después te digo algo.

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Microcursillo en C
« Respuesta #397 en: 17 de Agosto de 2006, 14:49:56 »
Hola RedPic.

Código: C
  1. ////////////////////////////////////////////////////////////////////////////////////
  2. //   VsZeNeR"05      
  3. //             6/Agosto/05
  4. //
  5. //Programa:   Parpadeo de un led cada 0.5s
  6. //Version:   0.0
  7. //
  8. //Dispositivo: PIC 16F648A      Compilador:    CCS vs3.227
  9. //Entorno IDE: MPLAB IDE v7.20   Simulador:    Proteus 6.7sp3
  10. //
  11. //Notas: Parpadeo de un led cada 0.5s por el pin RB0 del puerto B
  12. //////////////////////////////////////////////////////////////////////////////////
  13.  
  14. #include <16f84a.h>         //pic a utilizar          
  15. #fuses XT,NOWDT,NOPROTECT,PUT      //ordenes para el programador
  16. #use delay (clock=4000000)         //Fosc=4Mhz
  17. #use fast_io(b)
  18.  
  19. ///PROGRAMA
  20. void main(void)
  21. {
  22.    set_tris_b(0xFE);   //portb como salida(RB0,las demas desactivadas)
  23.    disable_interrupts(GLOBAL);   //todas las interrupciones desactivadas
  24.    
  25.    do{  
  26.       output_low(PIN_B0);          //led off
  27.       delay_ms(1000);            
  28.       output_high(PIN_B0);        //led on
  29.       delay_ms(1000);
  30.    }while(TRUE);                //bucle infinito
  31. }

Probablemente sin el fast_io y sin el disable_interrupts(global) se ahorren unas lineas.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Microcursillo en C
« Respuesta #398 en: 17 de Agosto de 2006, 15:05:36 »
Ya está Bruno. Ya he visto lo que quería ver.

Precisamente el fast_io es lo que ya ahorra algunas líneas. Si le quitas el fast_io debe subir el numero de líneas generadas por el CCS ya que en ausencia de fast_io el compilador pone automáticamente un tris delente de cada instrucción de entrada o salida por un pin.

Es una forma de asegurarse de que el tris es el que debe ante una salida o una entrada. Al usar el fast_io todo el asunto de los tris queda en manos del programador y el CCS se desentiende, por eso genera menos lineas en asm.

 
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado microfull

  • PIC10
  • *
  • Mensajes: 26
    • microfull
Re: Microcursillo en C
« Respuesta #399 en: 18 de Agosto de 2006, 00:21:41 »
Bueno yo creia que podiamos empezar la verdad tengo el manual de ccs de frino y ya lo he leido un poco pero quiero empezar a programar la idea es que cuando escriban un codigo las personas que saben mas de esto traten de explicar y no hacer otras cosas ya que los novatos se confunden cuando tratan de seguir un proseso y luego saltan a discutir otra cosa.
Bueno voy a empezar por hacer un programa por dia veamos cuanto demoro en aprender ccs hagamos un ejemplo por dia pero bien explicado.
www.microfull.com
Desarrollo de proyectos microcontrolados

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Microcursillo en C
« Respuesta #400 en: 18 de Agosto de 2006, 01:17:28 »
Si te quieres subir al tren tendrás que empezar a correr porque está en marcha. Sacaremos la mano por la ventanilla para ayudarte, pero no puedes pedir que el tren pare para que te subas, y mucho menos exigirlo.

Además, lo tuyo es curioso. Si miras en el foro, no sólo encontrarás el tren parado y esperándote, sino encima con alfombra roja, sombrilla para el sol y cubata para el camino. No tienes más que empezar el Microcursillo por el post nº 1, o echar un vistazo a los Ejemplitos para 16F648A de vszener o los Ejemplitos para 16F876 de RedPic, que son la punta de lanza de miles de posts con ayuda a principiantes.

¿Que no están bien explicados?, entonces es que no sabes leer.

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Microcursillo en C
« Respuesta #401 en: 18 de Agosto de 2006, 16:51:18 »
Muchas lineas de codigo se consumen al configurar los fuses.....es cuestion de compilarlo con la nueva versión (o la más actual) haber si se mejora.


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado microfull

  • PIC10
  • *
  • Mensajes: 26
    • microfull
Re: Microcursillo en C
« Respuesta #402 en: 19 de Agosto de 2006, 18:00:19 »
Amigo nocturno yo no desia de empezar de nuevo sino que cuando detallaramos los dos codigos el PBP y CCS no saltaramos a otros temas sino observar bien y explicar la diferencias en codigo y en esto de la optimizacion al igual de que cosas no se pueden hacer en PBP o que salen demacido largas y que poden problemas, que con CCS si se pueden hacer y mas faciles, es como dar una opcion de porque pasarse a CCS esto le sirve tanto al que esta empezando como al que va montado en el tren como dice usted de todos modos recuerde que ese es el titulo del foro microcursillo en c, disculpe las molestias. Creo que las persanas que saben un poco mas estan para ayudar ese es el objetivo recuerde que hay personas que quieren entrar a este medio. Gracias
www.microfull.com
Desarrollo de proyectos microcontrolados

Desconectado microfull

  • PIC10
  • *
  • Mensajes: 26
    • microfull
Re: Microcursillo en C
« Respuesta #403 en: 19 de Agosto de 2006, 18:01:54 »
Pero eso no importa ya lo importante es montarme en el tren asi que les pido que todos saquen las manos a ver de cual me agarro hare como james Bond en sus esenas de trenes.
Gracias
Pilas manos a la obra
www.microfull.com
Desarrollo de proyectos microcontrolados

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Microcursillo en C
« Respuesta #404 en: 20 de Agosto de 2006, 08:12:10 »
Para 'montarte en el tren' es fácil, ¿quieres encender y apagar un led? ¿quieres manejar perifericos internos del pic? ¿quieres comunicarte via serial con el PC? ¿quieres.....?

Aquí lo encontrarás:
Ejemplitos en C para 16F648A
Ejemplitos 16F876A: Indice de contenidos.
Microcursillo en C

Y si entras en los respectivos post, verás que hay manuales y utilidades para programar.


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte


 

anything