Aula 3 Prof Ricardo Teixeira Tecnologia em Mecatrnica

  • Slides: 31
Download presentation
Aula 3 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Aula 3 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Clock

Clock

Configurações do oscilador • #FUSES INTRC – Não necessita de componentes externos. – Utiliza

Configurações do oscilador • #FUSES INTRC – Não necessita de componentes externos. – Utiliza o gerador de clock interno. – Baixa precisão. – É possível utilizar a diretiva #use delay com os seguintes valores: 31 KHz, 125 KHz, 250 KHz, 500 KHz, 1 MHz, 2 MHz, 4 MHz e 8 MHz. Ex. : #use delay(clock=4000000)

Configurações do oscilador • #FUSES XT – Utiliza componentes externos (cristal e capacitores). –

Configurações do oscilador • #FUSES XT – Utiliza componentes externos (cristal e capacitores). – Mais rápido que o INTRC. – Maior precisão por utilizar o cristal. – Para cristais até 4 Mhz. • #FUSES HS – Utiliza componentes externos (cristal e capacitores). – Alta velocidade (HS = high speed) – Maior precisão por utilizar o cristal. – Para cristais até 20 Mhz. Cristal de 16 MHz

Configurações do oscilador • Disposição do cristal e dos capacitores – Capacitores cerâmicos (não

Configurações do oscilador • Disposição do cristal e dos capacitores – Capacitores cerâmicos (não polarizados). – O cristal deve ficar conectado aos pinos 14 (OSC 1) e 13 (OSC 2).

Ciclo de máquina do PIC 18 (Instruction Cycle) • O clock do sistema é

Ciclo de máquina do PIC 18 (Instruction Cycle) • O clock do sistema é internamente dividido por 4. • Cada instrução de máquina consiste em 4 Q-cycles (Q 1 à Q 4). • A busca da instrução ocorre em 1 Q-cycle e a execução em outro. Datasheet - 5. 2 PIC 18 Instruction Cycle

Ciclo de máquina do PIC 18 (Instruction Cycle) • Com o uso de pipeline

Ciclo de máquina do PIC 18 (Instruction Cycle) • Com o uso de pipeline cada instrução é executada em 1 Q-cycle. • Observe a imagem. A instrução 1 (MOVLW) é carregada no Tcy 0 executada no Tcy 1. A instrução seguinte é carregada no Tcy 1 e executada no Tcy 2. Assim a execução sempre* ocorre a cada Tcy. X. Datasheet - 5. 2 PIC 18 Instruction Cycle

Tempo de execução das instruções •

Tempo de execução das instruções •

Observação • No CCS podemos utilizar diferentes bases para representar um valor numérico como:

Observação • No CCS podemos utilizar diferentes bases para representar um valor numérico como: binária, octal, decimal e hexadecimal. – Binário: 0 b 01111011 – Octal: 0173 – Decimal: 123 – Hexadecimal: 0 x 7 B • No CCS podemos escrever o número como quisermos, o compilador se encarrega de entender. – dados = 0 b 10000000 - 2 + 0 x 3 + 012;

Portas de Entrada e Saída

Portas de Entrada e Saída

Portas de Entrada e Saída • O PIC 18 F 4550 contém 5 portas

Portas de Entrada e Saída • O PIC 18 F 4550 contém 5 portas – Porta A e Porta B com 8 bits; – Porta C com 7 bits, RC 3 não está disponível; – Porta D e Porta E: 4 bits; • É possível acessar cada bit de cada porta individualmente. • No chip físico nem sempre estes bits estão dispostos de forma linear. – Ex. : a Porta E é composta pelos pinos 8, 9, 10 e 1.

Portas de Entrada e Saída • Modos de Entrada e Saída – O compilador

Portas de Entrada e Saída • Modos de Entrada e Saída – O compilador disponibiliza 3 formas de entrada diferentes: • #use standard_io (port): modo automático, as funções de output e input alteram a direção do pino. • #use fixed_io (port_outputs = pinos) : modo manual, a direção do pino fica fixa. • #use fast_io (port): você pode mudar manualmente utilizando a função set_tris_x(porta).

Portas de Entrada e Saída • Funções de saída: – output_x (int valor), onde

Portas de Entrada e Saída • Funções de saída: – output_x (int valor), onde x representa a porta (a, b, c, d ou e). – output_low (PIN_Px), coloca o bit especificado por PIN_Px em nível baixo (0). Px é a letra da porta e o respectivo bit (A 0, B 1 etc. ) – output_high (PIN_Px), coloca o bit especificado por PIN_Px em nível alto (1). Px é a letra da porta e o respectivo bit (A 0, B 1 etc. ) – output_toggle(PIN_Px), alterna o estado, alto e baixo do bit. – output_bit( PIN_Px, bit), altera o pino Px para o valor de bit.

Portas de Entrada e Saída • Funções de entrada: – input_x (), lê a

Portas de Entrada e Saída • Funções de entrada: – input_x (), lê a porta representa por x (a, b, c, d ou e). – intput(PIN_Px), lê o pino especificado. – Intput_state(PIN_Px), lê o pino especificado sem mudar a direção.

Registradores TRIS • Cada porta possui um registrador TRIS associado a ela • O

Registradores TRIS • Cada porta possui um registrador TRIS associado a ela • O nome TRIS vem de Tri-state em alusão às portas de 3 estados (alto, baixo e desconectado) • Os bits de cada registrados TRIS configuram o bit da porta respectiva como entrada ou saída. • Para setar o valor do registrador, por exemplo da porta B, usamos set_tris_b (0 b 00001111), os 4 primeiros bits estão definidos como entrada(1) e o resto como saída (0).

Temporização

Temporização

Funções de atraso • Não são precisas • São criadas a partir de instruções

Funções de atraso • Não são precisas • São criadas a partir de instruções asm – delay_cycles(int 8 count) • count – constante de 1 a 255 • Espera count ciclos de máquina – delay_us(int 16 time) • Time – 0 a 65535 • Espera time microsegundos – delay_ms(int 16 time) • Time – 0 a 65535 • Espera time milisegundos

Observação! • As funções de atraso são a pior forma possível de se contar

Observação! • As funções de atraso são a pior forma possível de se contar ou esperar algum tempo! • Para gerar o atraso o compilador cria um loop de NOPs para executar tantas vezes quanto necessários para gerar o delay. • Suponha um delay_ms(100). Com um clock de 20 MHz o ciclo dura 0, 2 us. E assim, 100 ms / 0, 2 us = 500. 000 ciclos. • São desperdiçados 500. 000 ciclos! • Como contar o tempo de forma correta?

Módulo TIMER 0 (8 ou 16 bits) • Comumente conhecido como RTCC (Real Time

Módulo TIMER 0 (8 ou 16 bits) • Comumente conhecido como RTCC (Real Time Counter Clock). • Temporização sem comprometer o processamento do microcontrolador. • Incrementado pelo clock interno ou pelo pino externo T 0 CKI (Timer zero clock input), pino RA 4. Datasheet - 11. 1 Timer 0 Operation

Módulo TIMER 0 - Prescaler • Diminui a velocidade do TIMER. • Configurado no

Módulo TIMER 0 - Prescaler • Diminui a velocidade do TIMER. • Configurado no registrador T 0 CON<3: 0> nos bits PSA e T 0 PS 2: T 0 PS 0 e vai de 1: 2 áté 1: 256. • Pode ser alterado em tempo de execução. Datasheet - 11. 1 Timer 0 Operation

Módulo TIMER 0 - Interrupção • Ocorre quando há a contagem do TIMER 0

Módulo TIMER 0 - Interrupção • Ocorre quando há a contagem do TIMER 0 no registrador TRM 0 chega ao valor máximo. • Este valor depende do modo de operação. Em 8 bits o valor é 0 x. FF e em 16 bits 0 x. FFFF. • A interrupção do TIMER 0 pode ser habilitada ou não definindo o valor do bit TRM 0 IE (INTCON<5>). • Este estouro seta (1) o bit TRM 0 IF (INTCON<2>). • Mesmo que a interrupção esteja desligada é possível olhar TRM 0 IF (timer zero interruption flag) e saber se ocorreu um estouro.

Como calcular o tempo de interrupção?

Como calcular o tempo de interrupção?

Configurando TIMER 0 no CCS #include <18 F 4550. h> #FUSES NOMCLR, NOWDT, NOBROWNOUT,

Configurando TIMER 0 no CCS #include <18 F 4550. h> #FUSES NOMCLR, NOWDT, NOBROWNOUT, NOLVP #use delay(crystal=20000000) #INT_TIMER 0 void interrupcao_timer 0 () { clear_interrupt(INT_TIMER 0); output_toggle(PIN_B 0); } void main() { enable_interrupts(GLOBAL); enable_interrupts(INT_TIMER 0); // habilita a interrupção do TIMER 0. setup_timer_0(RTCC_INTERNAL|RTCC_8_BIT|RTCC_DIV_32); while(TRUE){ //TODO: User Code } } //420 ms

Circuito de Reset • O pino Master Clear Reset permite a criação de uma

Circuito de Reset • O pino Master Clear Reset permite a criação de uma forma de reset via hardware. • O pino é ativo em 0, isto é, quando seu nível for zero estará em modo reset. • É preciso que utilizar o fuse MCLR.

Compilador CCS C

Compilador CCS C

Criando um Projeto no CCS • Wizard para ajudar a preparar as configurações inicias.

Criando um Projeto no CCS • Wizard para ajudar a preparar as configurações inicias. • Possibilidade de selecionar entre os microcontroladores compatíveis. • Várias possibilidades de configuração de A/D, Timers, clock etc.