Offline
God Member
Karma: 3
Posts: 589
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
|
 |
« Reply #60 on: May 10, 2012, 04:46:02 pm » |
Mmmmmm, ero sicuro che l'operatore << fosse solo un'istruzione per il precompilatore... Sarebbe da controllare il compilato cosa fa perché ci sta che il precompilatore, riconoscendo che 1 << 5 è un'operazione eseguibile a tempo di compilazione la esegua lui. Per tagliare la testa al toro lo sostituirò con 0b00010000... 
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #61 on: May 10, 2012, 04:49:19 pm » |
Se tu fai 1<<5 è un conto, se tu fai a<<5 è un altro. Nel primo caso hai 2 costanti numeriche, e quindi il compilatore potrebbe (ma non è detto: tu a scuola hai studiato gcc, immagino, ma qui usiamo avr-gcc, che potrebbe anche ragionare in maniera diversa) sostituire il valore già calcolato. Ma nel secondo caso il compilatore non sa che valore assumerà a per cui come può eseguire in anticipo l'operazione?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 3
Posts: 589
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
|
 |
« Reply #62 on: May 10, 2012, 05:08:42 pm » |
Si si, nel secondo caso è indubbio che non può essere calcolato a tempo di compilazione, ma nel primo caso sarebbe da controllare. Non ho studiato gcc, ho fatto elettronica, non informatica, ma ho avuto un esame praticamente quasi sull'atmega, oltre che un po' di pld. Io ho il ricordo che il prof. ci avesse detto che 1 << 5 il precompilatore lo sostituisse in 0b00010000 però effettivamente mi hai fatto venire il dubbio. Magari mi ricordo male.
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7340
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #63 on: May 11, 2012, 12:14:47 am » |
ci avesse detto che 1 << 5 il precompilatore lo sostituisse in 0b00010000 però effettivamente mi hai fatto venire il dubbio. Magari mi ricordo male.
Tutti i compilatori degni di questo nome, e gcc lo è, risolvono i calcoli su costanti durante il processo di compilazione sostituendo direttamente il valore calcolato. Esempio pratico se scrivo "byte A; A = 3x2;" il compilatore assegna ad A direttamente il valore 6 senza inserire il calcolo nel programma, ovvero la riga diventa "A = 6;".
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Edison Member
Karma: 7
Posts: 2148
Arduino rocks
|
 |
« Reply #64 on: May 11, 2012, 05:02:46 am » |
Vero ha ragione astro. Il preprocessore processa macro e non fa calcoli, ma il precompilatore a cui si riferisce janos anche se la documentazione non ne parla lo potremo anche chiamare così. Tutte le operazioni che coivolgono operandi il cui valore è conosciuto a tempo di compilazione vengono risolte. Se il valore di un'operando non è conosciuto a tempo di compilazione il calcolo verra effettuato a run-time.
Però nessuno mi ha fatto i complimenti per il codice delle ISR ridotto all'osso grazie all'or exclusivo. Si vabbe che non è farina del mio sacco in quanto ho scoperto quel codice all'interno di una libreria, ma si tratta comunque di buon codice che merita.
Ciao.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 81
Posts: 8184
:(){:|:&};:
|
 |
« Reply #65 on: May 11, 2012, 05:09:44 am » |
non ci avevo fato caso, è un bel sistema quello dell'xor. Ora bisogna scoprire se è velocizzato abbastanza 
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7340
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #66 on: May 11, 2012, 05:17:10 am » |
Però nessuno mi ha fatto i complimenti per il codice delle ISR ridotto all'osso grazie all'or exclusivo.
Mi era sfuggito, in effetti è una soluzione elegante e molto efficace.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 3
Posts: 589
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
|
 |
« Reply #67 on: May 11, 2012, 08:46:56 am » |
Non ci avevo fatto caso neppure io allo xor... Cavolo, è geniale... =) Non ci pensavo...
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 1
Posts: 121
Arduino rocks
|
 |
« Reply #68 on: May 11, 2012, 12:41:32 pm » |
Ciao Janos, ho visto che accennavi all'interesse per stm32f4 , non so' se avevi gia' visto il nostro progetto : http://www.virtualrobotix.com/profiles/blogs/vr-multipilot32f4-the-most-powerful-auto-pilot-in-the-world-compaAbbiamo gia' fatto tutto il porting delle API base di arduino sull'F4 e anche di tutte le librerie del progetto arducopter. Il micro ha prestazioni incredibili rispetto ad un avr mega. Nel link che ti ho dato hai tutti i dati. Il nuovo Arduino DUE non sara' sul SAM3U  Quello si chiamava Arduino 1500 e l'avevo progettato io  Un anno e mezzo fa' . Saluti Roberto
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 3
Posts: 589
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
|
 |
« Reply #69 on: May 13, 2012, 10:24:01 am » |
Bel lavoro, ma costa troppo per essere un'oggetto sul quale dovrò fare delle prove... 
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7340
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #70 on: May 13, 2012, 11:17:07 am » |
Bel lavoro, ma costa troppo per essere un'oggetto sul quale dovrò fare delle prove...  Se vuoi iniziare ad usare gli ST32 ci sono delle ottime board low cost di ST, p.e. questa con l'ST32F4 (core Cortex M4 con FPU) che da RS paghi solo 12.6 Euro + iva, 22 Euro compresa la spedizione.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 3
Posts: 589
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
|
 |
« Reply #71 on: May 13, 2012, 04:04:38 pm » |
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Edison Member
Karma: 7
Posts: 2148
Arduino rocks
|
 |
« Reply #72 on: May 14, 2012, 04:40:50 am » |
già è un prezzo più abbordabile... =) Caspita regalato, altro che abbordabile. Quel libro non l'ho mai letto, costicchia pure e dal titolo si riferisce a freescale (che mi sta sulle p...e), l'uncio vantaggio è che prende in considerazione proprio il cortex-M4. Ciao.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 3
Posts: 589
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
|
 |
« Reply #73 on: May 14, 2012, 10:48:19 am » |
Cosa vuol dire freescale? 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 81
Posts: 8184
:(){:|:&};:
|
 |
« Reply #74 on: May 14, 2012, 10:57:20 am » |
è una marca di microcontrollori.
|
|
|
|
|
Logged
|
|
|
|
|
|