Mudanças entre as edições de "STE29008-2018-1"
Ir para navegação
Ir para pesquisar
(16 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 66: | Linha 66: | ||
− | = (06/04/2018) – | + | = (06/04/2018) – Usando C++= |
− | * | + | ==Mudança de nível de abstração== |
+ | *Arduino --> ATmega328p (Ex.: I/O Ports) | ||
− | |||
− | * [https://www.nongnu.org/avr-libc/ avr-libc] | + | [[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
- Notas de Aula:
- Experimentos:
(09/03/2018) – Introdução a Sistemas Embarcados (cont.)
- Notas de Aula:
- Experimentos:
(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)
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++
(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: