aps1-embarcados's Introduction
aps1-embarcados's People
aps1-embarcados's Issues
Nomes de músicas, autoria
Faltou indicar o nome das músicas, autor/artista/cantor por questões de autoria.
Arquivo separado para as notas músicas
APS1-EMBARCADOS/musica/src/main.c
Lines 56 to 144 in 63b7244
Para ficar mais organizado, os defines das notas musicais poderiam ter sido feitos em um arquivo .h, tipo notes.h e serem incluídas com #include no main.c. Melhora a leitura e facilidade de manutenção do código.
Transformar trechos repetitivos de código em funções reutilizáveis
APS1-EMBARCADOS/musica/src/main.c
Lines 351 to 369 in 63b7244
No código principal podemos observar, no loop while(1) do main, onde ele faz a lógica para execução de uma das músicas.
Varias longos trechos de código repetitivos torna o entendimento do código bem mais complexo, dificulta inserir novas músicas, aumenta chance de erros em alterações de código.
Poderia haver uma função especifica para tocar a musica escolhida pelo usuário.
Além de deixar a função main mais limpa e organizada.
Acessando direto os PIOs ao invés de usar os defines de I/O
APS1-EMBARCADOS/musica/src/main.c
Line 287 in 63b7244
O ideal aqui é usar os defines de I/O no começo do arquivo, para que se um dia trocar, não ter que mudar manualmente no código todo.
Vetores constantes devem ser declarados com const
APS1-EMBARCADOS/musica/src/main.c
Lines 146 to 261 in 63b7244
Se a música é um vetor constante, ele deve ser declarado como constant:
const int musica[] = {...};
Isso faz com que o GCC aloque espaço na memória ROM e não na RAM. Nos uC temos geralmente muito mais ROM que RAM.
No nosso caso são 2M de FLASH (ROM) e apenas 300k de SRAM (RAM).
Autoria do texto: Rafael Corsi
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.