TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: ECHA en 14 de Abril de 2011, 11:30:44
-
Buenos días, estoy iniciando en esto de la programación en C. Mi proyecto es un control remoto bajo el protocolo nec o el rc5x.
por ahora estoy aprendiendo a encender y apagar unos leds pero me ha generado algunos problemas... aquí esta el código:
#include <16F88.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(B)
void main()
{
setup_adc_ports (NO_ANALOGS);
set_tris_b(0x00);
while (true)
{
output_b(0xff);
delay_ms(500);
output_b(0x00);
delay_ms(500);
}
}
Se desea que el mismo encienda y apague todos los leds en el puerto B, pero no me enciende RB7 y RB6 me da una salida de 1v siempre...lo otro es que el programa tarda para iniciar, me quedo esperando un tiempo para que el inicie el encendido y apagado del puerto B.
-
Hola Echa:
Por las dudas prueba con otro microcontrolador. Para descartar problemas de hardware.
Saludos.
Jukinch
-
Hola Echa:
Por las dudas prueba con otro microcontrolador. Para descartar problemas de hardware.
Saludos.
Jukinch
Ok muy bien lo intentare, gracias...
-
Nos ayudaría también el que subas un esquema de como está todo conectado, para poder ver si hay algún error en el conexionado.
-
Nos ayudaría también el que subas un esquema de como está todo conectado, para poder ver si hay algún error en el conexionado.
bueno no he hecho el esquema, pero todo esta bien conectado, los puertos rb0...rb5 enciende y los rb6 y rb7 nop...bueno he realizado algunas pruebas y adivinen pues funciono, explico:
estaba compilando el programa con el mplab y me daba ese problema...ahora compile el mismo programa con el PIC C compiler PCWHD y funciono con el .hex generado por este programa, ahora no me explico por que? que cosa más extraña
-
Nos ayudaría también el que subas un esquema de como está todo conectado, para poder ver si hay algún error en el conexionado.
bueno no he hecho el esquema, pero todo esta bien conectado, los puertos rb0...rb5 enciende y los rb6 y rb7 nop...bueno he realizado algunas pruebas y adivinen pues funciono, explico:
estaba compilando el programa con el mplab y me daba ese problema...ahora compile el mismo programa con el PIC C compiler PCWHD y funciono con el .hex generado por este programa, ahora no me explico por que? que cosa más extraña
Este es el .hex con mplab
0000 3000 008A 2819 3022 0084 1383 0800
1903 2818 3001 00F8 01F7 0BF7 280D 0BF8
280C 304A 00F7 0BF7 2813 2816 0B80 280A
3400 0184 1383 301F 0583 1683 121F 129F
081B 3980 009B 3007 009C 121F 129F 081B
3980 009B 3000 0086 30FF 1283 0086 3002
00A1 30FA 00A2 2004 0BA1 2831 0186 3002
00A1 30FA 00A2 2004 0BA1 2839 1683 282C
2840 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
y este es el .hex con el PCWHD
3000 008A 2819 0000 3022 0084 1383 0800
1903 2818 3001 00F8 01F7 0BF7 280D 0BF8
280C 304A 00F7 0BF7 2813 2816 0B80 280A
3400 0184 1383 301F 0583 1683 121F 129F
081B 3980 009B 3007 009C 121F 129F 081B
3980 009B 3000 0086 30FF 1283 0086 3002
00A1 30FA 00A2 2004 0BA1 2831 0186 3002
00A1 30FA 00A2 2004 0BA1 2839 1683 282C
0063 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
-
bueno hice otro programita mediante pulsadores activa leds aqui se los dejo:
#include <16f88.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(A)
void main()
{
setup_adc_ports (NO_ANALOGS);
set_tris_a(0x1C);
do
{
output_a(0x00);
if (input(pin_a2))
{
output_high(pin_a1);
}
if (input(pin_a3))
{
output_high(pin_a0);
}
if (input(pin_a4))
output_a(0xff);
delay_ms(500);
output_a(0x00);
delay_ms(500);
}
while(true);
}
Todo con el mismo puerto. Gracias por la ayuda de todos espero pronto colaborar con un control remoto bajo el protocolo NEC o RC-5X. El foro me ha ayudado bastante gracias a dios que existe...Saludos y seguiremos en contacto.