Ir ao conteúdo

Posts recomendados

Postado

  Alguem consegue me ajudar nessa?

Analise o programa a seguir, referente ao circuito apresentado pela figura abaixo e responda o que se pede. O programa consiste em um pisca pisca ajustável através de um potênciometro ligado em uma entrada analógica.

image.png.218e21305d3e95720ab322d268b0b535.png

//Arquivo "main.h"
#include <16F873A.h>
#device adc=10

#FUSES NOWDT
#FUSES HS
#FUSES PUT
#FUSES NOPROTECT
#FUSES NODEBUG
#FUSES NOBROWNOUT
#FUSES NOLVP
#FUSES NOCPD
#FUSES NOWRT

#use delay(clock=8000000)

#define LED PIN_B0

 

//Arquivo "main.c"
unsigned long dado_ADC;
unsigned int tempo;
short fim_ms;

#int_RTCC
void RTCC_isr(void)
{
set_timer0(get_timer0()+6);
fim_ms = 1;
tempo--;
if (tempo == 0)
{
output_toggle(LED);
tempo = dado_ADC + 1;
}
}

void main(void)
{
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_DIV_2);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
tempo = 0;
fim_ms = 0;
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);

while(1)
{
if (fim_ms)
{
fim_ms = 0;
dado_ADC = read_adc();
if (dado_ADC > 999)
{
dado_ADC = 999;
}
}
}
}

 

Pede-se:

a) Informe o intervalo de tempo da leitura da entrada analógica (em segundos) e a faixa numérica da conversão analógica para digital binária do ADC.

b) Informe a mínima e a máxima frequência de oscilação do LED.

c) Informe a quantidade de pulsos que o TIMER deve contar para ocorrer a interrupção.

d) Explique os parâmetros #FUSES HS e #FUSES PUT.

 


 

            

  • Membro VIP
Postado
13 horas atrás, deboraccs disse:

faixa numérica da conversão analógica para digital binária do ADC.

 

13 horas atrás, deboraccs disse:

if (dado_ADC > 999)
{
dado_ADC = 999;

de 0 a 999

Dica: use um simulador - ou o próprio mplab - pra ter acesso aos demais dados. Analise os registradores. Dica: um break point - clique duplo na linha onde quer parar - congela o momento pra você analisar os registros. Consulte o datasheet pra saber sobre os fuses bem como o help do compilador.

 

O modo que seu compilador trata o registro do timer0

13 horas atrás, deboraccs disse:

void RTCC_isr(void)
{
set_timer0(get_timer0()+6);

me impede de ver o que escreve efetivamente no registro pra deduzir o intervalo de tempo. Deves consultar seu help

  • Moderador
Postado

Caro usuário,

 

Seja bem-vindo ao Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!