Escolar Documentos
Profissional Documentos
Cultura Documentos
TECNOLÓGICA FEDERAL DO PARANÁ
DEPARTAMENTO ACADÊMICO DE ELETRÔNICA
CURSO TÉCNICO DE NÍVEL MÉDIO INTEGRADO – ELETRÔNICA
DISCIPLINA DE MICROCONTROLADORES 2 (EL08D)
PROFESSOR GABRIEL KOVALHUK
Lista de exercícios de linguagem C para microcontroladores
Observações: 1. Para esta lista de exercícios não é permitido o uso das bibliotecas, ou seja não é
possível usar funções como printf e sprintf.
2. Escreva os programa usando a função main apenas para chamar as funções que
executam o que foi pedido nos exercícios.
3. Estes exercícios não valem nota, mas geram uma base de conhecimento que
será usada nas Atividades Práticas e poderão ser usadas no projeto final, que
valem nota.
1. Escreva um programa em linguagem C para fazer a conversão de temperatura em graus
Celsius para Farenheit. A conversão deve ser feita em uma função separada, onde o valor
da temperatura em graus Celsius deve ser passada como parâmetro e a função retorna o
valor da temperatura em Farenheit.
2. Escreva uma função em C que receba como parâmetro um valor inteiro e retorne uma string
representando o valor inteiro.
3. Escreva uma função em C que receba como parâmetro um valor tipo float e retorne uma
string representando o valor tipo float.
4. Escreva uma função em C que receba como parâmetro uma string representando um valor
inteiro e retorne um valor inteiro.
5. Assumindo que o PORT_1 do MSP430 está configurado como saída digital e sabendose
que o valor presente em cada pino e dado pelo conteúdo do registrador P1OUT, escreva um
programa em linguagem C que faça com que os pinos do PORT_1 sejam ativados (em nível
1) sequencialmente.
Observação: no MSP430 nao é possivel escrever valores individuais no bits dos
registradores. Para se fazer isto é necessário usar máscaras. Por exemplo: para escrever
um valor “1” no pino P1.3, sem alterar o valor dos demais pinos usase a seguinte linha de
código:
P1OUT |= 0x08;
ou
P1OUT |= BIT3;
onde BIT3 é uma constante definida em “io430.h” e em “msp430g2553.h”
6. Assumindo que o PORT_1 do MSP430 está configurado como entrada digital, com resistor
de pullup e sabendose que o valor presente em cada pino e lido através do registrador
P1IN, escreva um programa em linguagem C que gere um valor inteiro entre 0 e 7 indicando
o pino ativo de maior valor (tipo um codificador com prioridade). Assuma que o pino P1.0 é o
pino de menor valor e o pino P1.7 e o pino de maior valor.
7. Um conversor AD de 8 bits apresenta valores entre 0 e 255 para uma faixa de tensão de
entrada entre 0 e 3,3v. Um sistema deve gerar um sinal PWM com frequência de 20Hz,
onde o tempo em alto deve variar na faixa de 10ms a 35ms proporcionalmente ao valor da
tensão de entrada. Assim, quando a tensão de entrada for 0v o tempo em alto do PWM
deverá ser de 10ms e quando a tensão de entrada for de 3,3v o tempo em alto do PWM
deverá ser de 35ms. Assumindo que o tempo em alto do PWM é armazenado em uma
variável com o valor em ms (um tempo de 10ms é simplesmente 10 na variável), escreva
uma função que faça a conversão do valor do ADC para o valor do PWM.
8. O conversor AD obtém um valor entre 0 e 1023 representando uma tensão entre 0 e 3,3v.
Sabendose que esta tensão é obtida de um resistor de 10 ohms, escreva uma função em C
para converter o valor obtido pelo conversor AD em uma string contendo o valor da corrente
que passa pelo resistor.
Bom trabalho!