Skip to content

Commit

Permalink
update lab 8
Browse files Browse the repository at this point in the history
  • Loading branch information
rafaelcorsi committed Nov 27, 2023
1 parent 675aa91 commit 213ee24
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 23 deletions.
36 changes: 14 additions & 22 deletions docs-src/navigation/Labs/Lab_TC_RTC_RTT/Lab-TC-RTC-RTT.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
# LAB - TC - RTC - RTT
# Lab 8 - TC - RTC - RTT

Neste laboratório iremos trabalhar com os periféricos de contagem de tempo
do nosso microcontrolador.

| **Pastas:** `/Lab8-RTOS-TC-RTC-RTT` |
|------------------------------------------------------|
| **Data <span style="color:red">LIMITE</span> para entrega:** `{{lab08_deadline}}`|
| Lab 5 |
|------------------------------------------------------------------------------------|
| **Data limite para entrega**: =={{lab08_deadline}}== |
| Entregue o código pelo repositório do ==[Classroom]({{lab08_classroom}})== |
| Preencha para entregar ==[Google forms]({{lab08_forms}})== |

Os periféricos apresentados neste laboratório são:

- Real Time Clock - RTC
- Timer Counter - TC
- Real Time Timer - RTT

O laboratório é formado por duas partes:

- Parte 1 (mínimo):
1. Entender os exemplos (TC/RTT/RTC)
1. Entender os exemplos (TC/RTC)
1. Incorporar todos os exemplos em um único projeto
1. Pisca pisca

Expand All @@ -27,9 +28,6 @@ O laboratório é formado por duas partes:

## Exemplos

!!! warning "SAME70-examples"
Antes de continuar atualize o repositório de exemplos ele foi atualizado logo antes do lab!

Nesse lab iremos trabalhar com três periféricos que lidam com "tempo": o TimerCounter (TC) que temos no total de quatro unidades TC (TC0 ~ TC3) e cada um com três contadores; o Real-time Timer (RTT) que só temos um e o Real-time Clock (RTC) que também só temos um e funciona como um relógio/calendário.

Um pouco mais sobre os periféricos:
Expand All @@ -43,13 +41,12 @@ Nós fornecemos para cada periférico um exemplo diferente:
| Periférico exemplos |
| ---------- ---- |
| [`Perifericos/TC-IRQ `](https://github.com/Insper/SAME70-examples/tree/master/Perifericos-uC/TC-IRQ) |
| [`Perifericos/RTT-IRQ`](https://github.com/Insper/SAME70-examples/tree/master/Perifericos-uC/RTT-IRQ) |
| [`Perifericos/RTC-IRQ`](https://github.com/Insper/SAME70-examples/tree/master/Perifericos-uC/RTC-IRQ) |

Cada exemplo possui o seu próprio `README` que explica de forma ampla os periféricos. Note que todos esses exemplos estão operando por interrupção! Onde cada periférico possui o seu `handler` para resolver a interrupção.

!!! exercise self
Para cada exemplo (TC, RTT e RTC):
Para cada exemplo (TC, RTC):

1. Leia o README
1. Programe a placa (e veja os LEDs piscando!)
Expand Down Expand Up @@ -230,11 +227,11 @@ Cada exemplo possui o seu próprio `README` que explica de forma ampla os perif

## Lab

O lab faz uso da placa `OLED1` e de um código exemplo. Para começar você deve copiar o código exemplo: [`SAME70-examples/Screens/RTOS-OLED-Xplained-Pro-SPI/`](https://github.com/Insper/SAME70-examples/tree/master/Screens/RTOS-OLED-Xplained-Pro-SPI) para a pasta da entrega do seu repositório `Lab7-TC-RTC-RTT`.

!!! info
Lembre de sempre utilizar fila ou semáforo para comunicar **IRQ** e **TASK**

Use o código fornecido no repositório: `RTOS-OLED-Xplained-Pro`.

### Conceito C

Com o código do OLED1 copiado, vocês devem configurar os botões e os LEDs da placa OLED e então utilizando os periféricos fazer:
Expand All @@ -243,8 +240,6 @@ Com o código do OLED1 copiado, vocês devem configurar os botões e os LEDs da
- Fazer com que o `LED2` pisque a uma frequência de 0.25Hz, para isso utilize o **RTT**;
- Piscar o `LED3` depois de 20 segundos do botão 1 da placa OLED ter sido pressionado, para isso utilize o alarme do RTC.

Lembre de fazer o uC entrar em sleepmode sempre que não tiver nada para fazer.

!!! tip
Abrir o código atual e o exemplo e ir trazendo as funções e defines que precisa usar, não esqueça de chamar as funções no `main`.

Expand Down Expand Up @@ -303,17 +298,14 @@ Lembre de fazer o uC entrar em sleepmode sempre que não tiver nada para fazer.
```

!!! warning
Você nunca deve atualizar display dentro de interrupção (**handler**)! Sempre no main.


Você nunca deve atualizar display dentro de interrupção (**handler**)! Sempre na task!.

### Conceito B: Melhorando

!!! exercise
Quando o botão 1 da placa OLED for pressionado, após 20 segundos, faça o LED 3 piscar com um novo TC, **substituindo essa função que antes era do RTC**.

### Conceito A:
TODO: talvez: ajustar alarme via botoes?

<!-- !!! info "Ao terminar o lab preencha:"
<iframe src="https://docs.google.com/forms/d/e/1FAIpQLSfLNBnwsHY6NGCnJqAfeoEgDq5n5ZySeu0x9NUeSQWiQV43xQ/viewform?embedded=true" width="640" height="800" frameborder="0" marginheight="0" marginwidth="0">Carregando…</iframe> -->

!!! exercise
Usando os botões do OLED, permita ajustar a hora e o minuto!
2 changes: 1 addition & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ extra:
lab07_classroom: https://classroom.github.com/a/Rl7NKjIh
lab07_forms: https://docs.google.com/forms/d/e/1FAIpQLSdaItc1IebfgUT0CikaDpcl88EmF9WpkJmYE4ZTr63R7Vbzzw/viewform?usp=sf_link

lab08_deadline: 13/11/2023
lab08_deadline: 01/12/2023
lab08_classroom: TBD
lab08_forms: https://docs.google.com/forms/d/e/1FAIpQLScx-alJICVPLDiV9tf_gAUZCRmYkU5XC5L0kH5MUq3jnFMGAQ/viewform?usp=sf_link

Expand Down

0 comments on commit 213ee24

Please sign in to comment.