Você está na página 1de 2

GABARITO P1

1) (1,0) Existem hoje duas arquiteturas que podem ser encontradas em microcontroladores. São elas:
arquitetura Von Newmann e Harvard. Com relação a esta última, sua principal característica é:
COMENTADO NO SLIDE 11 DA AULA 6
a) [ X ] Ter a memória de dados separada da memória de programa para facilitar a atualização de código
b) [ ] Ter a memória de dados em conjunto com a memória de programa para ganhar espaço interno
c) [ ] Ter a memória de dados em conjunto com a memória de programa para economizar energia
d) [ ] Ter a memória de dados separada da memória de programa para facilitar o gerenciamento de energia

2) (2,0) Observe o trecho em C para o ATMEGA328 a seguir:


SLIDE 12 DA AULA 6
DDRD |= (1<<PD4);
PORTD &= ~ (1<<PD4);
Com esses comandos estamos informando ao microcontrolador que:
(OBS.: NL = nível lógico, NL1 nível lógico 1 (5V) e NL0 = nível lógico 0 ( 0V).)
a) [ ] O pino PD4 deverá sempre ficar em NL1 e é INPUT
b) [ ] O pino PD4 deverá sempre ficar em NL0 e é INPUT
c) [ ] O pino PD4 deverá sempre ficar em NL1 e é OUTPUT
d) [ X ] O pino PD4 deverá sempre ficar em NL0 e é OUTPUT

3) (1,5) Observe o trecho a seguir em C:


#if (DCC_BIT_SAMPLE_PERIOD > 254)
#error DCC_BIT_SAMPLE_PERIOD
#endif
Ele diz respeito a diretivas que são usadas em linguagem C. Para este caso em particular de trecho de
programa em C, para o ATMEGA 328A, podemos afirmar que
AULA 4 e 5 – COMENTADO EM EXERCICIO DE LABORATÓRIO
a) [ ] O DCC_BIT_SAMPLE_PERIOD deve ser de 2 bytes
b) [ X ] O DCC_BIT_SAMPLE_PERIOD não pode ser maior que 1 byte
c) [ ] O DCC_BIT_SAMPLE_PERIOD não pode ser maior que 2 bytes
d) [ ] O DCC_BIT_SAMPLE_PERIOD deve ser de 254

4) (1,0) Em C, a formatação é feita quando desejamos que um determinado valor apareça de maneira correta. A
linha de comando printf(“ O valor da leitura do conversor AD é %2.1f Volts”,leitura_AD); significa:
SLIDE 19 DA AULA 2
a) [ ] Que leitura_AD não pode ser maior que 2,1 Volts
b) [X ] Que leitura_AD tem dois dígitos inteiros e um digito após a casa decimal
c) [ ] Que leitura_AD tem dois dígitos na casa decimal e um digito inteiro
d) [ ] Que leitura_AD não pode ter valor inferior (por isso o f no comando) a 2,1 volts
5) (1,5) O ATMEGA328 possui três timers que podem ser de 8 bits ou 16 bits. Todos eles recebem o sinal de clock
que é gerado no oscilador interno. Se um cristal de 16 MHz for acoplado ao ATMEGA e programarmos um
prescaler de 1:64 no timer1 a frequência que este temporizador irá trabalhar é de:
SLIDE 26 da aula 6
a) [ ] 1,25 KHz
b) [ X ] 0,25 KHz  p/ 16 MHz o timer recebe 62,5 us x 64 = 0,004 seg ou seja 1/0,004 = 250 Hz ou 0,25 KHz
c) [ ] 6,4 KHz
d) [ ] 1 KHz

6) (1,5) Considere um ATMEGA328 com cristal de 16 MHz. Se programarmos um prescaler de 1:1024 no timer0,
de 8 bits, e carregarmos o valor inicial de 128, vamos gerar uma onda quadrada no pino T0 (pino do timer0) de
aproximadamente:
QUESTÃO CANCELADA POR PROBLEMA NA ELABORAÇÃO

Resposta  ((256-128)x1024))/16MHz =8,192 ms = 122 Hz

a) [ ] 61 Hz  esta resposta é a correta se o valor inicial do timer for 0. Como foi de 128, dobra a freq.
b) [ ] 1.024 Hz
c) [ ] 65.536 Hz
d) [ ] 16.384 Hz
Os pontos desta questão foram distribuídos nas outras questões, ou seja 1,5/6 = 0,25 para cada uma
Assim as questões têm agora os valores: 1) 1,25 2) 2,25 3) 1,75 4) 1,25 5) 1,75 7) 1,75 o que totaliza para
a prova  1,25+2,25+1,75+1,25+1,75+1,75 = 10.

7) (1,5) Observe o trecho de programa em C para um ATMEGA328 com cristal de 16 MHz. Considere o sistema
com interrupção ligado. (função sei()).
SLIDE 29 da aula 6
Void set_timer0(void) {
TCCR0A = (0<<WGM00); // Modo 0 – modo normal em 8 bits
TCCRB = (0b011 << CS00); // start timer com prescaler 64
TCNT0 = 256-250; // contagem do timer
}
..
..
ISR(INT0_vect)
{
PORTB0 = ~PORTB0;
}
Neste caso a onda gerada no pino PORTB0 será de :
a) [ ] 16.384 Hz
b) [ ] 6 Hz
c) [ ] 61 Hz
d) [ X ] 500 Hz  (64 x250)/16 MHz = 1 ms ou 1KHz como a onda tem inversão a cada tempo a frequência
cai pela metade ou seja 500 Hz.

Você também pode gostar