Como comparar valor de tmr1h tmr1l

Como comparar valor de tmr1h tmr1l

Loading Preview

Sorry, preview is currently unavailable. You can download the paper by clicking the button above.

Como comparar valor de tmr1h tmr1l

Loading Preview

Sorry, preview is currently unavailable. You can download the paper by clicking the button above.

Como comparar valor de tmr1h tmr1l

dededede seleçãoseleçãoseleçãoseleção dededede fontefontefontefonte dededede prescalerprescalerprescalerprescaler T1CKPS1T1CKPS1T1CKPS1T1CKPS1 T1CKPS0T1CKPS0T1CKPS0T1CKPS0 PrescalerPrescalerPrescalerPrescaler 1 1 1:8 1 0 1:4 0 1 1:2 0 0 1:1 T1OSCEN: Habilitação do oscilador externo de baixa frequeência nos pinos T1OSO e T1OSI 0 - Oscilador desligado 1 - Oscilador Ligado T1SYNC: Controle do sincronismo interno. Caso TMR1CS = 0, esse bit é descartado 0 - Sincronismo ligado www.mecatronicadegaragem.blogspot.com Microgenios – Treinamentos, Kits de desenvolvimento e muito mais... Página 46 de 74 1 - Sincronismo desligado TMR1CS: Bit de seleção de clock; 0 - A base de clock para o TIMER1 é interna (Fosc/4); 1 - Clock externo no pino RC0/T1CK1; TMR1ON: Habilita TIMER1; 0 - TIMER1 desligado 1 - TIMER1 ligado Obs: Bit6 não implementado, lido como "0" Abaixo o diagrama simplificado do Timer1: FiguraFiguraFiguraFigura 4444....4444 –––– DiagramaDiagramaDiagramaDiagrama internointernointernointerno dodododo TIMER1TIMER1TIMER1TIMER1 O TIMER1 opera de maneira idêntica a do timer anterior, suas diferenças básicas é que este novo timer pode operar como temporizador para o modo Capture/Compare para o modo CCP. Foi implementado neste novo Timer a possibilidade de ligarmos um outro cristal oscilador, de forma que nos permite ligar cristais de baixa freqüência, tais como 32,768 KHz, para maiores precisão na temporização. A figura apresenta o diagrama de funcionamento do TIMER1 operando com o oscilador de baixa freqüência. Nota:Nota:Nota:Nota: Obs:Obs:Obs:Obs: Este segundo cristal deverá ser ligado entre os pinos RC0 e RC1. Em hipótese alguma poderemos dispensar o uso do cristal oscilador principal Fosc. www.mecatronicadegaragem.blogspot.com Microgenios – Treinamentos, Kits de desenvolvimento e muito mais... Página 47 de 74 FiguraFiguraFiguraFigura 4444....5555 –––– CircuitoCircuitoCircuitoCircuito internointernointernointerno dodododo modomodomodomodo RTCRTCRTCRTC A figura seguinte mostra para nós claramente uma aplicação em hardware do segundo oscilador conectado ao nosso microcontrolador. FiguraFiguraFiguraFigura 4444....6666 –––– LigaçãoLigaçãoLigaçãoLigação dodododo segundosegundosegundosegundo osciladorosciladorosciladoroscilador aoaoaoao microcontroladormicrocontroladormicrocontroladormicrocontrolador PICPICPICPIC ProgramandoProgramandoProgramandoProgramando oooo TIMER1TIMER1TIMER1TIMER1 dodododo PIC.PIC.PIC.PIC. Para exemplificar a utilização do TIMER1 do PIC vamos analizar um exemplo de programa: O Hardware: www.mecatronicadegaragem.blogspot.com Microgenios – Treinamentos, Kits de desenvolvimento e muito mais... Página 48 de 74 FiguraFiguraFiguraFigura 4444....7777 –––– EsquemaEsquemaEsquemaEsquema EletrônicaEletrônicaEletrônicaEletrônica Programa: www.mecatronicadegaragem.blogspot.com Microgenios – Treinamentos, Kits de desenvolvimento e muito mais... Página 49 de 74 O programa acima configura o TIMER1 para operar em 16bits com prescaler 1:8, clock interno. A cada estouro do TIMER1, o led conectado o portd.rd0 é invertido. Análise detalhado do programa: Sabendo que nosso microcontrolador esta trabalhando com um cristal externo de 8MHz, vamos calcular o tempo de estouro do TIMER1: ConfiguraçãoConfiguraçãoConfiguraçãoConfiguração dodododo TIMER1:TIMER1:TIMER1:TIMER1: Modo de Operação: 16 bits (timer1 somente opera no modo 16 bits) Fonte de oscilação: Ciclo interno. Prescaler: 1:8 CalculoCalculoCalculoCalculo dededede EstouroEstouroEstouroEstouro dodododo TIMER1:TIMER1:TIMER1:TIMER1: Fórmula: Tempo: ciclo de máquina * prescaler * (modo 16bits – valor de carga) Portanto Tempo: 0.5 * 8 * (65536 – 0) = 262.144us ou 262ms TIMER2TIMER2TIMER2TIMER2 :::: O TIMER2 é um timer de 8 bits com recarga automática. Esse TIMER tem um registrador de configuração, um de contagem e outro de comparação. Ele possui um registrador de contagem de 8 bits ( 0 a 255) chamado TMR2. Diferentemente dos outros timers, o TIMER2 possui um prescale e um postscaler. Os registradores especiais responsável pela configuração de temporização do TIMER2 são: /*'****************************************//********************************** 'Microgenios | MicroControladores * 'Site: www.Microgenios.com.br * 'Autor: Fernando Simplicio de Sousa * ' ***************************************//********************************** 'Programa exemplo: TIMER1.c 'Cristal: 8MHz - modo HS * 'Microcontrolador PIC18F45200 Microchip * 'Tools: Kit PICgenios PIC18F Módulo Profissional Microgenios 'Configuração: DIP1 - Chave 09 -ON '****************************************//********************************** 'Objetivo: 'Este programa tem por objetivo ativar a temporização máxima do TIMER1 'utilizando cristal de 8Mhz '****************************************//**********************************/ voidvoidvoidvoid main(){ /*'******************************calculo temporização timer1 *************** 'calculo de temporização máxima do timer1 'tempo = ciclo_maquina * prescaler * (modo 16 - valor inicial) 'logo 'Tempo = 0.5us * 8 * (65536 - 0) 'Tempo = 262.144 us ou 262ms */ TRISD = 0; //'define portb como saida PORTD = 0; //'apaga todos os leds conectados ao portd T1CON = 0b10110001; //'liga TIMER1, prescaler 1:8, modo 16bits. TMR1L = 0; //'carrega valor de contagem baixa do TIMER1 TMR1H = 0; //'carrega valor de contagem alta do TIMER1 PIR1.TMR1IF = 0; //'apaga flag de estouro do TIMER1 whilewhilewhilewhile (1){ ifififif (PIR1.TMR1IF == 1) { PORTD.RD0 = ~PORTD.RD0; //'inverte o valor do led1 TMR1L = 0; //'carrega valor de contagem baixa do TIMER1 TMR1H = 0; //'carrega valor de contagem alta do TIMER1 PIR1.TMR1IF = 0; //'apaga flag de estouro do TIMER1 } } } www.mecatronicadegaragem.blogspot.com Microgenios – Treinamentos, Kits de desenvolvimento e muito mais... Página 50 de 74 T2CONT2CONT2CONT2CON (TIMER2(TIMER2(TIMER2(TIMER2 CONTROLCONTROLCONTROLCONTROL REGISTER):REGISTER):REGISTER):REGISTER): ConfigurConfigurConfigurConfiguraaaa oooo setupsetupsetupsetup dodododo TIMER2;TIMER2;TIMER2;TIMER2; TMR2: Registrador de contagem do TIMER2 (8 bits); PR2: Registrador de comparação do TIMER2 Dizemos que o TIMER2 é um timer com recarga automática pois quando o valor carregado em PR2 é igual ao de contagem TMR2, o valor de TMR2 é zerado e inicia-se uma nova contagem, ou melhor dizendo, temporização. Os registradores relacionados com o TIMER2 são: TabelaTabelaTabelaTabela 4444....8888 –––– RegistradoresRegistradoresRegistradoresRegistradores responsáveisresponsáveisresponsáveisresponsáveis pelapelapelapela configuraçãoconfiguraçãoconfiguraçãoconfiguração dodododo TIMER2TIMER2TIMER2TIMER2 Através do registrador T2CON, podemos configurar o modo de operação do TIMER2, tais como: valor do prescale e postcale e ligar ou desligar o timer2. Veja o diagrama esquemático de construlção do TIMER2: (procure sempre comparar um TIMER com o outro, pois dessa forma você saberá qual é mais adequado para sua aplicação).

Como comparar valor de tmr1h tmr1l
Como comparar valor de tmr1h tmr1l
Como comparar valor de tmr1h tmr1l

Bom dia. Necessito de algumas dicas para o controle de posição de um motor de passo. Eu desenvolvi um drive baseado no CI da Toshiba TB6600HG e agora estou tentando realizar controles básicos de posição. A minha dúvida é: Como posso fazer uma contagem ou algo do tipo utilizando o módulo CCP do PIC? Eu li algumas coisas sobre utilizar alguns registradores do Timer mas ficou confusa a ideia para min. Desde já agradeço amigos. Abraço!