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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 61: Linha 61:
 
*[[ESTE:_GPIO_and_External_Interrupts_-_part_1 |  Lab 05: GPIO and External Interrupts - part 1]]
 
*[[ESTE:_GPIO_and_External_Interrupts_-_part_1 |  Lab 05: GPIO and External Interrupts - part 1]]
 
*[[ESTE:_GPIO_and_External_Interrupts_-_part_2 |  Lab 06: GPIO and External Interrupts - part 2]]
 
*[[ESTE:_GPIO_and_External_Interrupts_-_part_2 |  Lab 06: GPIO and External Interrupts - part 2]]
 +
 +
= (27/08/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++]

Edição das 20h45min de 26 de agosto de 2018

Sistemas Embarcados

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


Aula 1 (30/07/2018) – Apresentação


Aula 2 (01/08/2018) – Introdução

Aula 3 (06/08/2018) – GPIO

Aula 4 (08/08/2018) – UART


Aula 5 (13/08/2018) – ADC

  • Notas de Aula:


(15/08/2018) – ADC (cont.)

(20/08/2018) – PWM


  • 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 uma mensagem pela serial.


(22/08/2018) – Interrupções

(27/08/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