"Pato novo" no CubeMX + TrueSTUDIO

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

"Pato novo" no CubeMX + TrueSTUDIO

Mensagempor RAWeigel » 19 Mar 2021 14:32

Olá Pessoal,
Estou tentando ainda me entender com as ferramentas da ST, que geram uma infinidade de arquivos e "coisas". Sejam pacientes (rs!)
Fazem alguns dias (estou meio devagar mesmo) que busco como verificar o STATUS de um FLAG da opção "External Event Mode with Rising/Falling edge trigger detection"

ARM_00.jpg


Não preciso utilizar uma interrupção, apenas sinalizar em algum lugar, que eu não sei onde mais buscar, se houve um evento em um determinado pino.
Alguém que já tenha utilizado esta opção pode me dar uma dica?
Você não está autorizado a ver ou baixar esse anexo.
Richard
Avatar do usuário
RAWeigel
Byte
 
Mensagens: 300
Registrado em: 11 Out 2006 16:14
Localização: Rio de Janeiro - RJ

Re: "Pato novo" no CubeMX + TrueSTUDIO

Mensagempor dreher » 21 Mar 2021 10:28

Pelo que entendi, seria só remover a configuração de interrupção e verificar o bit da interrupção no seu processo principal. No STM voce configura para a marcação da detecção das bordas e configura a interrupção em separado, que para voce não seria necessário. Ai altera a configuração do NVIC
dreher
Byte
 
Mensagens: 489
Registrado em: 12 Out 2006 11:10
Localização: Blumenau - SC

Re: "Pato novo" no CubeMX + TrueSTUDIO

Mensagempor sync » 23 Mar 2021 14:29

Colega
Se está começando com CubeMX e TrueStudio eu gostaria de sugerir que faça upgrade para o STM32CubeIDE, a ST unificou nessa IDE o CubeMX e a IDE do TrueStudio, o produto tem sido atualizado com frequência e já está na versão 1.60. Creio que ele importa o seu projeto sem problemas, quando puder, verifique/baixe o produto aqui:

https://www.st.com/en/development-tools ... beide.html
sync
Byte
 
Mensagens: 195
Registrado em: 04 Mai 2020 16:11

Re: "Pato novo" no CubeMX + TrueSTUDIO

Mensagempor RAWeigel » 24 Mar 2021 07:13

sync escreveu:Colega
Se está começando com CubeMX e TrueStudio eu gostaria de sugerir que faça upgrade para o STM32CubeIDE, a ST unificou nessa IDE o CubeMX e a IDE do TrueStudio, o produto tem sido atualizado com frequência e já está na versão 1.60. Creio que ele importa o seu projeto sem problemas, quando puder, verifique/baixe o produto aqui:
https://www.st.com/en/development-tools ... beide.html

Olá sync,
Eté vou testar, mas não creio que mude muita coisa, em relação a minha dúvida.
O que eu não acho em lugar nenhum é como verificar o FLAG de STATUS se um pino teve ou não um evento.

dreher escreveu:Pelo que entendi, seria só remover a configuração de interrupção e verificar o bit da interrupção no seu processo principal. No STM voce configura para a marcação da detecção das bordas e configura a interrupção em separado, que para voce não seria necessário. Ai altera a configuração do NVIC

Olá dreher,
Já pensei nisto também, ou seja, utilizar a INT sem ativa-la, mas se for assim, prefiro utilizar a INT de verdade.
Gostaria mesmo de usar as coisas certas
Richard
Avatar do usuário
RAWeigel
Byte
 
Mensagens: 300
Registrado em: 11 Out 2006 16:14
Localização: Rio de Janeiro - RJ

Re: "Pato novo" no CubeMX + TrueSTUDIO

Mensagempor dreher » 24 Mar 2021 07:55

RAWeigel escreveu:Olá dreher,
Já pensei nisto também, ou seja, utilizar a INT sem ativa-la, mas se for assim, prefiro utilizar a INT de verdade.
Gostaria mesmo de usar as coisas certas

eu acho mais certo usar a int e uma flag para marcar a interrupção, eu geralmente faço isso
dreher
Byte
 
Mensagens: 489
Registrado em: 12 Out 2006 11:10
Localização: Blumenau - SC

Re: "Pato novo" no CubeMX + TrueSTUDIO

Mensagempor KrafT » 24 Mar 2021 08:03

Grande Richard! Você que teve com o Renie tomando uma cerveja comigo em Volta Redonda em 2007, não?

Que bom que esta estudando essa arquitetura. A gente está adotando STM em um produto novo e a gente estabeleceu uma regra: "Doa o que doer, o HAL é sagrado." Por mais doloroso e muitas vezes inconveniente que seja usar o HAL provido pela fabricante, só em casos extremos, que ainda não aconteceram, a gente vai acessar o hardware de forma direta.

Essa é a minha sugestão. Use somente acesso ao hardware pelo HAL, mesmo que pareça desagradável num primeiro momento, mas no futuro o esforço será recompensado, pq vc herda toda a correção de bugs e as alterações de hardware, até troca de chip, são bem menos dolorosos.

Eu não trabalho com software no STM32 (eu só faço software de coisas bem pequenas) então não consigo ajudar na pergunta específica, mas fica aí a dica.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: "Pato novo" no CubeMX + TrueSTUDIO

Mensagempor RAWeigel » 24 Mar 2021 08:50

KrafT escreveu:Grande Richard! Você que teve com o Renie tomando uma cerveja comigo em Volta Redonda em 2007, não?.

Olá Kraft,
Lembro do nosso encontro.... mas não da cerveja (rs!)

Sobre o uso do HAL, já me rendi, mas o troço é muito grande (ui!) e mesmo consultando a documentação da ST, não achei como utilizar isto (Verificar um evento e não uma interrupção).
Como no RJ teremos um mega feriado, vou ver se com mais calma tento achar isto, mas é provável que faça uso das INT, que acho exemplos na internet.
Richard
Avatar do usuário
RAWeigel
Byte
 
Mensagens: 300
Registrado em: 11 Out 2006 16:14
Localização: Rio de Janeiro - RJ

Re: "Pato novo" no CubeMX + TrueSTUDIO

Mensagempor KrafT » 24 Mar 2021 09:05

Talvez você tenha que usar uma abordagem mais tradicional, mas que dê no resultado que você deseja. O mecanismo de interrupção dos ARM por si só já é um monstro e querer acessar e manusear "na unha" vai te judiar bastante. Mas creio que o amigo está no caminho certo, só questão de tempo para digerir tanta novidade. Cuidado com o Stackoverflow (o fórum). Tem muita gente lá que só quer se exibir e apresenta as soluções mais escabrosas possíveis. Mas é uma ótima fonte de consulta (a versão em inglês. parece que tem em português, mas nunca acessei).

Dizer que o HAL é um lixo e não deve ser utilizado, é como querer programar para Windows desenhando as janelas, botões, etc na unha. Conforme a complexidade nas camadas de baixo aumenta, se vc não se afastar do silício, vc não se torna produtivo. Para a gente que gosta de ferro de solda, é uma situação incômoda mas inevitável.

Eu uso o Code Configurator no PIC e me arrependo de cada vez que eu burlei ele, pq depois para dar manutenção no código, todo o (suposto) ganho de tempo que tive, eu perdi.

Se tu ainda tiver contato com o Renie, manda um abraço para ele. Diz para ele largar de ser marceneiro e voltar a dar aula Kicad para gente.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: "Pato novo" no CubeMX + TrueSTUDIO

Mensagempor RAWeigel » 25 Jul 2021 18:36

Olá Pessoal,
Depois de um tempo afastado por problemas de visão 8) , estou tentado voltar ao caso da interface USB com o STM32F103... (blue pill) e os programas do fabricante (STM32CubeMX e Atolic TrueStudio).
Ainda pretendo utilizar o tal do HAL, mas como o resultado gera uma infinidade de arquivos, fico perdido em como achar e "amarrar" as coisas.
O que eu gostaria de fazer seria:
Na hora do "boot" (plugar o dispositivo), dependendo do status de um pino de entrada, eu selecionar uma opção no descriptor USB para meu joystick ter 2 ou 4 botões.
Já tentei algumas coisas (na verdade, muitas), mas basicamente não consigo fazer o arquivo com o descriptor (USBD_HID.C) enxergar uma variável no arquivo MAIN.C

__ALIGN_BEGIN static uint8_t HID_USB_ReportDesc[HID_USB_REPORT_DESC_SIZE] __ALIGN_END =
{
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x05, // USAGE (Game Pad)
0xa1, 0x01, // COLLECTION (Application)
0xa1, 0x00, // COLLECTION (Physical)
0x05, 0x09, // USAGE_PAGE (Button)
0x19, 0x01, // USAGE_MINIMUM (Button 1)
0x29, 0x02, // USAGE_MAXIMUM ///////// Aqui que eu mudo o numero de botões.
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x10, // REPORT_COUNT (16)
0x81, 0x02, // INPUT (Data,Var,Abs)
0xc0, // END_COLLECTION
0xc0 // END_COLLECTION
};


Alguma outra ideia ou forma de fazer isto?
Richard
Avatar do usuário
RAWeigel
Byte
 
Mensagens: 300
Registrado em: 11 Out 2006 16:14
Localização: Rio de Janeiro - RJ


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x