TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: miguel valdivia en 17 de Mayo de 2012, 10:23:11
-
Este programa esta hecho en c para pic me lo hizo un amigo ,pero yo solo manejo assembler.
incluyo simulación . Este programa aciva 5 puertos de un 16f84a y genera un tono distinto en cada activación positiva.
El problema es los pulsadores son normal abiertos y yo necesito normal cerrado.
intente bajarme un compilador de c y me dejo c........
menos mal que lo tenia respaldado.
si fuera en a assembler ya lo habría modificado por que conosco las instrucioones para chequear un puerto(btfss y btfsc)
hay alguien de buen corazon que me ayude
-
Sabes la lógica del programa? Parece no ser difícil, como para que lo encares en ASM, lenguaje que conoces ;-)
-
Si tienes razón, pero por eso me ayudó un amigo por que la generacón de tonos no la se aplicar en assembler.
Y como el ya lo hizo funciono espectacular hasta que se fue del pais y me cambiaron la necesidad de poner interruptor normal cerrado.
gracias
-
Si tienes razón, pero por eso me ayudó un amigo por que la generacón de tonos no la se aplicar en assembler.
Y como el ya lo hizo funciono espectacular hasta que se fue del pais y me cambiaron la necesidad de poner interruptor normal cerrado.
gracias
Bueno si lo que pretendes es no meterte en la programacion del PIC, te sugiero que incorpores en tu hardware un negador 7404, y asi poder usar un interruptor normalmente cerrado...
saludos...
-
Coloca el sector de código que testea los pulsadores
-
no se cual es esa parte , pero aca esta el codigo completo
no entiendo mucho c
list p=16f88a
#include <16f84A.h>
#fuses XT,NOWDT,PROTECT
#use delay(clock=4000000)
#include<tones.c>
pulso(byte numero, long frec){
output_low(PIN_B7);
while(numero >0){
generate_tone(frec,200);
//output_high(PIN_B7);
//delay_ms(400);
output_low(PIN_B7);
delay_ms(100);
numero--;
}
delay_ms(600);
}
main() {
while(TRUE)
{
if(input(PIN_B0))
pulso(1,1000);
if(input(PIN_B1))
pulso(2,800);
if(input(PIN_B2))
pulso(3,600);
if(input(PIN_B3))
pulso(4,400);
if(input(PIN_B4))
pulso(5,200);
}
}
-
Es mucho más sencillo que asm :mrgreen: Donde dice if(input(PIN_B0)) y en todos lo demás, coloca if(!input(PIN_B0)). Con eso invertís la lógica.
Saludos!
-
voy descargar un compilador y les cuento
-
Me bajé dos compiladores y me dieron puros dolores de cabeza.
Alguien podría compilarlo por mi plizz
-
Bajate el compilador DEMO (gratuito) de CCS, que seguro te dejara compilar ese programa. :mrgreen:
Si te da a elegir un PIC especifico, procura pedirle el que esta en el programa PIC16F88a.
Aqui el link para que lo bajes:
http://www.ccsinfo.com/ccsfreedemo.php (http://www.ccsinfo.com/ccsfreedemo.php)
-
lo logré¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
lo que hice para no quebrarme la cabeza con C fué desamblar el hexa y generar un archivo en assembler.
Luego leí el codigo y encontré el sector donde se testea los pines
los inverti y listo.
Muchas gracias igual por su tiempo
-
este es el codigo generado y correguido
-
Pero ahora me gustaía ativar mas pines del micro .
se puede ??????????
-
Si que se puede, pero en que lenguaje vas a trabajar??
Pregunto porque eso puede hacer que necesites poner el tema en otro subforo...
-
Yo preferiría en assembler, pero pero la generación de tonos que esta hecho este programa me complica en assembler.
-
Como lo pongo en otro subforo si no manejo C y el codigo en assembler que que tengo esta desifrado de un hexa?????