Вы находитесь на странице: 1из 6

CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER

ESCOLA SUPERIOR POLITÉCNICA


ENGENHARIA ELÉTRICA
SISTEMAS EMBARCADOS

ATIVIDADE PRÁTICA

MICHAEL RODRIGUES MASSOM 1322739


VAGNER MARTINS 1554094

PROFESSOR: VINICIUS BORIN

CURITIBA-PR
2020
Estabelecendo estrutura principal e bibliotecas

Antes de iniciarmos qualquer projeto, usaremos um esqueleto específico com os


seguintes itens:

#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"

Atividade 4
a) Fazer o Led vermelho piscar

Programa Base:
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
void main(void)
{
volatile uint32_t x;
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);//habilita o clock
de um periférico
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOF))//espera até o
clock ser habilitado
{
}
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1); //
Led Vermelho

while(1){
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0x2
for(x=0;x<200000;x++);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0x0);//apaga o
pino
for(x=0;x<200000;x++);//dellay
}
}
b) Aumentar a frequência que pisca o LED
Para isto foi diminuído o delay contidos nas linhas de “For”, com isto os ciclos entre uma
operação e outra ficaram mais rápidas, fazendo com que a frequência aumentasse, neste
item temos que cuidar para não aumentar demasiadamente a frequência ao ponto.
Para esta etapa foi utilizado da seguinte forma:
for(x=0;x<20000;x++);//dellay Com este tempo o Led picou tão rápido que ficou
quase imperceptível, quando alterado para:
for(x=0;x<90000;x++); ficou mais evidente os ciclos de on e Off do Led vermelho.

c) Piscar todos os Leds simultaneamente


Para esta etapa foi replicado a etapa anterior alterando apenas respectivos pinos

while(1){

GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0x2);


GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0x4);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 0x08);

for(x=0;x<90000;x

GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0x0);//apaga o pino


GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0x0);//apaga o pino
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 0x0);//apaga o pino

for(x=0;x<90000;x++);//dellay

d) Acender um único LED por vez na sequência: vermelho, verde, azul.

Para esta etapa, tendo em vista que foi solicitado apenas acender os Leds, acabamos por
deixar um tempo maior entre o processo de ligar, desta forma, podendo ser observado a
sequência de acendimento solicitada.

GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1); // Led Vermelho


GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2);// Led Azul
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_3);// Led Verde

while(1){

GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0x2);


for(x=0;x<900000;x++);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 0x08);
for(x=0;x<900000;x++);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0x4);
for(x=0;x<900000;x++);

}
Tarefa 5 – Escrever número no display de 7 segmentos

Conecte o display de 7 segmentos do kit de vocês (catodo comum) e faça-o piscar os números
de 0 até 9.

Realizar montagem conforme desenho disponibilizado.


Os números plotados estão mostrados na sequência:

Вам также может понравиться