• Nenhum resultado encontrado

Guia IntroduçãoMicrocontrolador

N/A
N/A
Protected

Academic year: 2021

Share "Guia IntroduçãoMicrocontrolador"

Copied!
22
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE CIÊNCIAS E TECNOLOGIA

DEPARTAMENTO DE ENGENHARIA ELÉTRICA

DISCIPLINA: LABORATÓRIO DE ARQUITETURA DE SISTEMAS DIGITAIS

Elaboração de um programa para o PIC usando o ambiente de desenvolvimento PIC C.

A seqüência de passos a seguir, permite criar um programa para o PIC sem o programador ter que se preocupar com a programação dos registros de configuração do microcontrolador, diretamente no código do programa. Com a ferramenta “PIC Wizard”, os detalhes de configuração são apresentados em telas onde todas as opções disponíveis para o dispositivo são disponibilizadas, bastando ao programador apenas selecionar as de seu interesse.

Para se familiarizar com o uso do compilador o aluno deverá seguir os passos abaixo para efetuar a configuração dos vários periféricos do microcontrolador.

Passo 1 – Iniciar um novo projeto.

Na tela principal do PIC C selecionar na seqüência as seguintes opções: (1)Project, (2)New e (3)PIC Wizard, como mostrado na figura 1.

Figura 1

Passo 2 – Seleção de modelo de PIC, freqüência de operação, tipo de oscilador, processo de inicialização, proteções de memória.

Na janela mostrada na figura 2 o programador deverá selecionar:

(1) O modelo do microcontrolador que será utilizado (Device), para isso o aluno deverá verificar na placa que está utilizando a referência do microcontrolador;

(2) A freqüência de trabalho do microcontrolador (Oscillator Frequency), as placa utilizam um cristal de 4MHz. Para informar esse valor posicione o cursor no zero mais a esquerda da caixa que indica a freqüência, apague todo o valor nele contido e digite o novo valor de freqüência desejado;

(2)

(3) Function Generation: Estas opções devem ser mantidas. As mesmas referem-se a formatação do código gerado pela ferramenta Wizard, como por exemplo a endentação das linhas de código;

(4) As opções “Enable Integrated Chip Debugging (ICD)”, “Use 16 bit pointers for Full RAM use” e “Restart WDT during calls do DELAY” devem ser mantidas desabilitadas;

(5) No quadro “Fuses” o programador dele selecionar:

(5.1) O tipo de circuito oscilador (para um cristal de 4 MHz, selecione a opção indicada na figura;

(5.2) Ativar o modo “Power Up Timer”;

(5.3) Manter todos os itens de proteção de memória (FLASH, EEPROM e de dados) desabilitados;

(5.4) Desabilitar a programação utilizando baixa tensão (Low Voltage Programming on B3(PIC16) or B5(PIC18));

(5.5) Manter o RESET por Brownout;

(3)

As seleções feitas na janela da figura 2, gerarão o código indicado no quadro apresentado na figura 3, que comporá o arquivo xxx.h da aplicação. As linhas de código mostradas na figura 3 podem ser visualizadas pressionando o botão “View Code Generated form this tab <<<<<<<<”. O conteúdo deste arquivo (4 linhas de código) pode ser copiado para o arquivo do código fonte, bastando apenas substituir a diretiva de chamada do arquivo xxx.h, #include <xxx.h>, pelas linhas de código do próprio arquivo.

Figura 3

Tarefa Laboratório: Gere um novo projeto, denominado “introdução” e faça as configurações para os passo 1 e 2, indicados acima, considerando o uso do PIC 16F877A, e Cristal de 4MHz. Ao finalizar, verifique se você obtém a mesma visualização apresentada na figura 3.

Tarefa Pós Laboratório:

1) Explique o que significa o “Power Up Pimer” (ver Datashseet do PIC); 2) Explique quando ocorre o RESET por “Brownout” (ver Datashseet do PIC);

3) Correlacione os “labels” na linha FUSES com as caixas de seleção de opções do bloco Fuses da figura 2;

Passo 3 – Habilitação/Desabilitação das interfaces de comunicação serial e paralela. Na tela mostrada na figura 4 o programador configura as interfaces de comunicação serial (RS232 e/ou I2C) e de comunicação paralela (Hardware PSP).

Para usar a serial RS232 o aluno deve: (1) Habilitar o uso da RS232 (Use RS-232);

(4)

(2) Definir a taxa de transmissão de dados (Baud), em geral será usada uma taxa de 9600 Bits/s;

(3) Definir o tipo de paridade (None, even ou odd);

(4) Os pinos utilizados para transmissão (Transmit) e recepção (Receive), são definidos de acordo com o modelo de microcontrolador. Para o 16F877A, os pinos são respectivamente o C6 e 0 C7, como já definidos originalmente.;

(5) Deve-se definir o número de bits de dados, a configuração padrão são 8 bits de dados, no entanto, se for utilizado bit de paridade, deve-se usar 9 bits de dados, sendo o nono bit o de paridade;

(6) As opções:

(6.1)Restart_wdt – Ao executar uma instrução GETC(), reseta o watchdog, enquanto aguarda por um byte;

(6.2) Invert – Inverte a polaridade dos pinos RX e TX da porta serial (USART); (6.3) Float_high – Usado para saídas do tipo coletor aberto;

(6.4) Errors – Indicar ao compilador para manter a informação dos erros de recepção na variável RS232_ERRORS e resetar os erros quando eles ocorrerem. É uma cópia do registrador RCSTA, sendo que o bit 0 indica erro de paridade;

(6.5) BRGH10K – Habilita o uso de taxas de transmissão mais elevadas, setando o bit BRGH do registrador de status de transmissão (TXSTA). Para BRGH = 0 – Baud Rate = FOSC/(64(X+1)), para BRGH=1 – Baud Rate = FOSC/(16(X+1)). São mantidas desabilitadas

(5)

Figura 4

Para usar a Porta Paralela Escrava (Parallel Slave Port - PSP) basta habilitar a mesma na caixa (Hardware PSP) (13)

Para usar a Porta serial I2C o aluno deve:

(7) Habilitar o uso da porta serial I2C (Use I2C);

(8) Selecionar se será uma porta Mestre ou Escrava;

(9) Se for uma porta escrava (Slave), deve-se definir um endereço para a mesma (Slave Address);

(10) Selecionar a freqüência do sinal de clock, pois se trata de uma porta serial síncrona; (11) Pode-se habilitar a função de resetar o watchdog enquanto a porta aguarda por dados quando no modo leitura (Restart-wdt);

(12) Pode-se habilitar a função que força o uso de funções de hardware para escrita/leitura (Force-hw);

Tarefa Laboratório: Configure a porta serial RS232, para uma taxa 4800Bits/s, 8 bits de dados, com “Restart-wdt” e “BRGH10K” ativos. Configure a porta serial I2C, como

“Slave”, com endereço 100, utilizando clock Slow e com “Restart-wdt” e “Force-hw” ativos. Habilite a porta PSP. Anote o código gerado a partir dessa configuração.

(6)

Tarefa Pós Laboratório:

4) Determine o valor de x, nas expressões de Baud Rate, considerando que BRGH é 0 (BRGH10K desabilitado) e (BRGH10K habilitado), para a configuração indicada acima e o cristal usado no passo 1 de configuração;

Passo 4 – Habilitação/Desabilitação da Porta Serial Síncrona SPI. Para usar a Porta serial SPI o aluno deve:

(1) Habilitar o uso da porta serial SPI (Hardware SPI); (2) Selecionar se será uma porta Mestre ou Escrava;

(3) Selecionar a polaridade do sinal de Clock onde os bits dos dados enviados/recebidos serão amostrados e o estado inativo do sinal de clock (SPI mode);

(4) Selecionar o fator de escalonamento de Clock de operação da porta SPI, quando a mesma é habilitada para funcionar como uma porta “MASTER”;

(5) A caixa “Use Slave Select Pin” ativa o sinal de habilitação/desabilitação da porta SPI, quando está é configurada como porta “SLAVE”;

(6) A caixa “Sample at End” defini se os bits de dados, nos procedimentos de escrita/leitura, serão amostrados no meio do ciclo de Clock ou no final do mesmo

Tarefa Laboratório: Configure a porta SPI como uma porta “Master”, CKP=1, CKE=0, fator de escalonamento igual a 16 e com amostragem de sinal no fim do período do sinal de Clock. Anote o código gerado a partir dessa configuração.

Tarefa Pós Laboratório:

5) Descreva as formas de onda dos sinais de Clock para as 4 combinações de CKP e CKE, em relação aos sinais de dados de entrada/saída da porta SPI (Consulte o Datasheet do PIC 16F877A);

(7)

Figura 5

Passo 5 – Configuração dos Timer´s e do Watchdog Timer.

O PIC 16F877 possui três timer´s e um circuito Watchdog que podem ser configurados a partir das opções da tela “TIMERS”, mostrada na figura 6. No quadro WDT (configuração do Watchdog timer) o programador pode habilitar ou desabilitar o watchdog (1). Se habilitado o mesmo pode gerar um reset após no mínimo 18 ms e no máximo após 2304 ms (2).

No quadro Timer 0 (RTCC), o programador pode:

(3) Selecionar a fonte do sinal de clock, interna (internal)ou externa. Se externa, também pode ser selecionado se o Timer responderá a borda de subida (ext_l_to_h) ou a borda de descida (ext_h_to_l)do sinal de clock;

(4) Selecionar a resolução de contagem do Timer 0 (essa resolução equivale ao período do sinal de clock e é definida dividindo o clock da CPU por um fator, que varia de 1 a 256); (5) Selecionara freqüência do sinal de clock externo;

(6) O valor “Overflow”, indica o período total de contagem, que corresponde ao tempo necessário para o contador do Timer0, contar de 0 até 256 (8 bits);

No quadro Timer 1, o programado pode: (7) Definir o estado do Timer 1

(8)

(7.1) Desabilitado (valor default);

(7.2) Habilitado e utilizando o clock interno; (7.3) Habilitado e utilizando um clock externo

(8) Selecionar a resolução de contagem do Timer 1 (essa resolução equivale ao período do sinal de clock e é definida dividindo o clock da CPU por um fator, que varia de 1 a 8). O valor “Overflow”, indica o período total de contagem, que corresponde ao tempo necessário para o contador do Timer1, contar de 0 até 65535 (16 bits);

(9) Se for selecionado o clock externo, deve-se definir a freqüência do mesmo na caixa (Frequency);

(10) Se for selecionado o clock externo, a opção de sincronização do sinal de clock externo, com o sinal de clock interno é habilitada, podendo o usuário utilizar ou não essa opção;

Figura 6 No quadro Timer 2, o programador pode:

(11) Habilitar o timer 2;

(12) Selecionar a resolução de contagem do Timer 2 (essa resolução equivale ao período do sinal de clock e é definida dividindo o clock da CPU por um fator selecionado entre 1, 4 e 16);

(9)

(13) Definir o valor de contagem máximo, após o qual o contador do Timer 2 retorna a zero (Overflow). Esse valor pode ser ajustado entre 0 e 255 (Overflow Period);

(14) Definir o número de resetes de contagem após o(s) qual(is) o flag de interrupção de overflow do Timer 2 será setado (Interrupt Period).

Tarefa Laboratório: Configure o Timer0 para uma resolução de 4µs, configure o Timer1 para clock interno, resolução de 2µs e o habilite o Timer 2 e o configure para ter um perríodo de 250µs, com uma resolução de 1µs e que o flag de interrupção seja setado após 10 overflow. Anote o código gerado a partir dessa configuração.

Tarefa Pós Laboratório:

6) Descreva os circuitos dos Timers 1 e 2 e correlacione os blocos dos circuitos e os bits de configuração apresentados nos mesmos, com os quadros de configuração da tela do Wizard, mostrado na figura 6 (Consulte o Datasheet do PIC 16F877A); Passo 6 – As opções de ajuste de PCH Timers são por default desabilitadas.

(10)

Passo 7 – Programação de pinos das portas de E/S como entradas analógicas e de referência.

Para configurar as entradas analógicas do PIC o programador deve:

(1) Selecionar qual combinação de portas analógicas, digitais e de tensão de referência será utilizada;

(2) Selecionar o número de bits que serão usado para representar de forma digital os sinais analógicos (A/D 8 bits = 0-255, 10 bits = 0-1023 ou 16 bits = 0-65472);

(3) Selecionar o período para conversão de cada bit da palavra digital. Deve ser respeitado um período mínimo de 1,6µs, ou seja, o período selecionado deverá ser sempre ≥ 1,6µs. Sempre que possível a opção “Internal 2-6us”, deve ser evitada.

Figura 8

Tarefa Laboratório: Configure o PIC para trabalhar com os pinos A0, A1 e A3 com entradas analógicas, com 10bits de palavra de dados e utilizando exatamente 1,6µs, como período para conversão de um bit. Anote o código gerado a partir dessa configuração. Tarefa Pós Laboratório:

7) Identifique os registradores e respectivos bits usados para configurar as entradas A0, A1 e A3 como analógicas e o tempo de conversão para cada bit igual a 1,6µs.

(11)

Passo 8 – Configuração das entradas Capture/Compare ou Saída PWM. Na tela “Other”, o programado pode:

(1) Selecionar o bloco de captura/comparação/PWM que será utilizado; (2) Selecionar o modo como esse bloco irá operar

(2.1) Desligado; (2.2) Modo Captura; (2.3) Modo Comparação;

(2.4) Modo PWM (gerador de sinal PWM). Nesse caso, será informado o valor da freqüência do sinal PWM gerado, bem como o máximo valor de “duty-cycle” (número de 10 bits), que pode ser usado para alterar a largura do pulso PWM. (3) No modo captura o programador pode selecionar:

(3.1) O número de transições de subida ou descida que o sinal aplicado ao pino C1 ou C2 (bloco CCP2 ou CCP1, respectivamente) deve apresentar para que o evento de captura seja detectado;

(3.2) O tipo de transição que o sinal deve apresentar, transição low-to-high “Rising”, ou transição high-to-low “Falling”

(4) No modo captura (Capture), quando o evento ocorre o valor de contagem do Timer 1 é copiado para o registrador CCPR1H:CCPR1L.

(5) No modo comparação o programador pode selecionar a operação que será executada pelo PIC quando o valor do registrador CCPRx (x=1 e 2) se igualar ao valor do contador do timer1:

(5.1) O flag de interrupção do bloco CCPx será setado e o pino C1 ou C2, será resetado;

(5.2) O flag de interrupção do bloco CCPx será setado e o pino C1 ou C2, será setado;

(5.3) O flag de interrupção do bloco CCPx será setado e o pino C1 ou C2 não sofrerá alteração;

(5.4) Reseta o contador do Timer 1e o pino C1 ou C2, não sofrerá alteração.

(6) No modo comparação (Compare), o valor do registrador CCPRx é comparado com o valor do registrador de contagem do Timer 1. O evento “Compare” ocorre quando há uma igualdade entre o valor armazenado no registrador CCPx e o valor co Timer 1.

(7) No modo PWM o programador pode selecionar a freqüência do sinal PWM, para isso, deve pressionar o botão “More Options” e na caixa que se abre o mesmo deverá digitar o valor da freqüência desejada. Em geral, ao confirmar a nova freqüência o programador deverá corrigir o valor no campo “Options” para a freqüência correta.

Tarefa Laboratório: Configure o bloco CCP1 para funcionar no modo captura, sensível a uma borda de descida. Configure o bloco CCP2 para geração de um sinal PWM com uma freqüência de 2,5KHz. Anote o código gerado a partir dessa configuração.

Tarefa Pós Laboratório:

8) Descreva as expressões que permite determinar o valor do período do sinal PWM e o máximo valor do “Duty-Cycle”, como definido no Datasheet do PIC6 (Consulte o Datasheet do PIC 16F877A).

(12)

Figura 9 Passo 9 – Habilitação de interrupções.

O PIC 16F877 possui 14 fontes de interrupção, as quais são apresentadas no quadro Interrupts (1), na tela Interrupts, mostrada na figura 10. Ao selecionar uma ou mais interrupções, a(s) mesma(s) será(ao) habilitada(s) e no código gerado pelo PIC Wizard já constará o protótipo que implementará a rotina de serviço da interrupção, conforme mostrado na figura 11, onde pode ser observado o código gerado quando a interrupção Timer 1 overflow é habilitada.

(13)

Figura 10 No código mostrado na figura abaixo o trecho

#int_TIMER1 (*) TIMER1_isr() (*) {

// Aqui vai o código da rotina de serviço de interrupção }

Deve ser copiado no cabeçário do programa fonte, antes da função main(). Enquanto as linhas de código

enable_interrupts(INT_TIMER1); //Habilita a interrupção específica do periférico

//Timer1

enable_interrupts(GLOBAL); //Habilita o PIC a atender as interrupções dos //periféricos

(14)

OBS: As linhas indicadas com (*) NUNCA devem ser separadas. Se isto ocorrer, a rotina de serviço de interrupção XXXXXX_isr(), onde o XXXXXX representa o nome atribuído a cada uma das funções de acordo com a interrupção selecionada, deixa de ser uma função do tipo INTERRUPÇÃO e passa a ser uma função comum, definida pelo programador, ou seja, para ser executada, a mesma deverá ser chamada como uma linha de código do programa. Sendo um função do tipo interrupção, a chamada da mesma é realizada quando o EVENTO associada a interrupção ocorre, por exemplo, no caso da rotina de serviço de interrupção do TIMER 1 usada no exemplo, quando o contador do Timer 1 mudar a contagem de 0xFFFF para 0x0000 (Overflow), o flag de interrupção do Timer 1 será setado e estando a interrupção habilitada, a função TIMER1_isr() é chamada de forma automática.

Figura 11

Tarefa Laboratório: Habilite as interrupções de overflow do Timer 0 e da interrupção externa. Anote o código gerado a partir dessa configuração.

Tarefa Pós Laboratório:

9) Apresente o circuito lógico que controla a operação das interrupções no PIC. Correlacione os Flags de interrupção e os Bits de habilitação de interrupção do circuito lógico com os periféricos ou sinais externos associados (Consulte o Datasheet do PIC 16F877A).

Passo 10 – Selecionar drives de periféricos usado em conjunto com o PIC.

Na tela Drivers pode ser selecionado o drive de alguns dispositivos periféricos que irão funcionar com o PIC. O drive nada mais é do que um conjunto de funções de alto nível que mascara os detalhes de acesso ao dispositivo, por exemplo, ao escrever uma mensagem para o LCD (Display de Cristal Líquido), o programador simplesmente usa uma função do

(15)

tipo printf(“mensagem”, pos), que escreve a string “mensagem”, na posição indicada por “pos”. Assim, ele não precisa se preocupar com um conjunto de sinais de controle que devem ser gerados pelo microcontrolador para que a ação de escrever no LCD ocorra.

Figura 12

Ao selecionar um Drive, o Wizard acrescentará as linhas de código, como indicado na figura 13, ao esqueleto de código gerado ao fim do procedimento de configuração. No exemplo mostrado na figura 13, foi selecionado o driver para escrita/leitura de dados em uma memória serial EEPROM 2401. Observa-se que é associado ao programa o arquivo “2401.c”, que contém as funções para operação da memória serial EEPROM 2401 e também uma chamada a função “init_ext_eeprom()”, que fará a inicialização da memória serial.

Tarefa Laboratório: Habilite o uso do driver do LDC e do driver da memória 2404. Anote o código gerado a partir dessa configuração.

(16)

10) Apresente as funções disponíveis no Driver do LCD e no Driver da memória 2404. Quando possível, explique o que faz cada uma das funções (abra os arquivo .c correspondentes a cada um dos drivers para pesquisar sobre as funções).

Figura 13 Passo 11 – Configuração dos pinos das portas de E/S.

Na tela I/O Pins, mostrada na figura 14, pode ser visualizado como os pinos do PIC ficaram configurados de acordo com as opções selecionadas ao longo do processo de configuração, utilizando a ferramenta Wizard. Cada pino pode ser configurado como: input, output, input/output, not used e analog.

As configurações dos pinos apresentadas nesta tela são apenas informativas, inclusive, dependendo do número de alterações realizadas ao longo do processo de configuração, algumas das informações apresentadas podem estar desatualizadas.

Na caixa “Enable Pullups on port B” (1), é possível, marcando a caixa, ativar resistores de Pull-Up internos da porta de E/S B.

Tarefa Laboratório: Habilite o uso dos resistores de Pull-up internos da porta B. Anote o código gerado a partir dessa configuração.

(17)

11) Explique a função de um resistor de Pull-up.

Figura 14

Passo 12 – Seleção dos arquivos “header” a serem associados ao arquivo do programa fonte.

No quadro “Header Files”, há uma lista de arquivos “header” que contém a definição de funções da linguagem C, que podem ser necessários à compilação (os arquivos “header” contém a informação dos protótipos das funções e os tipos dos argumentos que são necessários durante o processo de compilação, por exemplo, o arquivo “math.h”, contém o protótipo das funções trigonométricas sin(), cos(), etc.)

Na mesma tela há uma caixa que permite selecionar a opção “ZERO_RAM” (1). Essa opção pode ser utilizada quando deseja-se garantir que ao definir uma variável e não atribuir um valor inicial para a mesma, como indicado na linha de comando abaixo

(18)

à variável definida será atribuído o valor zero, independente do tipo (int, char, float, long, etc) da variável.

Figura 15

Tarefa Laboratório: Habilite o uso dos arquivos “header” math.h e float.h e habilite a opção ZERO_RAM. Anote o código gerado a partir dessa configuração.

(19)

Linhas de programa geradas pela ferramenta Wizard

A linha #include “C:\usr\cunha\PIC-Programas\teste5.h”, da figura acima pode ser substituída pelo conjunto de linhas marcadas em negrito na figura abaixo. Estas linhas de fato representam o conteúdo do arquivo “teste5.h” que o #include anterior incluiria no arquivo fonte do programa.

(20)

a) #include <16F877.h>: A diretiva #include indica ao compilador que o arquivo entre os sinais de <> deve ser associado ao arquivo “teste5.c”, que é o arquivo fonte do programa. O arquivo “16F877.h” contém informações referentes a valores de constante usados nas funções de configuração do PIC, como por exemplo, “setup_adc( )”. No arquivo “16F877.h”, cada constante é denominada por um label.

b) #device adc=8: A diretiva #device adc define o número de bits que são retornados após uma leitura do conversor A/D do PIC. O número de bits gerado pelo conversor A/D pode variar de um modelo de PIC para outro. No presente caso, a diretiva está ajustando o número de bits de leitura do conversor para 8 bits (este valor pode ser alterado para 10, no caso do 16F877, já que seu A/D é de 10 bits).

c) #use delay(clock=4000000): A diretiva #use delay(clock xxxxx…) indica ao compilador a freqüência de operação do PIC. No presente caso, esta é de 4MHz. d) #fuses WDT,XT, NOPUT, NOPROTECT, BROWNOUT, NOLVP, NOCPD,

NOWRT, NODEBUG: Na opção VIEW/Valid Fuses (figura abaixo), do menu do PCW, pode ser verificada a lista de “fuses” disponíveis para o modelo de PIC que será usado.

Ao selecionar a opção “Valid Fuses” é apresentada a tela abaixo com as opções que podem compor a diretiva #fuses, como a do cabeçário do programa “teste5.c” . Observe que o modelo de PIC deve ser selecionado na caixa “Device”.

A diretiva #fuses gera um dado de 16 bits para programação da palavra de configuração (endereço 2007h). No caso do programa “teste5.c”, as opções selecionadas foram:

 WDT – Uso do WatchDog timer;

 XT – Uso de oscilador a crystal com freqüência <= 4MHz;  NOPUT – Sem Power-up Timer;

 NOPROTECT – Código não é protegido contra leitura;

(21)

 NOLVP – Programação em baixa tensão desabilitada (pinos RB3 (PIC16) ou RB5 (PIC18) podem ser usados para função de E/S );

 NOCPD – Dados de memória EEPROM não protegidos;  NOWRT – Memória de programa não protegida;

 NODEBUG – Modo Debug para uso com ICD desabilitado;

e) setup_adc_ports(NO_ANALOGS): Define que pinos das portas de E/S que podem funcionar como entradas analógicas, serão entradas analógicas. No caso do programa “teste5.c”, nenhum pino foi designado como de entrada analógica, o que é identificado pelo valor do argumento da função setup_adc_ports(), “NO_ANALOGS”;

f) setup_adc(ADC_OFF): Esta função configura o modo de operação do conversor A/D do PIC. No caso do programa “teste5.h”, o mesmo foi desativado, “ADC_OFF”

g) setup_psp(PSP_DISABLED): Esta função inicializa a porta paralela do PIC (quando a mesma existe). No caso do programa “teste5.h”, a porta paralela não foi habilitada, “PSP_DISABLED”

h) setup_spi(FALSE): Esta função inicializa a Serial Port Interface (SPI). No caso do programa “teste5.h”, a SPI não foi habilitada, “FALSE”

i) setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1): Esta função inicializa o Timer 0. No caso do programa “teste5.h”, a fonte de clock do Timer 0 é interna “RTCC_INTERNAL” e fator de divisão da freqüência do sinal de clock é igual a 1 “RTCC_DIV_1”;

j) setup_timer_1(T1_DISABLED): Esta função inicializa o Timer 1. No caso do programa “teste5.h”, o mesmo está desabilitado “T1_DISABLED”;

(22)

k) setup_timer_2(T2_DISABLED,0,1): Esta função inicializa o Timer 2, definindo o fator de divisão do clock, o número de ciclos de relógio para que a contagem seja resetada e o número de resetes para que seja gerada uma interrupção. No caso do programa “teste5.h”, o Timer 2 foi desabilitado,” T2_DISABLED” e apesar de ter sido desabilitado, na função é necessário definir o número de ciclos para o reset da contagem (neste caso 0) e o número de resetes para que haja uma interrupção (neste caso 1).

Referências

Documentos relacionados

Os estudos originais encontrados entre janeiro de 2007 e dezembro de 2017 foram selecionados de acordo com os seguintes critérios de inclusão: obtenção de valores de

Equipamentos de emergência imediatamente acessíveis, com instruções de utilização. Assegurar-se que os lava- olhos e os chuveiros de segurança estejam próximos ao local de

Tal será possível através do fornecimento de evidências de que a relação entre educação inclusiva e inclusão social é pertinente para a qualidade dos recursos de

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

Foi apresentada, pelo Ademar, a documentação encaminhada pelo APL ao INMETRO, o qual argumentar sobre a PORTARIA Nº 398, DE 31 DE JULHO DE 2012 E SEU REGULAMENTO TÉCNICO

Neste trabalho avaliamos as respostas de duas espécies de aranhas errantes do gênero Ctenus às pistas químicas de presas e predadores e ao tipo de solo (arenoso ou

A prova do ENADE/2011, aplicada aos estudantes da Área de Tecnologia em Redes de Computadores, com duração total de 4 horas, apresentou questões discursivas e de múltipla

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação