Mudanças entre as edições de "STE29008-2019-1"
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
- Apresentação do professor.
- Apresentação da disciplina.
- 2017 Embedded Markets Study
15/02/2019 – Introdução
- Notas de Aula:
20/02/2019 – Experimento GPIO
- Experimentos:
22/02/2019 – Experimento UART
27/02/2019 – ADC
- Finalizar o UART mestre escravo
- Consulta:
- Experimentos:
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.
- Notas de Aula:
- Experimentos:
- Referências:
08/03/2019 – Usando C++
Mudança de nível de abstração
- Arduino Mega --> ATmega2560 (Ex.: I/O Ports)
- Esquemático Arduino Mega
- Esquemático Arduino Mega - CLONE
Fonte: https://www.arduino.cc/en/Hacking/PinMapping2560
ATmega2560: I/O Ports
- Tabela verdade de configuração das portas:
- Endereços registradores de I/O:
GCC, avr-libc
- avr-libc
- A simple Project
- Eclipse IDE Neon.2 para Linux 64-bits (última atualização em 24/02/2017) - Mantido pelo Prof. Arliones.
Prática
- Implemente um programa usando GCC e avr-libc para ligar um led quando um botão for pressionado (exemplo)
- Operação de Bits em C/C++
- Operações Booleanas em C/C++
- Programming 101 - By Eric Weddington