Mudanças entre as edições de "STE29008-2018-2"
Ir para navegação
Ir para pesquisar
Linha 130: | Linha 130: | ||
= (12/10/2018) – Debug = | = (12/10/2018) – Debug = | ||
* Debug plataforma Atmega2560 | * Debug plataforma Atmega2560 | ||
+ | |||
+ | |||
+ | |||
+ | #include <avr/io.h> | ||
+ | #include <util/delay.h> | ||
+ | |||
+ | int main(){ | ||
+ | UCSR0B = 0; | ||
+ | |||
+ | DDRB = 0xFF; | ||
+ | DDRE = 0xFF; | ||
+ | while(1){ | ||
+ | PORTB = 0x00; | ||
+ | PORTE = 0x00; | ||
+ | _delay_ms(1000); | ||
+ | PORTB = 0xFF; | ||
+ | PORTE = 0xFF; | ||
+ | _delay_ms(1000); | ||
+ | |||
+ | } | ||
+ | |||
+ | return 1; | ||
+ | } |
Edição das 07h57min de 12 de setembro 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 Mega --> ATmega2560 (Ex.: I/O Ports)
- Esquemático Arduino Mega
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++
Atividade
Re-implementar as seguintes atividades usando C++ e AVR-Libc:
- Lab 01: GPIO - Hello LED
- Lab 02: UART - Serial Communication
- Lab 04: UART - ADC e Sensor Reading
- Lab 07: GPIO and External Interrupts - part 1
- Lab 08: GPIO and External Interrupts - part 2
Entregar:
- Código fonte
- Relatório apresentando principais registradores utilizados para cada atividade.
(29/08/2018) – Auxílio Atividade (Teste GPIO)
(03/10/2018) – Auxílio Atividade (Serial)
- Análise dos registradores de controle
- Funcionamento bloqueante da Serial
(05/10/2018) – Auxílio Atividade (Interrupção)
(09/10/2018) – Aula cancelada
- Aula cancelada devido a troca pelo horário de sexta-feira
(12/10/2018) – Debug
- Debug plataforma Atmega2560
- include <avr/io.h>
- include <util/delay.h>
int main(){ UCSR0B = 0;
DDRB = 0xFF; DDRE = 0xFF; while(1){ PORTB = 0x00; PORTE = 0x00; _delay_ms(1000); PORTB = 0xFF; PORTE = 0xFF; _delay_ms(1000);
}
return 1; }