Jhonatan Serafim

Respostas no Fórum

Visualizando 15 posts - 1 até 15 (de 548 do total)
  • Autor
    Posts
  • 2023-05-02 até 07:42 #40003402813

    Olá Éderson!

    Além do bit EEIE (E2PROM Interrupt Enable) que habilita a geração de interrupção quando a operação de escrita na E2PROM é concluída, é necessário habilitar também o bit GIE (Global Interrupt Enable) e o bit PEIE (Peripheral Interrupt Enable) para permitir que a interrupção seja tratada pelo microcontrolador.

    Caso seja necessário reveja a aula 5 sobre interrupções.

    2023-04-24 até 12:05 #40003402758

    Éderson, na sua mensagem você não disse qual é sua dúvida.

    Mas acredito que esteja com dificuldade em realizar o calculo.

    Basta pegar o valor que já sabemos do intervalo de tempo sem uso de prescale e multiplicar pelo ajuste desejado.

    2023-04-24 até 12:02 #40003402757

    Éderson, poderia confirmar sua dúvida e verificar se a fez na questão certa?

    2023-04-24 até 11:28 #40003402756

    Éderson, na sua mensagem você não disse qual é sua dúvida.

    Mas acredito que esteja com dificuldade em realizar o calculo.

    Basta pegar o valor que já sabemos do intervalo de tempo sem uso de prescale e multiplicar pelo ajuste desejado.

    Sendo 256 o valor configurado para prescale.

    83,3ns X 256

    Chegamos ao valor aproximado de 21,3248 microsegundos

    2023-04-24 até 11:24 #40003402755

    Olá Éderson!

    Levando em consideração que o kit opera em 48MHz… (vide cabeçalho: #use delay (clock=48000000)

    E sabemos que a frequência externa é dividida internamente por 4 (pipeline)

    Portanto, operamos com uma frequência interna de 12MHz (48/4 = 12)

    Por fim, aplicamos o cálculo de frequência:
    T = 1/F.
    E então teremo:
    T = 1/12000000 = 83,3ns.

    Sabemos que cada ciclo do timer é incrementado a cada pulso do clock interno. Dessa forma, podemos afirmar que cada incremento ocorre em aproximadamente 83ns.

    2023-04-24 até 10:52 #40003402754

    Olá Sebastião!

    Pela informação iremos ajustar o bloco impresso.

    2023-04-17 até 14:08 #40003402712

    Perceba que apenas a ordem das palavras estão diferentes nas questões, porém existe apenas duas opções para duas siglas que são citadas no enunciando. Sendo assim fica é só realizar a nomenclatura como já conversamos em particular.

    2023-04-17 até 14:05 #40003402711

    Visando trabalhar em uma velocidade menor de clock temos um menor consumo.

    Trabalhar com uma velocidade reduzida de clock pode trazer algumas vantagens, dependendo do contexto e das necessidades do sistema. Algumas das vantagens de se trabalhar com uma velocidade reduzida de clock incluem:

    Menor consumo de energia: Uma velocidade reduzida de clock pode reduzir significativamente o consumo de energia do sistema, o que pode prolongar a vida útil da bateria em dispositivos móveis e reduzir o consumo de energia em sistemas que precisam operar por longos períodos de tempo.

    Menor temperatura de operação: Uma velocidade reduzida de clock pode ajudar a reduzir a temperatura do processador, o que pode prolongar a vida útil do hardware e reduzir a necessidade de resfriamento adicional.

    Menor ruído: Uma velocidade reduzida de clock pode ajudar a reduzir o ruído do sistema, já que o cooler não precisa funcionar tão rapidamente para manter o processador resfriado.

    Maior estabilidade: Em alguns casos, uma velocidade reduzida de clock pode aumentar a estabilidade do sistema, reduzindo a chance de erros devido a overclocking ou problemas de compatibilidade com outros componentes do sistema.

    No entanto, é importante notar que trabalhar com uma velocidade reduzida de clock também pode limitar o desempenho do sistema em certas tarefas que requerem alto poder de processamento. Por isso, é importante encontrar o equilíbrio certo entre a velocidade de clock e as necessidades do sistema para maximizar o desempenho e a eficiência energética.

    2023-04-17 até 14:01 #40003402707

    Neste caso trata-se de qual ‘vantagem’ sendo assim obter maior agilidade no processamento.

    Trabalhar com uma velocidade alta de clock pode proporcionar várias vantagens, dependendo do contexto. No geral, uma alta velocidade de clock permite que o processador execute mais instruções por segundo, o que pode melhorar significativamente o desempenho de sistemas computacionais, como computadores pessoais, servidores e dispositivos móveis.

    Algumas vantagens específicas de uma velocidade alta de clock incluem:

    Melhor desempenho em tarefas que exigem muito processamento: Uma alta velocidade de clock pode permitir que um processador execute rapidamente tarefas que exigem muito processamento, como renderização de gráficos em jogos e aplicativos, processamento de vídeo, edição de fotos e outras tarefas intensivas em CPU.

    Resposta mais rápida do sistema: Uma velocidade alta de clock pode reduzir o tempo de resposta do sistema, permitindo que os programas sejam iniciados mais rapidamente, que as páginas da web sejam carregadas mais rapidamente e que os arquivos sejam transferidos com mais rapidez.

    Maior capacidade de multitarefa: Uma alta velocidade de clock pode permitir que um sistema execute várias tarefas simultaneamente, como executar várias instâncias de programas pesados ou realizar várias tarefas em segundo plano enquanto você trabalha em outras tarefas.

    No entanto, é importante notar que trabalhar com uma velocidade alta de clock pode ter algumas desvantagens, incluindo um maior consumo de energia e o aumento da temperatura do processador. Além disso, nem todos os aplicativos e sistemas operacionais são otimizados para aproveitar ao máximo uma alta velocidade de clock, o que pode limitar os benefícios do aumento da velocidade de clock em alguns casos.

    2023-03-13 até 09:06 #40003400603

    Éderson, não ficou claro qual é sua dúvida ou sua objeção a resposta. Então vou deixar aqui o breve parecer sobre a questão:

    A questão se refere aos valores possíveis do prescaler de um microcontrolador. O prescaler é um registrador que permite dividir a frequência do clock do microcontrolador para gerar um clock de menor frequência, que será utilizado para controlar a execução de instruções ou eventos no microcontrolador.

    No caso da questão, a combinação PS2=0, PS1=0 e PS0=0 corresponde ao menor valor possível do prescaler, que é 2. Isso porque a configuração dos bits do prescaler segue uma progressão geométrica, onde cada bit acrescenta um fator de 2 na divisão da frequência. Ou seja, PS0 corresponde a uma divisão por 2, PS1 a uma divisão por 4, PS2 a uma divisão por 8, e assim por diante. Quando todos os bits estão em zero, o prescaler realiza uma divisão por 2, resultando em um prescaler de valor 2.

    Portanto, a alternativa correta é: a) 2.

    2023-03-01 até 09:20 #40003399276

    Olá Éderson!

    Assim como na outra dúvida essa aqui também não ficou muito clara e também havia sido feita sobre outra questão. Então vou responder aqui no local correto.

    Está questão se refere a deslocamentos de bits veja a seguir como realizar essa operação:

    A variável x contém o valor 0x1F, que em binário é 0001 1111. Ao realizar a operação x = x << 1, ocorrerá um deslocamento de bits para a esquerda, adicionando um zero na posição menos significativa e perdendo o bit mais significativo. O resultado será 0x3E, que em binário é 0011 1110. Portanto, o novo valor da variável x será 0x3E.

    Bons estudos.

    2023-03-01 até 09:10 #40003399273

    Olá Éderson!

    Sua dúvida não ficou muito clara e também havia sido feita sobre outra questão. Então vou responder aqui no local correto.

    Está questão se refere a deslocamentos de bits veja a seguir como realizar essa operação:

    Ao realizar a operação x = x >> 2, estamos deslocando os bits do valor de x dois lugares para a direita, o que resulta em uma divisão inteira por 2^2 (4). Como o valor original de x é 115, a representação binária é 01110011. Deslocando dois lugares para a direita, obtemos 00011100, que em decimal corresponde a 28. Portanto, o novo valor da variável x é 28.

    Bons estudos.

    2023-02-23 até 07:14 #40003398483

    Olá Éderson!

    Para habilitar a interrupção externa por meio da borda de subida em um microcontrolador, é preciso configurar o registrador responsável por esse controle. No caso do PIC18F4550, esse registrador é o INTCON2.

    A função ext_int_edge() é uma função padrão do compilador MPLAB, que permite configurar o tipo de borda que ativa a interrupção externa. No caso da letra d), a função está configurada para detectar uma borda de descida para cima (L_TO_H), ou seja, a interrupção será ativada quando o sinal externo passar de nível baixo (0V) para nível alto (5V), indicando a presença de uma borda de subida.

    Assim, o código correto para habilitar a ativação da interrupção externa por meio da borda de subida é:

    ext_int_edge(L_TO_H);

    Esse comando configura o registrador INTCON2 para detectar a borda de subida e habilitar a interrupção externa correspondente.

    Bons estudos.

    2023-02-02 até 09:45 #40003396351

    Olá, Éderson!

    Essa sua dúvida não faz relação com essa questão, correto?

    Na aula temos a recomendação de utilizar short int para armazenamento de valores lógicos como TRUE e FALSE, pois na arquitetura que utilizamos não se aplica o uso de bool (boleano).

    Deixo em anexo um corte do material de apoio, para consulta.

    página do slide

    Bons estudos.

    2023-02-02 até 09:37 #40003396347

    Olá, Éderson!

    Está questão não pede que informe o que está errado, pede que ‘analise o comportamento do circuito. De acordo com o observado, é possível afirmar que:’

    Revise seu código, caso queira anexe ele aqui para que possamos analisar juntos. Pois o comportamento que está ocorrendo em sua descrição é diferente do descrito no código da atividade.

    Vamos fazer uma análise do código:

    1° vou separar em blocos de condições para melhorar a leitura e explicação;

    if(!input(pin_b0)){
    delay_ms(250);
    output_low(pin_b4);
    }
    
    else if(!input(pin_b1)){
    delay_ms(250);
    output_low(pin_b5);
    }
    
    else if(!input(pin_b2)){
    delay_ms(250);
    output_low(pin_b6);
    }
    
    else if(!input(pin_b3)){
    delay_ms(250);
    output_low(pin_b7);
    }
    
    else{
    output_high(pin_b4);
    output_high(pin_b5);
    output_high(pin_b6);
    output_high(pin_b7);
    }

    2° Pode ver que temos 5 condições;
    3° Vemos que em todas as condições temos sempre um parameto indicando um pin que no kit relaciona um botão, sendo pin_b0 BOT1, pin_b1 BOT2, pin_b2 BOT3, pin_b3 BOT4;
    4° Temos o mesmo delay para todas as condições;
    5° e por fim temos um output do tipo low que recebe como parametro sempre um pin de um led do kit pin_b4 LD1, pin_b5 LD2, pin_b6 LD3, pin_b7 LD4;

    Depois dessa visualização do código e compreendendo cada paramentro e associando com o hardware do kit, podemos concluir que para cada botão pressionado o código muda a ação.

    Pegamos por exemplo o primeiro bloco de condição: Se apertar o botão BOT1 o LD1 será apagado.

    Agora repita essa analise e poderá visualizar o comportamento do código no kit.

    Espero que com essa mensagem possa resolver a questão.

Visualizando 15 posts - 1 até 15 (de 548 do total)