Hola, intento hacer un dimmer de 220V AC de 8 canales para juego de luces con música controlado por PC.
Ya lo tengo casi todo hecho, el pic lo he programado con
Pic Basic y recibe datos del PC a través del puerto serie simplemente por la patilla
RB0/INT y el paso por 0 por la patilla
RA0 (0V cuando cruza).
El problema que tengo es que cuando recibe datos, en ese instante la CPU deja de atender a los disparos de los
triacy todas la luces se apagan en ese instante.
¿Es posible evitar eso con este PIC (
16F84A)?
Tengo pedido el modelo
PIC16F876A ¿Me valdría o cual me recomiendan?
Gracias y saludos a todos
Aqui el código que he hecho para el PIC, por ahora solo estoy probando con 2 canales:
DEFINE OSC 4
AllDigital
Include "modedefs.bas" ' Include serial modes
x Var byte
Sincro var Byte
a var Byte
ON INTERRUPT GOTO myint ' el handler de interrupciones es myint
INTCON = %10010000 ' habilita la interrupción RB0
option_reg.6=0
main:
IF PORTA.0 = 0 then Sincro = 255
DISABLE INTERRUPT
IF Sincro = x then PULSOUT PORTB.3,2
IF Sincro = a then PULSOUT PORTB.4,2
'pauseUS 24
ASM
NOP
NOP
NOP
NOP
NOP
ENDASM
Sincro=Sincro-1
ENABLE INTERRUPT
Goto main ' Forever
DISABLE ' deshabilita las interrupciones en el
Myint:
Serin PORTB.0,N2400,[0],x,a
Espera:
IF PORTA.0 = 1 then goto Espera
INTCON = %10010000
option_reg.6=0
RESUME ' vuelve al programa principal
ENABLE ' habilita las interrupciones después del
END