Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Generare valori con DAC molto rapidi

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto Utenteg.schgor, Foto UtenteBrunoValente, Foto UtenteIsidoroKZ

0
voti

[51] Re: Generare valori con DAC molto rapidi

Messaggioda Foto UtenteEcoTan » 1 mag 2023, 7:41

ThEnGi ha scritto:Ho sofferto quasi di più il passaggio da Assembly a C (Arduino), che quello verso STM. Ho usato a volte il GOTO in C

Ma poi riesci a usare gli interrupt in C o che?
Il bello della soluzione da me indicata al post [2] è che quel compilatore C prevede della apposite istruzioni per dichiarare delle ISR, e anche dei DMA. Senza bisogno di curarmi delle priorità ho scritto applicazioni realtime (robottini) con molte ISR da periferiche diverse e funziona tutto a puntino.
Mi è bastato passare da dsPic a pic32, che richiede un diverso compilatore C, ed è crollato tutto.
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5426
Iscritto il: 29 gen 2014, 8:54

0
voti

[52] Re: Generare valori con DAC molto rapidi

Messaggioda Foto UtenteThEnGi » 1 mag 2023, 14:55

Non ho capito la domanda però provo a rispondere:

1)GOTO in C è per indicare una porcata che i primi tempi mi portavo dietro da ASM (da non fare :mrgreen: )
2)No, gli Interupt realizati su ArduinoIDE non sono trasportabili in CubeIDE

Anche perché cambia completamente la piattaforma con cui lavorare i registri coinvolti, anche qua se sei abbituato a chiamare
Codice: Seleziona tutto
attachInterrupt(digitalPinToInterrupt(Pulsante, ISR, LOW));

e pretendi di usarlo su un STM32 ti troverai male
Ma questo con qualsiasi compilatore che non sia ArduinoIDE.
Se già sei abbituato a configurare i registri "manualmente" non importa su che compilatore sei (circa), sai che processo devi eseguire e che risorse impegnare a quel punto implementi la chiamata e la ISR.
Ovviamente così facendo perdi di portabilità, come ogni volta che ti abbassi di livello !

Magari con il core STM32 su arduinoIDE qualcosa si può fare ma non ho mai provato.

Spero di aver capito la domanda e dato risposta soddisfacente

EDIT: Ammetto di non aver seguito tutto il post, da una rapida rilettura io consiglierei il cambio di MCU. Che poi si vada a scegliere Arduino DUE, dsPIC, PIC32, STM32, ESP32 DAC interno DAC esterno o altro. A mio parere il 328P (anche a 20MHz) non è in grado di gestire la situazione. :ok:
Potresti valutare anche più di una MCU, magari una maggiore per gestire il flusso di dati e due più piccole per gestire il movimento. (Ipotesi fantasiosa mia :ok: )

O_/
Avatar utente
Foto UtenteThEnGi
2.230 3 6 9
Expert EY
Expert EY
 
Messaggi: 2228
Iscritto il: 6 ott 2022, 18:43

Precedente

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 134 ospiti