Mudanças entre as edições de "STE29008-2018-2"
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
- Apresentação do professor.
- Apresentação da disciplina.
- 2017 Embedded Markets Study
Aula 2 (01/08/2018) – Introdução
- Notas de Aula:
Aula 3 (06/08/2018) – GPIO
- Notas de Aula:
- Experimentos:
Aula 4 (08/08/2018) – UART
- Experimentos:
- Finalizar GPIO
- Lab 02: UART - Serial Communication
- Lab 03: UART - Master/Slave
Aula 5 (13/08/2018) – ADC
- Notas de Aula:
- Experimentos:
(15/08/2018) – ADC (cont.)
- Experimento:
(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)
ATmega328p: 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++