Mudanças entre as edições de "STE29008-2018-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(18 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 64: Linha 64:
  
 
*[[ESTE:_Pulse_Width_Modulation_(PWM) | Lab 07: Pulse Width Modulation (PWM)]]
 
*[[ESTE:_Pulse_Width_Modulation_(PWM) | Lab 07: Pulse Width Modulation (PWM)]]
 +
 +
 +
= (06/04/2018) – Usando C++=
 +
 +
==Mudança de nível de abstração==
 +
*Arduino --> ATmega328p (Ex.: I/O Ports)
 +
 +
 +
[[Arquivo: portas_arduino_uno.png|300px]]
 +
 +
[[Arquivo:ATmega328p_pinout.png|600px]]
 +
 +
== ATmega328p:  I/O Ports==
 +
*[http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf Datasheet ATmega328p]
 +
*[http://www.avr-tutorials.com/digital/about-avr-8-bit-microcontrollers-digital-io-ports Resumo Portas]
 +
 +
 +
*Tabela verdade de configuração das portas:
 +
[[Arquivo:Port_Pin_Configurations.png|600px]]
 +
 +
 +
*Endereços registradores de I/O:
 +
[[Arquivo:io_registers_address.png|800px]]
 +
 +
==GCC, avr-libc==
 +
*[https://www.nongnu.org/avr-libc/ avr-libc]
 +
*[https://www.nongnu.org/avr-libc/user-manual/group__demo__project.html A simple Project]
 +
*[http://tele.sj.ifsc.edu.br/~arliones.hoeller/eclipse-neon2-x86_64.tar.bz2 Eclipse IDE Neon.2 para Linux 64-bits]  (última atualização em 24/02/2017) - Mantido pelo [[Arliones_Hoeller | Prof. Arliones]].
 +
 +
 +
[[Arquivo:Avr-gcc.png|800px]]
 +
 +
==Prática==
 +
*Implemente um programa usando GCC e avr-libc para ligar um led quando um botão for pressionado ([[ESTE:_General_Purpose_Input_and_Output_(GPIO)|exemplo]])
 +
*[https://www.geeksforgeeks.org/bitwise-hacks-for-competitive-programming/ Operação de Bits em C/C++]
 +
*[http://www.cplusplus.com/doc/boolean/ Operações Booleanas em C/C++]
 +
 +
 +
 +
= (09/04/2018) – GPIO: avr-libc =
 +
 +
= (13/04/2018) – GPIO: avr-libc (cont.) =
 +
 +
 +
= (16/04/2018) – Mapeamento em memória (GPIO_Port) =
 +
 +
= (20/04/2018) – Mapeamento em memória (GPIO_Port) =
 +
 +
= (23/04/2018) – Análise Eficiência de código (obj_dump) =
 +
 +
= (27/04/2018) – Serial e  Interrupção Externa =
 +
 +
Avaliação 1:
 +
* Implementar
 +
** Classe Serial (bloqueante)
 +
** Classe Interrupção Externa
 +
** Códigos de testes da classe
 +
** Entrega: 07/05 (via Moodle)
 +
 +
*Referências:
 +
** [http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf Datasheet ATmega328p]
 +
** [http://maxembedded.com/2013/09/the-usart-of-the-avr/#UARTnUSART USART AVR]
 +
** [https://sites.google.com/site/qeewiki/books/avr-guide/external-interrupts-on-the-atmega328 EXTINT]
 +
 +
= (04/05/2018) – Serial e  Interrupção Externa (cont.)=
 +
 +
 +
= (07/05/2018) – FIFO e Serial com FIFO=

Edição atual tal como às 15h08min de 7 de maio de 2018

Sistemas Embarcados

  • Professor: Roberto de Matos
  • Encontros: segundas e sextas às 13:30 no Laboratório de Programação.


Aula 1 (16/02/2018) – Apresentação

  • Apresentação do professor.
  • Apresentação dos alunos: Nome, perfil, preferências, etc.
  • Apresentação da disciplina.


(26/02/2018) – Mercado de Sistemas Embarcados


(02/03/2018) – Introdução a Sistemas Embarcados

(05/03/2018) – Introdução a Sistemas Embarcados


(09/03/2018) – Introdução a Sistemas Embarcados (cont.)

  • Notas de Aula:

(16/03/2018) – ADC (cont.)

  • Tarefa:
    • 1- Mudar a implementação da Leitura do ADC de "float" para "long" e verificar o ganho em memória de programa e dados.

(23/03/2018) – Interrupções

  • Desafio:
    • Usando Round Robin sem interrupções implementar um sistema com um LED e um botão. O sistema deve piscar o LED a cada 2 segundos e ao botão ser pressionado envia pela serial uma mensagem.
  • Round Robin com Interrupções
  • Interrupções (IRQ, ISR). Estudo de caso AVR.

(26/03/2018) – Interrupções


(02/04/2018) – PWM


(06/04/2018) – Usando C++

Mudança de nível de abstração

  • Arduino --> ATmega328p (Ex.: I/O Ports)


Portas arduino uno.png

ATmega328p pinout.png

ATmega328p: I/O Ports


  • Tabela verdade de configuração das portas:

Port Pin Configurations.png


  • Endereços registradores de I/O:

Io registers address.png

GCC, avr-libc


Avr-gcc.png

Prática


(09/04/2018) – GPIO: avr-libc

(13/04/2018) – GPIO: avr-libc (cont.)

(16/04/2018) – Mapeamento em memória (GPIO_Port)

(20/04/2018) – Mapeamento em memória (GPIO_Port)

(23/04/2018) – Análise Eficiência de código (obj_dump)

(27/04/2018) – Serial e Interrupção Externa

Avaliação 1:

  • Implementar
    • Classe Serial (bloqueante)
    • Classe Interrupção Externa
    • Códigos de testes da classe
    • Entrega: 07/05 (via Moodle)

(04/05/2018) – Serial e Interrupção Externa (cont.)

(07/05/2018) – FIFO e Serial com FIFO