• Nenhum resultado encontrado

7 6 5 4 3 2 1 0 Porta D bits: UNIFEI

N/A
N/A
Protected

Academic year: 2022

Share "7 6 5 4 3 2 1 0 Porta D bits: UNIFEI"

Copied!
3
0
0

Texto

(1)

UNIFEI

Universidade Federal de Itajubá

Instituto de Engenharia de Sistemas e Tecnologias da Informação ­ IESTI 1a Prova de ELT024 – Programação para Sistemas Embarcados

Prof. Rodrigo Maximiano Antunes de Almeida

(10 pts Questão 1) Para que serve a região de memória conhecida como vetor de interrupção?

Resposta questão 1:

A região de memória conhecida como vetor de interrupção indica onde o sistema deve ir no  caso de uma interrupção ou reset.

(20 pts Questão 2) O bit na posição i da variável não  sinalizada de 8 bits TRISD controla o sentido dos dados  da porta D. Um bit com número 0 (zero) significa que  aquele   terminal   é   de   saída.   Um   bit   com   número   1  significa   que   aquele   terminal   é   de   entrada.   Configure  TRISD para o circuito ao lado. Apresente o valor de TRISD  em binário, hexadecimal e decimal. Considere que os LED's  são dispositivos de saída e as chaves dispositivos de entrada.

Resposta questão 2:

Binário: 0b00010110 Hexadecimal: 0x16 Decimal: 22

(20 pts Questão 3) Num dado sistema, a posição de memória 0xF34 está ligado a um sensor  de corrente, que retorna um valor sinalizado de 8 bits. Sabendo que a tensão do sistema é sempre  constante em 10 volts, crie uma função que retorne o valor da resistência. Cuidado com o valor  de corrente, pois pode assumir o valor zero ou negativo, Tome as devidas precauções para evitar  erros de cálculo. A resistência é sempre positiva. Formula da resistência: R=V÷I .

#define VAR (*(unsigned char*)0x00) //exemplo de variável de 8 bits para endereço 0x00

Resposta questão 3:

#define CORRENTE (*(signed char*)0xF34) signed char CalculaResistência(void){

if (CORRENTE>0){

return (10/CORRENTE);

}

if (CORRENTE<0){

return (-10/CORRENTE);

}

if (CORRENTE==0){

return -1; //erro no cálculo, divisão por zero }

}

Porta D bits:

7 6 5 4 3 2 1 0

(2)

(25 pts Questão 4) Existe uma variável não sinalizada com 16 bits com o nome “TECLADO”. 

Cada bit representa uma tecla física. Construa um programa cíclico que verifica quais teclas estão  pressionadas. Para cada tecla pressionada o programa deve escrever o número dessa tecla no LCD. 

Para isso use a função “printf()”.

#define BitTst(var,pos) (var&(1<<pos)) Resposta questão 4:

void main (void) interrupt 0 { char i;

for(;;){

for(i=0;i<16;i++){

if(BitTst(TECLADO,i){

printf(“%d”,i);

} }

} }

(25 pts Questão 5) Crie uma biblioteca em linguagem C que controle a temperatura de um  sistema. A biblioteca deve possuir três funções, uma para ligar o sistema, uma para configurar a  temperatura desejada e uma para atualizar a operação. Abaixo um  exemplo  de arquivo main.c  que usa a biblioteca. (Não é necessário fazer o main.c)

#include “temp.h”

void main (void) interrupt 0 { LigarSistTemp();

ConfiguraTemperatura(50);

for(;;){

AtualizaOperaçãoTemperatura();

} }

Obs.: É possível ler a temperatura através da função “char LerTemperatura(void);” que retorna  um   valor   de   0º   à   +100º   C.   Existe   um   aquecedor   que   é   ligado   com   a   função   “void  AtivarAquecedor(char val);” que deve receber um valor de 0 à 100%.

Resposta questão 5:

//config.h

#ifndef CONFIG_H

#define CONFIG_H

void LigarSistTemp(void);

void ConfiguraTemperatura(char temp);

void AtualizaOperaçãoTemperatura(void);

#endif //CONFIG_H

(3)

//config.c

//variavel estática que armazena a temperatura desejada static char temp;

void LigarSistTemp(void){

temp = 0; //reseta temp desejada

AtivarAquecedor(0); //desliga aquecedor }

void ConfiguraTemperatura(char novaTemp){

temp = novaTemp;

}

void AtualizaOperaçãoTemperatura(void){

if (LerTemperatura()>temp){

AtivarAquecedor(0); //desliga aquecedor }

else{

AtivarAquecedor(100); //liga aquecedor }

}

Referências

Documentos relacionados

NAME / NOME CJ PAINEL COM PCB 120V P/LIQUIDIFICADOR BRLY QUANTITY / QUANTIDADE 1 CODE / CODIGO 118520-012-120 COMPATIBILITY / COMPATIBILIDADE 1 CODE / CODIGO

13 De modo geral, pode-se observar que o setor de linha branca enfrenta constantemente a sazonalidade do mercado, que é motivado por diversas datas

O trabalho de Ziul já teve destaque na mídia nacional diversas vezes, a exemplo da revista ‘Guitar Player’ brasileira (junho de 2010), a revista virtual GuitarLoad (janeiro de 2011),

Cassiane Chais, Universidade de Passo Fundo - UPF, Passo Fundo/RS [Brasil] Daniel Calbino Pinheiro, Universidade Federal de São João Del Rei - UFSJ, São João. Del

A infecção leva a formas sintomáticas em até 70% dos infectados, sendo suas formas clínicas, nos pacientes sintomáticos, divididas em três fases: aguda ou febril, com duração de

TRANSPORTE DOS ANIMAIS ATÉ O ABATEDOURO. a) O transporte dos animais vivos provenientes do manejo realizado sob qualquer sistema com fins comerciais até o abatedouro

Entre os assuntos que podiam provocar avaliações consideradas “erradas” pelos integralistas estavam: a relação entre o integralismo e o fascismo; a questão do

Se a readmissão ocorreu no segundo ano após o desligamento, destaca- ram-se os jovens com menos de 17 anos, com a 8ª série concluída ou ainda em andamento, remuneração média de um