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.
//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 leitura da entrada analógica e a faixa de conversão 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.
Anexos:
Soluções para a tarefa
Respondido por
0
Boa tarde , conseguiu a resposta ? tambem estou com dificuldades em responder essa, se conseguiu pode me ajudar ?
[email protected]
[email protected]
Perguntas interessantes