Fiz um projeto que apresenta 7 led's. Eles acendem com 5 sequencias definidas. e o que quero incluir é isso, fazer com que ele não acenda do nada(on/off)... quero que numa das sequencias, ele vá acendendo aos pouco até chegar ao brilho máximo(5V na saida do pino)... e depois vá apagando.
O Felipe_Eletronic indicou usar modulo CCP do PIC, para gerar sinais de PWM. Mas não tenho ideia de como aplicar isso no PSI. Alguma ajuda?
Segue abaixo cópia do código usado.
=================================
Define CONF_WORD = 0x3ff1
TRISA = 0xff 'todos os pinos como entrada
TRISB = 00000001b
INTCON.INTE = 1 'enable RB0/INT interrupts
INTCON.GIE = 1 'enable all un-masked interrupts
Dim digito As Byte 'os números que vamos mostrar, de 0 a 9
Dim chave As Byte
Dim ct As Byte
Dim saida As Byte 'padrão de segmentos dos números 0 a 9
chave = 0
sempre:
Select Case chave
Case 0
PORTB = 0xfe
Case 1
ct = chave
PORTB = 0x00
For digito = 0 To 6
saida = LookUp(0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80), digito
If ct <> chave Then digito = 7
PORTB = saida
'WaitMs 250
Next digito
Case 2
ct = chave
PORTB = 0x00
For digito = 0 To 6
saida = LookUp(0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02), digito
PORTB = saida
If ct <> chave Then digito = 7
'WaitMs 250
Next digito
Case 3
ct = chave
PORTB = 0x00
For digito = 0 To 6
saida = LookUp(0xfc, 0xfa, 0xf6, 0xee, 0xde, 0xbe, 0x7e), digito
PORTB = saida
If ct <> chave Then digito = 7
'WaitMs 250
Next digito
Case 4
ct = chave
PORTB = 0x00
For digito = 0 To 6
saida = LookUp(0x7e, 0xbe, 0xde, 0xee, 0xf6, 0xfa, 0xfc), digito
PORTB = saida
If ct <> chave Then digito = 7
'WaitMs 250
Next digito
EndSelect
Goto sempre
End
On Interrupt 'interrupt routine
chave = chave + 1 'decrement the value on PORTA
If chave > 4 Then chave = 0
'WaitMs 400
INTCON.INTF = 0 'enable new RB0/INT interrupts
Resume