Documente Academic
Documente Profesional
Documente Cultură
Capture
No modo de Captura, os registros CCPR1H:CCPR1L capturam o valor de 16 bits do
par de registradores TMR1 (Timer 1) quando um evento ocorre no pino RC2/CCP1
Um evento é definido como:
Cada borda de descida
Cada borda de subida
Cada 4ª borda de subida
Cada 16ª borda de descida
Compare
No modo de Comparação, os registros CCPR1H:CCPR1L são constantemente
comparados com o par de registradores TMR1 (Timer 1). Quando os valores
coincidem o pino RC2/CCP1 pode ser:
Setado
Resetado
Permanecer inalterado
PR2 = 99
Configuração do Timer 2
Exemplo de hardware
Exemplo:
1) Escrever o firmware para gerar um sinal PWM no pino RC2/CCP1 com frequência
de 20 kHz (período = 50 μs) e duty cycle inicial de 20% (50 μs . 0,2 = 10 μs):
BANK1
MOVLW D'99' ; VALOR PARA PERÍODO DE 50us (20kHz)
MOVWF PR2
BANK0
MOVLW D'20' ; 80/4 = 20%, PARA NÃO UTILIZAR 2 BITS
MOVWF CCPR1L ; DA PARTE BAIXA
Continuação:
CLRF TMR2
MOVLW B'00000100'
; ||||||||-> T2CKPS0 - PRESCALE - 00 = 1:1
; |||||||--> T2CKPS1
; ||||||---> TMR2ON
; |||||----> TOUTPS0 - POSTSCALE - 0000 = 1:1
; ||||-----> TOUTPS1
; |||------> TOUTPS2
; ||-------> TOUTPS3
; |--------> NÃO IMPLEMENT.
MOVWF T2CON
MOVLW B'00001100' ; CONTROLE DO PWM
; ||||||||-> CCP1M0 - SELEÇÃO DE MODO DO CCP1 - 11XX PARA PWM
; |||||||--> CCP1M1
; ||||||---> CCP1M2
; |||||----> CCP1M3
; ||||-----> CCP1Y - PINOS LSB DO DUTY CYCLE DO PWM
; |||------> CCP1X
; ||-------> NÃO IMPLEMENT.
; |--------> NÃO IMPLEMENT.
MOVWF CCP1CON
GOTO $
END
void main() {
TRISC = 0x00; // PORTC COMO SAÍDA
PORTC = 0x00; // VALOR INICIAL = 00
while(1) {
for (i = 1; i <= 255; i++)
{
Pwm_Change_Duty(i); // INCREMENTA O DUTY CYCLE A CADA 10ms
Delay_ms(5);
}
}
}
void main() {
TRISC = 0x00; // PORTC COMO SAÍDA
PORTC = 0x00; // VALOR INICIAL = 00
while(1) {
for (i = 1; i < 255; i++)
{
PWM1_Set_Duty(i); // INCREMENTA O DUTY CYCLE A CADA 10ms
Delay_ms(5);
}
}
}
2) A partir do exercício anteiror, incluir um trimpot para controle de outro motor com
os pinos RD4 e RD5. Utilizar a chave (CH_2) para selecionar o sentido de giro do
segundo motor.
CI L293D
Fonte:http://www.mecatronicaatual.com.br/educacao/1835-sensor-de-
proximidade-infravermelho-com-pci-12f675?start=1