Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Chi esegue lo shift?

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[11] Re: Chi esegue lo shift?

Messaggioda Foto UtenteEcoTan » 4 apr 2022, 17:11

EcoTan ha scritto:Io non ho capito dove venga definito UBRR(BAUDRATE)

Adesso lo ho capito (non sapevo che #define potesse avere dei parametri, chiedo venia).
Tornando al quesito originale, nel caso prospettato ambedue le risposte sono possibili in linea di principio, pertanto mi fido di chi ha risposto.
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5421
Iscritto il: 29 gen 2014, 8:54

0
voti

[12] Re: Chi esegue lo shift?

Messaggioda Foto Utenteluxinterior » 4 apr 2022, 17:26

Questo è l'assembler generat da compilatore IAR per un micro ARM
Imma.jpg


Il compilatore, nel caso di espressioni che coinvolgono solo costanti, valuta l'espressione e inserisce il risultato nel compilato
Avatar utente
Foto Utenteluxinterior
4.311 3 4 9
Master EY
Master EY
 
Messaggi: 2690
Iscritto il: 6 gen 2016, 17:48

0
voti

[13] Re: Chi esegue lo shift?

Messaggioda Foto Utentedaniele1996 » 5 apr 2022, 9:29

Il problema deriva dal fatto che siccome devo implementare la porta seriale e per una serie di motivi la devo disattivare e riattivare, siccome anche uno shift in casi particolari può gravare mi domandavo se fosse eseguita dal compilatore o dal processore :)
Avatar utente
Foto Utentedaniele1996
610 3 8 11
Sostenitore
Sostenitore
 
Messaggi: 1554
Iscritto il: 29 ago 2011, 11:29

0
voti

[14] Re: Chi esegue lo shift?

Messaggioda Foto Utentedaniele1996 » 5 apr 2022, 9:41

Però mi domando... se ci sono a disposizione due registri a 8 bit, vuol dire che la frequenza di clock si può aumentare? Ho comprato dei quarzi a 60Mhz che dite è una cosa che si puo fare?
Avatar utente
Foto Utentedaniele1996
610 3 8 11
Sostenitore
Sostenitore
 
Messaggi: 1554
Iscritto il: 29 ago 2011, 11:29

0
voti

[15] Re: Chi esegue lo shift?

Messaggioda Foto UtenteMarcoD » 5 apr 2022, 10:16

Seguo con interesse la discussione, anche se sono poco competente.

Non ho compreso la domanda:
Però mi domando... se ci sono a disposizione due registri a 8 bit, vuol dire che la frequenza di clock si può aumentare? Ho comprato dei quarzi a 60Mhz che dite è una cosa che si puo fare?

Cosa sottointende? A quale processore si riferisce?
Servono più quarzi a cambiare la frequenza dell'oscillatore master del uP ?
credevo ne bastasse uno :-) . Si dissaldano e si risaldano facilmente?
In generale si può fare tutto, avendo a disposizione soldi e tempo. :-)
O_/
Avatar utente
Foto UtenteMarcoD
12,2k 5 9 13
Master EY
Master EY
 
Messaggi: 6696
Iscritto il: 9 lug 2015, 16:58
Località: Torino

1
voti

[16] Re: Chi esegue lo shift?

Messaggioda Foto Utenteharpefalcata » 5 apr 2022, 10:34

In questo specifico caso, lo shift, come anche qualunque altra operazione matematica, se ad esempio tu doovessi sommare l'indirizzo del base register, ad un offset, per raggiungere l'indiriizzo di uno specifico registro in memoria, è operazione svolta dal pre-compilatore ( o pre processore).

A questo "componente" sono affidate tutte le operazioni mnemoniche, come le somme, gli shift e gli indirizzamenti statici della memoria, lui sostituisce gli shift e le somme con i rispettivi risultatii e passa tutto al compilatore. Il compilatore, specifico di ogni linguaggio convertirà poi queste istruzioni in assembly ed infino l'assembler convertirà l'assembler cosi generato in un file binario, che poi verrà caricato nella flash del controller.
Avatar utente
Foto Utenteharpefalcata
326 1 3 6
Stabilizzato
Stabilizzato
 
Messaggi: 422
Iscritto il: 28 lug 2015, 21:03

0
voti

[17] Re: Chi esegue lo shift?

Messaggioda Foto Utentedaniele1996 » 5 apr 2022, 11:06

MarcoD ha scritto:A quale processore si riferisce?

Atmega168/324/328/2560....
Nei datasheet è indicata la frequenza massima 16/20Mhz, ho provato fino a 25Mhz e funzionano... Mi domando se alzando la frequenza possa funzionare...
Avatar utente
Foto Utentedaniele1996
610 3 8 11
Sostenitore
Sostenitore
 
Messaggi: 1554
Iscritto il: 29 ago 2011, 11:29

0
voti

[18] Re: Chi esegue lo shift?

Messaggioda Foto Utentelelerelele » 5 apr 2022, 11:40

daniele1996 ha scritto:Nei datasheet è indicata la frequenza massima 16/20Mhz, ho provato fino a 25Mhz e funzionano... Mi domando se alzando la frequenza possa funzionare...
Secondo me è come andare con l'auto in terza fuorigiri, va, ma quanto durerà?

saluti.
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[19] Re: Chi esegue lo shift?

Messaggioda Foto Utenteboiler » 5 apr 2022, 12:06

daniele1996 ha scritto:Nei datasheet è indicata la frequenza massima 16/20Mhz, ho provato fino a 25Mhz e funzionano... Mi domando se alzando la frequenza possa funzionare...

È un ottimo sistema per ottenere quel tipo di errori che si verifica solo al di sopra di 46°C quando nella UART entra una sequenza di almeno 6 bit positivi mentre contemporaneamente il core esegue un'operazione di branch... roba impossibile da debuggare.

Se il limite è messo a 20 MHz, un motivo c'è.
Da qualche parte, nello spazio che copre tutte le condizioni di operazione, c'è un critical path che richiede un clock non maggiore a 20 MHz.

Boiler
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5600
Iscritto il: 9 nov 2011, 12:27

0
voti

[20] Re: Chi esegue lo shift?

Messaggioda Foto Utentespeedyant » 5 apr 2022, 14:14

Si incolla una aletta al micro, ventolina termocontrollata e via di overclocking!
:lol:
Son quello delle domande strane!
Avatar utente
Foto Utentespeedyant
5.093 3 6 8
Master
Master
 
Messaggi: 3877
Iscritto il: 9 lug 2013, 18:29
Località: Torino

PrecedenteProssimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti