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

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

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Microcursillo en C
« Respuesta #120 en: 26 de Noviembre de 2004, 09:58:00 »
// Esa que has puesto y esta son las que yo conozco
// SaludosSonrisa Gigante

Desconectado David_TGN

  • PIC10
  • *
  • Mensajes: 5
RE: Microcursillo en C
« Respuesta #121 en: 27 de Noviembre de 2004, 11:23:00 »
Hola buenas a todos, gracias por ste post me está ayudando mucho, pero ya que tengo una dudilla a ver si podeis ayudarme (soy un iniciado y me ido directamente al pic 18  y con programación en C de MPLAB):

Tengo un programa (PIC 18F252 a 32 MHz) y utilizo 3 interrupciones externas (Puerto B),así como tres timers para cada vez que acontece una de estas interrupciones.

Cada vez que acontece una INT, realiza una operación y inicializa un timer (4,8 microseg.) asociado a esa int

INT0  --> timer0
INT1 --> timer2
INT2 --> timer3

lo he hecho demil frmas diferentes pero na de ná, alguna idea para que continue probando.

Cuando llega una int, inhabilita las otras, ejecuta código interno, y sale..
Cuando acontece el final de un timerX , ejecutá código y sale..

Bueno, a ver si alguien me hecha un cable. (El programa en si controla tres convertidores, mediante la corriente de entrada a cada uno de ellos).. Con puertas logicas funciona de cine, pero con e PIC de momento no chuta.
 
no se si era el lugar mas adecuado para postear, pero bueno, en tal caso me lo decis y lo posteo donde deba...

Gracias..

David
Castellón - Barcelona

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Microcursillo en C
« Respuesta #122 en: 28 de Noviembre de 2004, 10:56:00 »
Podrías crear un hilo en el subforo de C y plantear tu problema.Si pasteas el código ó al menos la parte que te da problemas será más fácil dar con el fallo.
Un saludo

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Microcursillo en C
« Respuesta #123 en: 28 de Noviembre de 2004, 11:22:00 »
Que os parece si vamos construyendo ejemplos de código para el uso de todos y cada uno de los recursos y periféricos del pic,desde el simple uso de los puertos hasta I2C,PWM,AD,etc...
Tenía pensado en poner cada ejemplo de código con un esquema en proteus,alojados de forma individual en un pequeño espacio web de 30Mb que tengo,ó en el mismo foro,eso como vean ustedes.Así se puede orientar rápidamente a alguien que no tiene conocimiento o manejo con estas cosas.Yo de momento estoy haciendo uno para el uso del lcd,el conversor y el timero 0 todo en uno,aunque creo que sería mas didáctico hacerlos totalmente por separado y de forma específica y bien desarrollada.
¿Cómo lo ven?
¿Quien se pide el PWM?
¿Y la USART?

Desconectado gfp

  • PIC18
  • ****
  • Mensajes: 274
RE: Microcursillo en C
« Respuesta #124 en: 28 de Noviembre de 2004, 11:30:00 »
Modulay, me parece magnifico, esa idea es brillante, asi la persona que no tenga experiencia alguna en el asunto de los micros puede guiarse de la manera mas práctica. Y la idea de almacenarlos separadamente en ese espacio es mgnífico. De ser así me pido el capitulo de la USART.

gfp Sonrisa

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Microcursillo en C
« Respuesta #125 en: 28 de Noviembre de 2004, 11:43:00 »
Uno menos para elegir,amigos!!
Gracias gfp.Cuando lo tengas me avisas y lo cuelgo.
Lo suyo es comentar los programas al máximo y destacar todo lo que uno crea q es digno de destacar.
Si no hay nadie que lo quiera para sí,yo voy a hacer un ejemplo para el uso de los puertos.
Saludos

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Microcursillo en C
« Respuesta #126 en: 28 de Noviembre de 2004, 11:46:00 »
Venga yo dejaré algunos ejemplillos en la carpeta de PWM.

Podemos dejar ejemplos en las carpetas que queramos, eso sí fundamental que sean ejemplos que sepamos que funcionan correctamente, a ser posible acompañados de la correspondiente simulación en PROTEUS.

Un saludo

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Microcursillo en C
« Respuesta #127 en: 28 de Noviembre de 2004, 12:49:00 »
Ya tenemos algo más
¿Qué carpeta es esa,Pocher?

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Microcursillo en C
« Respuesta #128 en: 28 de Noviembre de 2004, 13:22:00 »
Me refería al espacio WEB del que dispones pues dividirlo en carpetas, E/S, A/D, RS232 , PWM etc, donde el que lo desee pueda meter ejemplos en cada una de ellas. A su vez dentro de cada carpeta incluir nuevas carpetas con el nombre del que deja los ejemplos:

Carpeta PWMPocherEjemplo1, Ejemplo2 ....
Carpeta PWMModulayEjemplo1, Ejemplo2 ....
Carpeta PWMgfpEjemplo1, Ejemplo2 ....

Incluso se podrían recopilar algunos de los ejemplos-proyectos que se han ido resolviendo a lo largo de la historia del FORO y tenerlos allí perfectamente ordenados.

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Microcursillo en C
« Respuesta #129 en: 28 de Noviembre de 2004, 13:59:00 »
Me parece bien.
Conforme vayan saliendo cosas que añadir,se le puede ir dando estructura y forma.
De momento el espacio está vacío,en espera de ir añadiendo ejemplos.Ya hay una carpeta PWM en la que se pueden poner esos ejemplos.Aún tengo que hacer el diseño html para poder visualizar y navegar por los directorios,de momento solo se puede acceder a descargas directas de los archivos a través de la url

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Microcursillo en C
« Respuesta #130 en: 28 de Noviembre de 2004, 16:13:00 »
Bueno,ya se puede navegar por los directorios.He creado varias carpetas para ir distribuyendo las cosillas que se vayan poniendo,pwm,adc,puertos E/S....

La dire es

http://personal.auna.com/asencio5/Ejemplos%20C/

He colocado un ejemplo de uso de memoria ram externa,probado y funcionando gracias a la inestimable ayuda de manex_1987,está aqui
Saludos

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: Microcursillo en C
« Respuesta #131 en: 28 de Noviembre de 2004, 19:19:00 »
Qué bien está la idea de publicar programas básicos para que todos les entendamos.

Tal vez sería más fácil publicarlos en un Maletín de Yahoo como en otros subforos le han hecho, así cualquiera puede agregar lo que quiera.

También sería bueno que hubiera una lista completa y actualizada de todos los códigos que suban para no tener que andar preguntando a medio mundo dónde está cada cosa. Esta lista sería bueno ponerla al principio de este tema.

Ya que estoy aquí... tengo una pregunta...

En C para computadora hay una función que genera números random: numero=randomize(100);

Esa saca un número del 0 al 100 y lo pone en numero.

¿Existe una función así en los PIC?

Giño

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Microcursillo en C
« Respuesta #132 en: 29 de Noviembre de 2004, 00:44:00 »
Son estas:

RAND()
 
Syntax:
 re=rand()

Parameters:
 None

Returns:
 A pseudo-random integer.

Function:
 The rand function returns a sequence of pseudo-random integers in the range of 0 to RAND_MAX.

Availability:
 All devices

Requires
 #include <STDLIB.H>

Examples:
 int I;

I=rand();

 
 
Example Files:
 None

 
 
Also See:
 srand()

-----------------------------------------------------------------------
 
SRAND()
 
Syntax:
 srand(n)

Parameters:
 n is the seed for a new sequence of pseudo-random numbers to be returned by subsequent calls to rand.

Returns:
 No value.

Function:
 The srand function uses the argument as a seed for a new sequence of pseudo-random numbers to be returned by subsequent calls to rand. If srand is then called with same seed value, the sequence of random numbers shall be repeated. If rand is called before any call to srand have been made, the same sequence shall be generated as when srand is first called with a seed value of 1.
 
Availability:
 All devices.

Requires
 #include <STDLIB.H>

Examples:
 srand(10);

I=rand();
 
Example Files:
 None
 
Also See:
 rand()

 
Un saludo

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Microcursillo en C
« Respuesta #133 en: 29 de Noviembre de 2004, 04:05:00 »
Sí que convendría que las simulaciones en PROTEUS funcionasen 100% y si esto no es posible indicar que físicamente funciona pero que en PROTEUS no.

El ejemplo de la RAM para que os simule en PROTEUS se deben de hacer las siguientes correcciones (tonterías, pero si no las corriges no va):

- Comentar la línea de los FUSES (con los fuses no funciona)

- Comentar la línea del #define use_portb_lcd TRUE ya que está repetida en el lcd.c

- Corregir las conexiones a la LCD en el circuito.

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Microcursillo en C
« Respuesta #134 en: 29 de Noviembre de 2004, 04:59:00 »
Son detalles q se me han escapado lo del orden de los pines del lcd,depende de como lo tengas configurado.A mi me simula perfectamente.Si añades la línea "define use_port_b_lcd TRUE" en el código no es necesario descomentarla del fichero "lcd.c" (ya depende de como lo quiera cada uno).Nocturno,en cuanto a los retardos,la mayoria de ellos no son necesarios.Unicamente los he usado para que se vea con claridad en la gráfica de  simulación las transiciones y el orden cronológico de las señales.Como mejora,se pueden implementar las señales CS colocando un decoder entre el pic y los módulos.Así,por ejemplo,con tres pines del pic se pueden controlar hasta 8 pastillas de memoria.El tema de donde almacenar los códigos...planteé esta cuestión de almacenarlos en un espacio web porque es mas fácil y directo acceder a ellos con un simple enlace.Se puede colocar una lista con los contenidos e ir actualizándola.De momento se ve pobre pq falta relleno!!
Con idea de cambiar el orden de los pines del lcd del archivo proteus ¿cúal era el orden por defecto?