Thanks for the response.
I tried loading the 9 characters after the $7E, and then running it through the case statement and I get the same problems.
I tried sending back out serially what I am was loading into inp, and I realized that I think that actually it is receiving correctly, but in fact that it has something to do with the dimming. I don't know if anybody has the time to look at all of this, but I'll attach my code below and see if anybody catches anything that I'm not.
DEFINE HSER_RCSTA 90h ' Enable serial receive
DEFINE HSER_TXSTA 24h ' Enable serial transmit
SPBRG = 10
DEFINE HSER_CLROERR 1 'Clear Overflow Automatically
PIE1.5 = 1 ' Enable interrupt on USART
ADCON1 = %01111111
INTCON = %11000000
INTCON3 = %10010000
ON INTERRUPT GoTo Interupt ' Declare interrupt handler routine
INP VAR BYTE(9)
TMP VAR BYTE
LowTimer VAR BYTE
HighTimer VAR BYTE
HSEROUT ["Now Operating at 115.2KBps",10]
TRISA.0 = 0 'Channel 1 'Red
TRISA.1 = 0 'Channel 2
TRISA.2 = 0 'Channel 3
TRISA.3 = 0 'Channel 4
TRISB.3 = 0 'Channel 5 'Green
TRISB.2 = 0 'Channel 6
TRISB.7 = 0 'Channel 7
TRISB.6 = 0 'Channel 8
TRISB.0 = 0 'New Channel 8
TRISB.2 = 1 '120VAC Line In
PORTA.0 = 0
PORTA.1 = 0
Loop:
'String Reading and Brightness Adjustment
LowTimer = TMR0L
HighTimer = TMR0H
IF HighTimer = 0 THEN
IF INP(0) > LowTimer THEN
PORTA.0 = 1 'Channel 1
GOSUB TRIAC_PAUSE
PORTA.0 = 0
ENDIF
IF INP(1) > LowTimer THEN
PORTA.1 = 1 'Channel 2
GOSUB TRIAC_PAUSE
PORTA.1 = 0
ENDIF
IF INP(2) > LowTimer THEN
PORTA.2 = 1 'Channel 3
GOSUB TRIAC_PAUSE
PORTA.2 = 0
ENDIF
IF INP(3) > LowTimer THEN
PORTA.3 = 1 'Channel 4
GOSUB TRIAC_PAUSE
PORTA.3 = 0
ENDIF
LowTimer = TMR0L
HighTimer = TMR0H
IF INP(4) > LowTimer THEN
PORTB.3 = 1 'Channel 5
GOSUB TRIAC_PAUSE
PORTB.3 = 0
ENDIF
IF INP(5) > LowTimer THEN
PORTB.6 = 1 'Channel 6
GOSUB TRIAC_PAUSE
PORTB.6 = 0
ENDIF
IF INP(6) > LowTimer THEN
PORTB.7 = 1 'Channel 7
GOSUB TRIAC_PAUSE
PORTB.7 = 0
ENDIF
IF INP(7) > LowTimer THEN
PORTB.0 = 1 'Channel 8
GOSUB TRIAC_PAUSE
PORTB.0 = 0
ENDIF
ENDIF
Goto LOOp
DISABLE
Interupt:
IF INTCON3.1 = 1 THEN
TMR0H = 0
TMR0L = 0
T0CON = %10000110
INTCON3 = %10010000
ELSE
HSERIN [wait($7E),wait($80),STR INP\8]
INTCON = %11000000
ENDIF
Proceed:
Resume
Enable
triac_pause:
ASM
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
ENDASM
RETURN
END
Bookmarks