Hola a todos.
Soy estudiante de ingenería industrial y desde siempre me ha interesado mucho todo lo relacionado con los chips. Como en mi carrera de momento no hemos hecho nada y yo creo que no se puede ser ingeniero sin saber programar un chip para luego conectarlo a un circuito electrico he decidido comenzar siendo autodidacta. Espero aprender muchísimo y hacer muchos inventos caseros.
Hace como una semana que tengo el PIC y aun nose como hacer un boton de encendido o de apagado. He diseñado mi propio código y no me funciona.
Mis conocimientos de programación és casi nulo y los de los PIC's completamente nulo, pero tengo la intención de acabar siendo un "guru".
Ya me he presentado y ahora el problema real.
Tengo el Pickit1 de Microchip, contiene un PIC12f675. Utilizo un compilador de "C" para crear el archivo hex.
El programa en sí: Quiero hacer un programa tal que apreto el botón 1a vez y se enciende la luz, y que aprete el botón otra vez y que se apague la luz.
En este caso, el botón está definido por el GPIO3.
Archivo ".H" este se llama 1er_LED.h
ARCHIVO ".C"
Entonces el problema es que me compila bien pero no funciona.¿Alguién me sabría explicar porquè?
PD: Alguién me explica porqué me sale tan feo en el foro el programa que he escrito.
Soy estudiante de ingenería industrial y desde siempre me ha interesado mucho todo lo relacionado con los chips. Como en mi carrera de momento no hemos hecho nada y yo creo que no se puede ser ingeniero sin saber programar un chip para luego conectarlo a un circuito electrico he decidido comenzar siendo autodidacta. Espero aprender muchísimo y hacer muchos inventos caseros.
Hace como una semana que tengo el PIC y aun nose como hacer un boton de encendido o de apagado. He diseñado mi propio código y no me funciona.
Mis conocimientos de programación és casi nulo y los de los PIC's completamente nulo, pero tengo la intención de acabar siendo un "guru".
Ya me he presentado y ahora el problema real.
Tengo el Pickit1 de Microchip, contiene un PIC12f675. Utilizo un compilador de "C" para crear el archivo hex.
El programa en sí: Quiero hacer un programa tal que apreto el botón 1a vez y se enciende la luz, y que aprete el botón otra vez y que se apague la luz.
En este caso, el botón está definido por el GPIO3.
Archivo ".H" este se llama 1er_LED.h
Código:
#ifndef _1erLED
#define _1erLED
#include <pic.h>
__CONFIG(UNPROTECT & BOREN & MCLRDIS & PWRTEN & WDTDIS & INTIO);
#define button GPIO3
#define TRIS_D0_D1 0b00001111 //defino las entradas y salidas
#define D0_ON 0b00010000
#define D0_OFF 0b00000000
#define LEDON GPIO4==1
int i,j,p;
#endif
ARCHIVO ".C"
Código:
#include "1erLED.h"
void main(void) {
ANSEL = 0b00000000;
TRISIO = TRIS_D0_D1;
OPTION = 0b11010000;
GPIO = D0_ON;
CMCON = 0b00000000;
i = 1;
j = 0;
p=0;
while(1){
if (button == 1){ //Si el button está presionado
while(button == 1){ //Mientras el boton está presionado
i=i*1/i; //que haga un bucle inútil hasta que el
} //botón deje de estar presionado
j=j+1; //Cuando el botón deje de estar presionado,
} //hay un sumatorio de "j"
p = j%2; //p es el producto de dividir j entre 2
//para así obtener un residuo de 0 o 1
if (button == 0){ //Si el botón está sin presionar
while ( button == 0){ //evidente a estas alturas del programa
if(p=0){ //Si el residuo es 0
GPIO = D0_ON; //Se enciende el led
}
else{
GPIO = D0_OFF; //Se apaga el led
}
}
}
}
Entonces el problema es que me compila bien pero no funciona.¿Alguién me sabría explicar porquè?
PD: Alguién me explica porqué me sale tan feo en el foro el programa que he escrito.