Autor Tema: PIC 16F876 + CCS Problema con PWM  (Leído 5529 veces)

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

Desconectado Archangels

  • PIC10
  • *
  • Mensajes: 27
Re: PIC 16F876 + CCS Problema con PWM
« Respuesta #15 en: 06 de Marzo de 2013, 10:01:41 »
Ya he cambiado lo que dijimos antes, ahora por lo menos los led's no se vuelven locos cuando acerco la mano, voy avanzando jeje.

El problema ahora es que el led que hay en B2 esta siempre encendido. ( el que supuestamente se enciende cuando tiene que bajar el % del pwm )

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: PIC 16F876 + CCS Problema con PWM
« Respuesta #16 en: 06 de Marzo de 2013, 11:08:52 »

Intenta poner en cero todos los bits del puerto b al inicio del programa, es decir.

Código: [Seleccionar]
#byte puerto_b = 06
void main()
  {
    puerto_b  = 0;
  }
Un saludo desde Pereira - Colombia

Desconectado Archangels

  • PIC10
  • *
  • Mensajes: 27
Re: PIC 16F876 + CCS Problema con PWM
« Respuesta #17 en: 06 de Marzo de 2013, 11:18:02 »
Anoche cambie el codigo un poco sigue siendo el de arriba pero cambiando el int8 por int16 y añadiendo antes del while (1) Apaga (LED1); y Apaga (LED2);

Eso seria lo mismo que tu me has puesto no ?

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: PIC 16F876 + CCS Problema con PWM
« Respuesta #18 en: 06 de Marzo de 2013, 11:36:38 »

Citar
Anoche cambie el codigo un poco sigue siendo el de arriba pero cambiando el int8 por int16 y añadiendo antes del while (1) Apaga (LED1); y Apaga (LED2);

Eso seria lo mismo que tu me has puesto no ?

No Archangels si no que es una costumbre de programación de microcontroladores apagar todos los terminales de salida antes de empezar a ejecutar el cuerpo del programa. A eso es a lo que me refiero en el mensaje anterior, es recomendable apagar (poner en 0 lógico) todos los terminales de salida antes de ejecutar el while(true).
Un saludo desde Pereira - Colombia

Desconectado Archangels

  • PIC10
  • *
  • Mensajes: 27
Re: PIC 16F876 + CCS Problema con PWM
« Respuesta #19 en: 06 de Marzo de 2013, 11:55:54 »

Citar
Anoche cambie el codigo un poco sigue siendo el de arriba pero cambiando el int8 por int16 y añadiendo antes del while (1) Apaga (LED1); y Apaga (LED2);

Eso seria lo mismo que tu me has puesto no ?

No Archangels si no que es una costumbre de programación de microcontroladores apagar todos los terminales de salida antes de empezar a ejecutar el cuerpo del programa. A eso es a lo que me refiero en el mensaje anterior, es recomendable apagar (poner en 0 lógico) todos los terminales de salida antes de ejecutar el while(true).

Ah, vale, nose x q pero pense que el tris hacia eso, luego lo lei mejor y vi q slo te lo ponia como ebtrado o salida.
Ahora mismo no estoy en casa asi que no podre probarlo, hay q trabajar jeje, en cuanto llegue, lo pruebo y te cuento, lo de puerto_b = 06 lo sacaste del datasheet o es para todos igual ?

Si no me equivoco es donde pone PORTB 06h
« Última modificación: 06 de Marzo de 2013, 12:01:27 por Archangels »

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: PIC 16F876 + CCS Problema con PWM
« Respuesta #20 en: 06 de Marzo de 2013, 12:22:49 »
Citar
Ah, vale, nose x q pero pense que el tris hacia eso, luego lo lei mejor y vi q slo te lo ponia como ebtrado o salida.
Ahora mismo no estoy en casa asi que no podre probarlo, hay q trabajar jeje, en cuanto llegue, lo pruebo y te cuento, lo de puerto_b = 06 lo sacaste del datasheet o es para todos igual ?

Si no me equivoco es donde pone PORTB 06h

La serie 16f8xx tiene el puerto b el la dirección 06 y en efecto la información esta disponible en las respectiva hoja de datos.
Un saludo desde Pereira - Colombia

Desconectado Archangels

  • PIC10
  • *
  • Mensajes: 27
Re: PIC 16F876 + CCS Problema con PWM
« Respuesta #21 en: 06 de Marzo de 2013, 12:26:47 »
Citar
Ah, vale, nose x q pero pense que el tris hacia eso, luego lo lei mejor y vi q slo te lo ponia como ebtrado o salida.
Ahora mismo no estoy en casa asi que no podre probarlo, hay q trabajar jeje, en cuanto llegue, lo pruebo y te cuento, lo de puerto_b = 06 lo sacaste del datasheet o es para todos igual ?

Si no me equivoco es donde pone PORTB 06h

La serie 16f8xx tiene el puerto b el la dirección 06 y en efecto la información esta disponible en las respectiva hoja de datos.

Con respecto a la hoja de datos me queda un pequeña duda, por ejemplo el puertob viene en el bank 0 y en el bank 1 los cambio q haga en el 0 tambien se hacen en el 1 ? Siempre vuelvo loco con las hojas de datos

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: PIC 16F876 + CCS Problema con PWM
« Respuesta #22 en: 06 de Marzo de 2013, 13:32:16 »
Citar
Con respecto a la hoja de datos me queda un pequeña duda, por ejemplo el puertob viene en el bank 0 y en el bank 1 los cambio q haga en el 0 tambien se hacen en el 1 ? Siempre vuelvo loco con las hojas de datos

Claro que si ya que es el mismo registro, creo que lo ingenieros de microchip diseñan los microcontroladores con registros repetidos en los bancos para darle mayor flexibilidad y eficiencia a la programación, cuando uno programa en lenguaje de máquina ve útil esta propiedad.
Un saludo desde Pereira - Colombia

Desconectado Archangels

  • PIC10
  • *
  • Mensajes: 27
Re: PIC 16F876 + CCS Problema con PWM
« Respuesta #23 en: 06 de Marzo de 2013, 21:39:43 »
Ya he probado poniendo el puerto B a 0, sigue pasando lo mismo, el led sigue encendido todo el rato.

Desconectado Archangels

  • PIC10
  • *
  • Mensajes: 27
Re: PIC 16F876 + CCS Problema con PWM
« Respuesta #24 en: 06 de Marzo de 2013, 21:54:32 »
Ya he probado poniendo el puerto B a 0, sigue pasando lo mismo, el led sigue encendido todo el rato.

Vale conseguido, era porque el puesto ese estaba nada mas empezar a 1 logico, asi que he puesto tambien el puerto A a 0 y se ha arreglado todo, por ahora, me quedan 2 o 3 pruebas por hacer y os cuento. Un saludo

Edito:

Vale ya esta todo probado ( me quedaba ver si hacia bien lo de no bajar mas de 0 o que no suba mas de 100 ) y funciona perfectamente. Ahora a hacer un circuito para hacer funcionar un motor y a probar con un motor jeje.

Te iba a preguntar ya por ultimo si si hay una lista de "buenas practicas" al programar, por ejemplo lo que tu me dijiste de poner el puerto a 0, o si eso se va aprendiendo con el tiempo jeje ( no llevo en esto ni un mes )
« Última modificación: 07 de Marzo de 2013, 11:16:44 por Archangels »


 

anything