aps2-embarcados's Introduction
aps2-embarcados's People
aps2-embarcados's Issues
código morto / comentado sem uso
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Lines 529 to 531 in a78e79f
Ideal seria remover, e se um dia precisasse recuperar via git
Números mágicos de coordenada. Ideal seria arquivo separado com define gui.h para customizar.
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Line 459 in a78e79f
Poderia ser um if só
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Lines 741 to 745 in a78e79f
if(locked && ! isDrawn) {
Vetor constante (não muda num. ou elementos), poderia declarar com const
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Lines 732 to 733 in a78e79f
Cenário 1 parcialmente atendido. Ao abrir a porta, a lavagem continua, podendo ser um risco ao usuário e a criança
Cuidado com o tipo Bool. Não existe booleano em C.
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Lines 172 to 182 in a78e79f
Em C, não é definido o tipo booleano (verdadeiro ou falso) em seu padrão.
Se você utilizar o Atmel Studio e clicar em Go To Definition em cima do Bool e nos valores 'true' e 'false'
Irá descobrir que nas bibliotecas tem:
typedef unsigned char Bool; //!< Boolean.
#define true 1
#define false 0
Portanto, na verdade o Bool utilizado nao passa de um unsigned char (8-bits).
E qual o problema disso?
Bem, imagine que por algum motivo alguém faça o seguinte código.
Bool teste = false;
teste++;
Ou ainda teste = 3;
if(teste == true) { // ISTO FALHA pois true é 1
if(teste) { // Isto execute, pois C verifica se teste != 0
O código acima compila sem warnings e ainda te mascara do erro (true = 1). Por este motivo, este Bool existe por conveniência, mas pode te mascarar de alguns erros.
Não está errado utiliza-lo, mas é desencorajado por muitos.
Pode ser trocado literalmente por
uint8_t teste = 0u;
if(teste) { // teste != 0
if(!teste) { // teste = 0
Neste caso, você sabe que são 8-bits, mas o que importa pra você é se é 0 (falso) ou diferente de zero (verdadeiro).
Números mágicos de coordenada. Ideal seria arquivo separado com define gui.h para customizar.
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Lines 668 to 670 in a78e79f
Structs não deixam de ser variáveis, deveriam vir após ou antes das outras variáveis
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Lines 277 to 295 in a78e79f
Variável declarada duas vezes
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Line 840 in a78e79f
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Line 712 in a78e79f
Variável global declarada não sendo utilizada no programa
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Line 175 in a78e79f
Número mágico do status do touch, poderia ter sido feito um define para tentar descrever o que quer dizer
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Line 546 in a78e79f
Tempo de delay poderia ser um define DELAY_TOUCH_IN_MS (por exemplo).
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Line 308 in a78e79f
Não atende Cenário 2. Ao travar a tela, não é possível acompanhar o progresso da lavagem, poderia pelo menos mostrar o tempo faltando.
Executa função antes de inicializar placa (board_init), poderia ocorrer o evento do WatchDog alem de outros problemas
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Line 711 in a78e79f
Quando se usa uma atribuição de uma variável com uma função, a função é executada, como se tivesse chamado no código. O problema é que desta forma a função está sendo chamada antes mesmo de executar o board_init do projeto, no board_init controla diversos aspectos essenciais da placa (como Clock e Watchdog) e este deveria ser executado sempre antes de qualquer processamento.
Variável só é utilizada na função main, não precisaria ser global, nem volatile
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Line 176 in a78e79f
Ideal dividir este trecho longo em diversas funções menores (ex. check_door, calc_total_time,draw_remaning_time...)
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Lines 736 to 890 in a78e79f
Variável só é utilizada na função main, não precisaria ser global, nem volatile
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Lines 180 to 187 in a78e79f
Só utiliza interrupção de alarme, porque verifica por seg?
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Lines 238 to 242 in a78e79f
Variável só é utilizada na função main, não precisaria ser global, nem volatile
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Line 181 in a78e79f
Poderia virar um switch para ficar mais legível
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Lines 782 to 806 in a78e79f
Exemplo:
uint32_t temp = tipo_lavagem%5;
switch(temp) {
case 0:
...
}
Só utiliza interrupção de alarme, não precisa verificar condição de incremento do RTT
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Lines 267 to 269 in a78e79f
Variável e número mágico, o que i e 2 significam?
APS2-Embarcados/MXT_EXAMPLE_USART1/src/main.c
Line 541 in a78e79f
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.