Dave
- 16th March 2018, 11:24
Here is a small test program I wrote a while back.
'************************************************* **************************
'* Name : ap102A.pbp *
'* Author : DAVID PUROLA *
'* Notice : *
'* : *
'* Date : 12/29/2017 *
'* Version : 1.0 *
'* Notes : only tested on pic18 @64 MHZ *
'* : pic18f26k22
'************************************************* **************************
DEFINE NO_CLRWDT 1
DEFINE LOADER_USED 1
define OSC 64
OSCCON = %11110000
SCL VAR PORTC.0
SDA VAR PORTC.1
PC2 VAR PORTC.2
PC3 VAR PORTC.3
led_num con 143 'number of led's in string
SCRATCH VAR WORD
LEDS VAR WORD
COWSHOME VAR BIT
ANSELA = 0
ANSELB = 0
ANSELC = 0
trisc=%11010000
MAIN:
PC2 = 1
SHIFTOUT SDA,SCL,1,[0,0,0,0] 'START FRAME
SCRATCH = (LED_NUM - 1) / 48
LED:
SHIFTOUT SDA,SCL,1,[$F0,$FF,$00,$00] 'GLOBAL,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$F0,$10,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$E0,$20,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$D0,$30,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$C0,$40,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$B0,$50,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$A0,$60,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$90,$70,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$80,$80,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$70,$90,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$60,$A0,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$50,$B0,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$40,$C0,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$30,$D0,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$20,$E0,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$10,$F0,$00] 'GLOBAL,BLUE,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$00,$FF,$00] 'GLOBAL,GREEN
SHIFTOUT SDA,SCL,1,[$F0,$00,$F0,$10] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$E0,$20] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$D0,$30] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$C0,$40] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$B0,$50] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$A0,$60] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$90,$70] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$80,$80] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$70,$90] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$60,$A0] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$50,$B0] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$40,$C0] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$30,$D0] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$20,$E0] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$10,$F0] 'GLOBAL,GREEN,RED
SHIFTOUT SDA,SCL,1,[$F0,$00,$00,$FF] 'GLOBAL,RED
SHIFTOUT SDA,SCL,1,[$F0,$10,$00,$F0] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$20,$00,$E0] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$30,$00,$D0] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$40,$00,$C0] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$50,$00,$B0] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$60,$00,$A0] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$70,$00,$90] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$80,$00,$90] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$90,$00,$70] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$A0,$00,$60] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$B0,$00,$50] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$C0,$00,$40] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$D0,$00,$30] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$E0,$00,$20] 'GLOBAL,RED,BLUE
SHIFTOUT SDA,SCL,1,[$F0,$F0,$00,$10] 'GLOBAL,RED,BLUE
SCRATCH = SCRATCH - 1
IF SCRATCH.15 = 0 THEN LED
SCRATCH = 8
EOF:
SHIFTOUT SDA,SCL,1,[$FF] 'END FRAME
SCRATCH = SCRATCH - 1
IF SCRATCH.15 = 0 THEN EOF
PC2 = 0
PAUSE 1000
PC3 = 1
SHIFTOUT SDA,SCL,1,[0,0,0,0] 'START FRAME
SCRATCH = (LED_NUM - 1)
LEDOFF:
SHIFTOUT SDA,SCL,1,[$F0,$00,$00,$00] 'GLOBAL,OFF
SCRATCH = SCRATCH - 1
IF SCRATCH.15 = 0 THEN LEDOFF
SCRATCH = 8
EOFOFF:
SHIFTOUT SDA,SCL,1,[$FF] 'END FRAME
SCRATCH = SCRATCH - 1
IF SCRATCH.15 = 0 THEN EOFOFF
PC3 = 0
PAUSE 1000
GOTO MAIN
stop
Powered by vBulletin® Version 4.1.7 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.