Ir ao conteúdo
  • Cadastre-se

Felipe Electronic

Membro Pleno
  • Total de itens

    3.320
  • Cadastrado em

  • Última visita

  • Qualificações

    0%

Reputação

168

Sobre Felipe Electronic

  • Data de Nascimento 3 de março

Informações gerais

  • Cidade e Estado
    Campinas
  • Sexo
    Masculino
  1. O Colega acima ja respondeu. Ambas as formas são válidas do ponto de vista de OBEDECER A SINTAXE da linguagem, do ponto de vista de desenvolvimento vai depender muito mais da aplicação de das restrições de alocação de memória que você tiver, por exemplo ao usar o operador new, a memoria alocada vem de uma região chamada heap, e mesmo que você aloque memoria dentro de uma função, com o new, sem dar delete depois do uso aquela memoria ficará alocada e sem condições de ser reutilizada, sendo de um modo geral pouco recomendado o seu uso (existem momentos certos para o uso de alocação dinamica com
  2. Só um ponto pra não esquecer, se você fornecer a imagem .hex do seu programa, deve COMBINAR ela com o bootloader do arduino em questão, caso contrario, se o utilizador gravar o programa inadvertidamente, ele não terá como recuperar o arduino sem antes gravar o bootloader. Mas aqui fica minha curiosidade, porque distribuir o .hex de uma plataforma tão reusável quanto o arduino? Você pode adicionar os fontes das bibliotecas necessárias de forma local para evitar problemas com dependencia externa. Outro ponto o .hex não garante que o programa funcione, pois ele foi compilado para determinad
  3. @Luan Borges, bem vindo ao mundo dos MCUS acima de 8bits, as coisas daqui pra frente mudam um pouco quando comparados com os MCUs de 8bits, e a primeira coisa que você deve entender é que, agora os periféricos são fisicamente separados dos pinos de I/O. O que isso significa? Que basicamente agora você tem duas tarefas em vez de uma, ao mexer com um periférico em nível de registrador, a primeira é configurar o periferico em si, a segunda é rotear os sinais de saida do periferico no pino que ele suporta. No seu caso específico voce precisa configurar o PWM escolhendo um dos 5 timers dispon
  4. @luizfelipecss, cara muito legal essas launchpad C2000, eu particularmente adoro essa familia de MCU com cara de DSP da TI, com qual familia está mexendo? Delfino ou Piccolo? Uma coisa que gosto de fazer com esses micros é não perder tempo codando em C, mas programar utilizando modelagem, como por exemplo o embedded coder do MATLAB que consegue gerar a firmware para os C2000 direto de modelos do simulink com simulação (e plottings em tempo real!), vale a pena dar uma conferida. Curiosidade, qual o proposito do conversor boost + controle PI? considerou utilizar compensadores como 2P2Z?
  5. @Paola Costa, tudo bem? Que tal começar dividindo seu problemão em problemas menores? Veja sua coqueteleira precisa: 1 - Receber o comando para fazer um drink; 2 - ler o sensor de posição para saber debaixo de qual garrafa está; 3 - planejar o movimento do servo para acessar as garrafas desejadas; 4 - comandar o motor ate a garrfa desejada ou seja : 5 - aciionar o motor ate que o sensor da garrafa desejada acione; 6 - abre a valvula por n segundos; 7 - repetir 4, 5, 6 até passar por todas as garrafas desejadas 8 - mover o drink para ser retirado e aguardar novo comando..
  6. Esse problema tem algumas diferentes formas de se resolver, um meio fácil seria concatenar o nome da pessoa a um nome de arquivo comum, por exemplo cadastro_joao, cadastro_maria, isso pode ser feito sem dores usando a função strcat() (de string.h) que concatena duas strings, com resultado do strcat tu abre / cria um arquivo com a string resultante, o problema dessa solução é que dois nomes iguais podem gerar arquivos iguais, sendo uma outra opção incrementar um contador interno (salvo em outro arquivo) e adicionar ele no nome do arquivo, depois disso incremente-o. Links para ajudar com strc
  7. Temos alguns problemas de formulação na sua solução: 1 - para printar os 10 ultimos valores do vetor, é necessário que o vetor tenha size = 10 pelo menos, seria legal checar os parametros da função antes de começar, caso contrario voce pode gerar um buffer overflow e crashar seu programa; 2 - entendi o fato de usar um pointeiro para o vetor, ok, super valido, mas por que o tamanho vocês está passando via vetor? porque não um int mesmo contendo o tamanho do vetor? 3 - A tua função não funciona para vetores maiores que 10, o ideal seria obter o tamanho do vetor, subtrair 10, e incializ
  8. Pelo code style me parece que você está a usar a famigerada API do windows certo? Um ponto é que vai ser meio difícil mexer com esse bicho ai sem entender os fundamentos de como acessar um device no windowss sugiro começar pegando a documentação da função, isso pode ser facilmente feito pesquisando diretamente pelo nome dela, segue o link: https://docs.microsoft.com/en-us/windows/console/readconsoleinput Esse loop ai fica esperando que 1 elemento do tipo de ir_func seja recebido pelo stdin, que geralmente é o console do windows (e não o mouse) essa função é blocking, ou seja, ela vai entra
  9. VERDADE! isso que da ficar muito tempo sem mexer com CPP, o veio aqui perdeu a mão Acho bem curioso o fato do struct e o class serem iguais apenas mudando seus defaults, no struct é tudo publico no class tudo privado, me parece questão de semântica (ou legacy do C)
  10. Isso, o Arduino não é só para aquele cara que quer um projeto rápido, é também para o iniciante mais curioso, a quantidade de coisa desenvolvida e validada pela comunidade é enorme, além disso o ecossistema tem vários sabores, com várias particularidades mas tudo sempre usando as Arduino core libraries, se achar ruim tu pode programar em C ou mesmo em inline assembly, o Arduino não impede você disso o que faz dele digamos assim bem elástico, seja você iniciante ou não. Esses dias mesmo recebi um Arduino Vidor, que é constituido de um ARM e uma FPGA e advinha, você pode sair fazendo hardware
  11. @Isadora Ferraz, tem até distribuidor oficial nacional dos chips das Espressif, a Intel ta usando uma variante do core deles (o Tensilica) como base para processador de Audio HIFI. Segue link do distribuidor BR (e é distribuidor bão): http://www.macnicadhw.com.br/produtos/semicondutores
  12. Na verdade até da pra fazer fora da main, em C++ até os construtores invocados rodam código fora da main sem aparente definição de função (tem a mágica do startup code ai, mas isso eh outra história), bastaria fazer um early initialize assim; struct ab { string nome }; struct ab x[5] = {{"fulano"}, {"siclano"},{"nomefeio"}, {"nomebonito"}, {"bla"}}; Além disso faltou o struct antes do x, o erro de typename está ocorrendo porque "ab" não é um tipo, "struct ab" é um tipo, toda variavel deve ser precedida atraves de um tipo valido ou uma struct, alternativamente daria pra fazer
  13. Acho que os colegas ja responderam com os investimentos, deixe - me complementar apenas com uma coisa algo que me chamou a atenção sobre o fato de algo que vai durar na sua experiência. Foque nos conceitos e não no dispositivo, usar PIC, AVR, ST ou mesmo Arduino vão te levar a praticamente aos mesmos caminhos com pequenas diferenças em termos de dificuldade e produtividade, ao começar no mundo dos sistemas embarcados você sempre vai precisar entender um pouquinho de aspectos de dispositivo de forma genérica, Ex.: Um periferico de timer é praticamente o mesmo independente do device, foque em
  14. @aphawk, é bom estar de volta. Nada, dropei o doutorado depois de 2 anos, cansei dessa vida, quero mesmo passar o tempo fazendo meus projetinhos pessoais e ganhando a vida com o que der. Falando de ensino, nos ultimos anos em que estive fora muita coisa aconteceu na vida profissional que me abriu demais a mente, e hoje entendo perfeitamente algo que li seu: "Não importa a cor do gato, desde que coma o rato". Em Basic, C, Java, Javascript (atenção pra esse novo queridinho que ta rodando em tudo que é microcontrolador), não importa a linguagem as dúvidas estão residindo nos conceitos e é c
  15. como mencionado pelo @isrnick, isso está acontecendo pois o compilador entendeu que independente de colocar o incremento ou simplesmente atribuir o valor, o resultado será o mesmo, assim ele sempre vai partir pra abordagem de reduzir o número de instruções para um mesmo resultado, é a chamada otimização, que por default (considerando um GCC) é -O3 que sai otimizando tudo que ele achar redundante.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

minicurso-montagem-popup.jpg

MINICURSO GRÁTIS!

Como ganhar dinheiro montando computadores!

CLIQUE AQUI E INSCREVA-SE AGORA MESMO!