Buenas gente, estoy empezando en el mundillo de la microelectronica aprendiendo poco a poco sin saturarme pero me gusta esto.
Os comento, estoy intentando hacer el archivo .HEX con el mikroC pero al darle al F11 se pone y se quita la pantalla, lo que he pensado es que el codigo no esté bien y como también estoy empezando con C quería si me pudieseis ayudar, aquí os adjunto el codigo:
seguramente haya algo mal pero como no estoy muy puesto en C (algo he leido) pues espero si me podeis ayudar.
un saludo y muchisimas gracias.
PD: plis si me podeis explicar el porque lo he hecho mal cierta linea o lo que sea mejor, así aprendo.
Os comento, estoy intentando hacer el archivo .HEX con el mikroC pero al darle al F11 se pone y se quita la pantalla, lo que he pensado es que el codigo no esté bien y como también estoy empezando con C quería si me pudieseis ayudar, aquí os adjunto el codigo:
Código:
#INCLUDE <16F84A.h>
#FUSES XT,NOWDT,NOPROTECT,PUT
#use delay (clock=8000000)
void main(void)
{
set_tris_b(0x00); //Todo PORTB como salida.
disable_interrupts(GLOBAL); //todas las interrupciones desactivadas
do{
if(output(PIN_MLCR)){ //Si elpulsador esta en alto...
output_high(PIN_B0);
output_high(PIN_B1);
output_high(PIN_B2);
output_high(PIN_B3);
output_high(PIN_B4);
output_high(PIN_B5);
output_high(PIN_B6);
output_high(PIN_B7); } //enciendo el LED.
else { //Caso contrario...
output_low(PIN_B0);
output_low(PIN_B1);
output_low(PIN_B2);
output_low(PIN_B3);
output_low(PIN_B4);
output_low(PIN_B5);
output_low(PIN_B6);
output_low(PIN_B7); } //lo apago.
}while(TRUE); //Repito el bucle
set_tris_b(0x00); //Todo PORTB como salida.
disable_interrupts(GLOBAL); //todas las interrupciones desactivadas
do{
if(input (PIN_A1)){ //Si elpulsador está apretado
portb = 0x01; //Enciendo solo el LED 0
delay_ms(500); //Espero medio segundo
portb = 0x02; //Enciendo solo el LED 1
delay_ms(500); //Espero medio segundo
portb = 0x04; //Enciendo solo el LED 2
delay_ms(500); //Espero medio segundo
portb = 0x08; //Enciendo solo el LED 3
delay_ms(500); //Espero medio segundo
portb = 0x10; //Enciendo solo el LED 4
delay_ms(500); //Espero medio segundo
portb = 0x20; //Enciendo solo el LED 5
delay_ms(500); //Espero medio segundo
portb = 0x40; //Enciendo solo el LED 6
delay_ms(500); //Espero medio segundo
portb = 0x80; //Enciendo solo el LED 7
delay_ms(500); } //Espero medio segundo
else { //Caso contrario...
output_low(PIN_B0);
output_low(PIN_B1);
output_low(PIN_B2);
output_low(PIN_B3);
output_low(PIN_B4);
output_low(PIN_B5);
output_low(PIN_B6);
output_low(PIN_B7); } //lo apago.
}while(TRUE); //Repito el bucle
}
seguramente haya algo mal pero como no estoy muy puesto en C (algo he leido) pues espero si me podeis ayudar.
un saludo y muchisimas gracias.
PD: plis si me podeis explicar el porque lo he hecho mal cierta linea o lo que sea mejor, así aprendo.