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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 62: Linha 62:
 
** [https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/ attachInterrupt()]
 
** [https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/ attachInterrupt()]
 
** [https://www.arduino.cc/reference/en/language/functions/time/millis/ millis()]
 
** [https://www.arduino.cc/reference/en/language/functions/time/millis/ millis()]
 +
 +
 +
= 08/03/2019 – Usando C++=
 +
 +
==Mudança de nível de abstração==
 +
*Arduino Mega --> ATmega2560 (Ex.: I/O Ports)
 +
*[https://www.arduino.cc/en/uploads/Main/arduino-mega2560-schematic.pdf Esquemático Arduino Mega]
 +
*[https://robotdyn.com/pub/media/0G-00005641==MEGA-PRO-CH340GATmega2560/DOCS/Schematic==0G-00005641==MEGA-PRO-CH340GATmega2560.pdf Esquemático Arduino Mega - CLONE]
 +
 +
[[Arquivo: portas_arduino_MEGA.png|800px]]
 +
 +
 +
Fonte: https://www.arduino.cc/en/Hacking/PinMapping2560
 +
 +
<!-- [[Arquivo: portas_arduino_uno.png|300px]]
 +
[[Arquivo:ATmega328p_pinout.png|600px]] -->
 +
 +
== ATmega2560:  I/O Ports==
 +
*[http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf Datasheet ATmega2560]
 +
*[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_2560.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++]
 +
*[https://www.avrfreaks.net/forum/tut-c-bit-manipulation-aka-programming-101?name=PNphpBB2&file=viewtopic&t=37871 Programming 101 - By Eric Weddington]

Edição das 14h39min de 8 de março de 2019

Sistemas Embarcados

  • Professor: Roberto de Matos
  • Encontros: quartas às 13:30h e sextas às 15:40h no Laboratório CAD 1.


13/02/2019 – Apresentação


15/02/2019 – Introdução


20/02/2019 – Experimento GPIO

22/02/2019 – Experimento UART



27/02/2019 – ADC

  • Finalizar o UART mestre escravo

01/03/2019 – 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 uma mensagem pela serial.


08/03/2019 – Usando C++

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

Portas arduino MEGA.png


Fonte: https://www.arduino.cc/en/Hacking/PinMapping2560


ATmega2560: I/O Ports


  • Tabela verdade de configuração das portas:

Port Pin Configurations.png


  • Endereços registradores de I/O:

Io registers address 2560.png

GCC, avr-libc


Avr-gcc.png

Prática