| 
	
	|  |  |  
	
		| View previous topic :: View next topic |  
		| Author | Message |  
		| jackmicro 
 
 
 Joined: 07 May 2013
 Posts: 23
 
 
 
			    
 
 | 
			
				| TM1809 |  
				|  Posted: Fri Nov 15, 2013 10:15 pm |   |  
				| 
 |  
				| Hello all, 
 Do any of you golden hearted coders know of any library to handle LED strips, namely the TM1809 chip?
 
 Any help will be truly appreciated.
 
 Jack
 |  |  
		|  |  
		| PCM programmer 
 
 
 Joined: 06 Sep 2003
 Posts: 21708
 
 
 
			    
 
 |  |  
		|  |  
		| temtronic 
 
 
 Joined: 01 Jul 2010
 Posts: 9589
 Location: Greensville,Ontario
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 16, 2013 5:32 pm |   |  
				| 
 |  
				| here's a test I did 2 years ago....yikes, time flies !! it might help...
 jay
 
 
  	  | Code: |  	  | //46k22_ws2801_2.c
 //46k22 ws2801 8 LED test code
 // working blu-grn-red-yel-vio-tel-bnk-wht
 
 
 #include <18f46k22.h>
 #include "46k22_fuses.h"
 #include "46k22_pins.h"
 
 #use delay(clock=16000000)
 #use rs232(baud=9600,xmit=SIO_TX1,rcv=SIO_RX1,errors,stream=SIOport)
 #use rs232(baud=9600,xmit=SIO_TX2,rcv=SIO_RX2,errors,stream=USBport)
 
 #include "46k22_LCD.c"
 #include "jay_DS1307.c"
 
 
 #USE SPI (MASTER, SPI1, MODE=0, BITS=8, STREAM=SPI_1, MSB_FIRST)
 
 #define LED_STRIP_LEN 8 // number of LEDs on the strip
 #define RAND_MAX 255
 unsigned int32 led_strip_colors[LED_STRIP_LEN];
 
 void send_frame() {
 unsigned int16 i;
 unsigned int8 red,green,blue;
 
 for(i=0;i<LED_STRIP_LEN;i++) {
 blue = led_strip_colors[i] & 0xFF;
 green = (led_strip_colors[i] >> 8) & 0xFF;
 red = (led_strip_colors[i] >> 16) & 0xFF;
 spi_write(red);
 spi_write(green);
 spi_write(blue);
 }
 delay_us(500);    // delay 500us to latch the IC
 }
 
 
 void main()
 {
 unsigned int16 i;
 unsigned int16 x;
 
 lcd_init();
 delay_ms(500);
 printf(lcd_putc,"WS2801 test 1");
 delay_ms(500);
 
 
 while(true){
 
 
 
 for(i = 0 ; i < LED_STRIP_LEN ; i++) {led_strip_colors[i] = 0;}
 
 led_strip_colors[0] = 0xFF0000;  // red
 led_strip_colors[1] = 0x00FF00;  // green
 led_strip_colors[2] = 0x0000FF;  // blue
 led_strip_colors[3] = 0x00FFFF;  // green + blue
 led_strip_colors[4] = 0xFF00FF;  // red + blue (purple)
 led_strip_colors[5] = 0xFFFF00;  // red + green (org)
 led_strip_colors[6] = 0x000000;  // off + off + off
 led_strip_colors[7] = 0xFFFFFF;  // red + green + blue (white)
 
 send_frame();
 
 delay_ms(500);
 
 lcd_gotoxy(2,2);
 printf(lcd_putc,"%lu pass",x);
 x=x+1;
 
 
 }// forever while loop
 }// end of main
 
 
 | 
 |  |  
		|  |  
		| jackmicro 
 
 
 Joined: 07 May 2013
 Posts: 23
 
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Nov 16, 2013 5:51 pm |   |  
				| 
 |  
				| many thanks. appreciated! |  |  
		|  |  
		|  |  
  
	| 
 
 | You cannot post new topics in this forum You cannot reply to topics in this forum
 You cannot edit your posts in this forum
 You cannot delete your posts in this forum
 You cannot vote in polls in this forum
 
 |  
 Powered by phpBB © 2001, 2005 phpBB Group
 
 |