TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: maka05 en 19 de Enero de 2013, 16:51:30
-
Hola, tengo hecho un panel con tiras de leds RGB, y queria manejar los colores con un driver y eleji el TM1809, he mirado su datasheet:
http://www.deskontrol.net/descargas/datasheets/TM1809.pdf
Segun los timing que aparecen he creado un codigo, pero no me funciona como deberia. La cosa es que haciendo un While(1) con el codigo para mandar un 1 se me enciende en blanco, pero no consigo que haga nada de otra forma. Estoy usando el compilador CCS y el pic 16f876A
Os dejo el codigo haber si me podeis hechar una manita ya que estoy bastante atascado.
Muchas gracias.
#include <16F876A.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
void uno(void);
void cero(void);
void reset(void);
void main()
{
int i=0;
set_tris_b(0x00); // todo puerto A como salida
reset();
while(1)
{
for(i=1;i<=72;i++)
{
uno();
}
reset();
}
}
void uno(void)
{
output_high(PIN_B0);
delay_us(1.2);
output_low(PIN_B0);
delay_us(0.6);
}
void cero(void)
{
output_high(PIN_B0);
delay_us(0.6);
output_low(PIN_B0);
delay_us(1.2);
}
void reset(void)
{
output_low(PIN_B0);
delay_us(24);
}
-
No tengo experiencia con este ic, pero viendo el datasheet, es de esperar que si le envias siempre "uno" se prenda en blanco.
No entiendo tu pregunta, probaste en enviarle "ceros"? hace lo mismo? tambien prende blanco?
Quizas puedes probar de enviar algún código de algun color.
EDITO: con el cristal de 4mhz podes alcansar el timing que necesita el TM1809?