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

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

Desconectado oshow

  • PIC18
  • ****
  • Mensajes: 321
RE: Microcursillo en C
« Respuesta #105 en: 09 de Septiembre de 2004, 05:37:00 »
No estoy sseguro y no te lo puedo confirmar ahora porque no lo tengo delante, pero creo que es otra limitación del compilador. No permite punteros a constantes en rom.

Yo lo que haría sería una matriz al inicio del programa:

const char matr[5][3]={ "hola1", "hola2", "hola3"};

y luego dentro de tu programa llamar al elemento que quieras.


Saludos.

Desconectado T0ni0

  • PIC16
  • ***
  • Mensajes: 196
RE: Microcursillo en C
« Respuesta #106 en: 09 de Septiembre de 2004, 05:57:00 »
De momento es lo que estoy haciendo, pero necesito tantas variables como estrigs quiero comprar  
- T0ni0 -
30RCF112

Desconectado lovando

  • PIC16
  • ***
  • Mensajes: 193
RE: Microcursillo en C
« Respuesta #107 en: 10 de Septiembre de 2004, 08:42:00 »
Una consultilla

La libreria LCD trabaja en modo 8 o 4 bits??...Se puede usar CCS para configurar un PIC en modo 3 bits para manejar un LCD copn esta libreria??

Osea, 3 lineas del PIC conectados a un registro desplazamiento 74HC164 (serial a paralelo) el cual esta conectado en modo 8 lineas al LCD???

3 lineas: data,clock y latch

Gracias

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Microcursillo en C
« Respuesta #108 en: 10 de Septiembre de 2004, 11:43:00 »
Supongo que estarás hablando sobre un programa y circuito que alguién puso (¿fuiste tú?)  hace algún tiempo donde había un PIC16C54, un registro 4094 y este conectado a la LCD.

Como el PROTEUS no simula 16C54 y yo no lo tengo, no pude comprobar si funcionaba ese circuito y me interesaba. Lograste tú comprobar si funcionaba?

Ahora a tu pregunta. La librería lcd.c de CCS trabaja en modo 4 bits de datos (D4..D7), también las hay para trabajar en modo 8 bits de datos aunque ninguna de las dos te van a servir para este circuito ya que ambas librerías se usan para controlar el PIC directamente, no haciendo de intermediario un registro de desplazamiento.

Un saludo

Desconectado pacalaconcurso

  • PIC24F
  • *****
  • Mensajes: 718
RE: Microcursillo en C
« Respuesta #109 en: 10 de Septiembre de 2004, 13:18:00 »
para copiar string puedes usar la libreria de funciones para string:

char aux[10];
strcpy(aux,"HOLA";



Desconectado YF-21

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 185
RE: Microcursillo en C
« Respuesta #110 en: 26 de Septiembre de 2004, 17:09:00 »
Disculpen ... para seguir con el curso podrian poner un ejemplo de comunicacion mediante I2C con 2 16F877 ? Aunque ya estudié la teoria necesito un empujoncito más ...

Lo unico que requiero es ... el master busca la lectura del  Primer registro libre del 877 esclavo

Lo que tiene el registro no es de mucha importancia ... solo lo lee, y despues el master escribe en la segunda direccion libre del esclavo el valor 0Fh

POR FAVOR, se los agradeceré mucho

Desconectado YF-21

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 185
RE: Microcursillo en C
« Respuesta #111 en: 26 de Septiembre de 2004, 22:48:00 »
OK, para no abusar de su confianza, solo quisiera que me respondieran una preguntota ...

Cuando el master dice la direccion, se refiere a la direccion que intenta accesar del integrado esclavo ??

Lo que pasa es que ví que se puede realizar una conexion entre varios esclavos y varios maestros, pero como saben los esclavos a cual master se deben dirigir y viceversa y que registro leer/escribir si solo manda el master una direccion?

Desconectado YF-21

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 185
RE: Microcursillo en C
« Respuesta #112 en: 27 de Septiembre de 2004, 18:06:00 »
Con respecto al Timer es sustituido por los delay ??? o alguien lo ha configurado en C??

Desconectado oshow

  • PIC18
  • ****
  • Mensajes: 321
RE: Microcursillo en C
« Respuesta #113 en: 28 de Septiembre de 2004, 16:30:00 »
Hola, bueno antes de nada, decir, que yo tampoco soy un experto en el tema, estoy experimentando un poquillo con el i2c, he puesto algunos rtc en funcionamiento, pero nada más.

Tengo un ejemplo entre dos 877 con i2c (es muy básico!!!!) que hice para "trastear" un poco, te lo envío al privado porque no puedo subirlo aquí y en el almacén tampoco puedo subirlo.

En cuanto a tu última  pregunta, si que no entiendo nada, a que te refieres con si se puede sustituir el timer por delays?, no entiendo....si lo aclaras un poco más a lo mejor te podemos echar un cable.

Un saludo.

PD: El ejemplo esta hecho con una versión de proteus reciente (6.5), mira a ver si puedes simularla sin problemas.


Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: Microcursillo en C
« Respuesta #114 en: 22 de Noviembre de 2004, 19:10:00 »
Hola,

quiero revivir este microcursillo de C. Sólo agrego un programita que YF-21 me ayudó a hacer. Sirve para mandar el abecedario en minúsculas a la PC en protocolo RS-232. Sólo hay que abrir la hyperterminal y configurarla en el COM con 2400baudios.

También hay que usar el MAX232 para pasar las patas TTL a RS232.

Codigo:

#include <16f84a.h>
#fuses XT, NOWDT, NOPROTECT
#use delay(clock=4000000)

#use rs232(baud=2400, xmit=PIN_A1, rcv=PIN_A0)

#use fast_io (a)
#use fast_io (b)

SET_TRIS_A(0b00000001);
SET_TRIS_B(0x00);

int dato,conteo;

void main(void)
{
output_b(0x00);
output_a(0x00);
while(1)
   {
   for(conteo=0x61;conteo<=0x7a;conteo++)
      {
      dato=conteo;
      putc(dato);
      delay_ms(1000);
      }
   }
}




Hay que hacer la interface del pin A1 del PIC a RD del puerto serial.

El 61 es la a en ASCII y el 72 es la z.

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
RE: Microcursillo en C
« Respuesta #115 en: 23 de Noviembre de 2004, 01:44:00 »
Una buena idea darle un poco de vidilla a este cursillo.
Probado el programa de migsantiago en proteus y funcionando a la perfección.
Saludos

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Microcursillo en C
« Respuesta #116 en: 23 de Noviembre de 2004, 11:53:00 »
Con el ánimo constructivo de seguir aprendiendo, creo que hay unas instrucciones en el código que no aportan nada, al menos yo no lo veo claro.
Se trata de los SET_TRIS y los OUTPUT.

Desconectado rferrero

  • PIC16
  • ***
  • Mensajes: 113
RE: Microcursillo en C
« Respuesta #117 en: 24 de Noviembre de 2004, 10:02:00 »

   Pues ... s¡, tienes gran parte de raz¢n. SET_TRIS_B(0xFF), pone como entradas todas las l¡neas del puerto B. Pero usando ciertos dispositivos o instrucciones, no hace falta poner ‚sto. A m¡ me ha ocurrido con unos sensores que he tenido que usar hace poco. De hecho, he dado la lata en el foro ... Sonrisa Gigante  Pero queda bien ponerlo y es un buen h bito de programaci¢n. Las maneras, el protocolo, el procedimiento, ... ya sabes.

    Output es para sacar un valor por donde quieras (m s o menos). S¡, tambi‚n se puede poner de otras formas.
 
    Esto lo que indica  es que, como el castellano o espa¤ol, tenemos una gran variedad de recursos, lo cual hace al C un lengua muy interesante para programar.
 
    Muchas risas

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
RE: Microcursillo en C
« Respuesta #118 en: 26 de Noviembre de 2004, 09:25:00 »
Ah, es que las puse para limpiar puertos jejeje, outport a y b.

Una pregunta...¿cuáles son todas las formas posibles de agregar comentarios a los programas de C? Sólo me acuerdo de /*blah*/

Gracias

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Microcursillo en C
« Respuesta #119 en: 26 de Noviembre de 2004, 09:58:00 »
La otra forma es: //Comentario


 

anything