[Soci SLIP] arduino da zero: int e byte

llcfree llcfree a gmail.com
Dom 17 Mar 2013 13:35:26 CET


Giro in lista SLiP, visto che credo sia abbastanza generale. Non me ne
voglia chi lo ha ricevuto dalla lista arduino, semplicemnete sappia che
e' lo stesso messaggio e non rilegga (non c'e' bisogno di esser piu'
violenti di cosi', se non interessa a qualcuno, quel qualcuno stia
senza, e non impedisca ad altri di decidere per se' se qualcosa e' utile
o meno).

Loredana
On Sun, 2013-03-17 at 12:58 +0100, llcfree wrote:
> Di fatto, ogni dispositivo digitale, e quindi anche il microcontrollore
> della atmel usato da arduino uno, si basa su una "misura" fondamentale e
> fissa, che determina tutto il resto: nel nostro caso, parliamo di un
> processore a 8 bit (un byte). 
> 
> Si parla quindi di processore a 8 bit, a 16 bit, a 32 bit, a 64 bit.
> 
> Con 8 bit posso rappresentare 2^8 valori (o codici) diversi. Si vede
> meglio se si considera un bit (2 distinti valori, 0,1, 2^1), due bit (4
> distinti valori, 00,01,10,11, 2^2) e cosi' via. 
> 
> Poi posso anche associare un nome a 0 e chiamarlo LOW, un nome a uno e'
> chiamarlo HIGH, o qualsiasi altra coppia di nomi distinti, anche se
> mamma mia e mamma tua rendono un po' meno l'idea, e per questo quella
> coppia non e' consigliabile. E solo quando devo comunicare con un altro
> (fossi ben io in un momento diverso), che mi accorgo che ci sono modi
> piu' o meno efficaci per farlo ed e' questa consapevolezza a limitare,
> per il mio (nostro) bene la malintesa liberta' dell'ognuno fa a modo
> suo.
> 
> In ogni caso, si mantiene una corrispondenza stretta tra 0 e 1, LOW e
> HIGH, mamma mia (che non c'e' piu') e mamma tua (che e' ancora viva) e
> il suo significato fisico, reale. Con i calcolatori di tutte le
> dimensioni, da arduino al desktop, al tablet e oltre, e' una
> corrispondenza deterministica, una volta fissata (per convenzione). La
> confusione sta solo nell'usare modi diversi per riferirsi alla stessa
> cosa. Capito questo, e capita la "cosa" che ci sta sotto, la confusione
> miracolosamente sparisce (resta il fastidio per chi continua a
> produrla).
> 
> Posso usare un byte per la stessa scelta di concetti/azioni da
> rappresentare (ad esempio, LOW, HIGH)? Certo che posso, "sprecando" 7
> bit. 
> 
> Ne ho anche un vantaggio immediato, che a ben pensarci e' un ulteriore
> impoverimento: se uso un byte, non devo piu' occuparmi di cambiare nulla
> se un giorno invece di due valori ne devo rappresentare 256 = 2^8.
> (sempre che siano valori positivi, altrimenti mi serve un bit per il
> segno piu' o il segno meno e per il valore da rappresentare me ne
> restano 2^7=128). 
> 
> E' talmente attraente poter sprecare e, soprattutto, dimenticarsene,
> poter non piu' pensare (fisiologicamente parlando, il cervello umano e'
> la parte piu' costosa in termini di energia dell'intero organismo, da
> qui la fatica) che ci si dimentica in fretta che un limite continua ad
> esserci, anche con otto bit invece di uno, per continuare con
> l'esempio. 
> 
> Si generalizza subito e si vive nell'illusione piacevolissima che il
> limite e' sparito. Tutto bene, salvo il fatto che il limite c'e'.
> 
> Questo fintanto che non si e' riportati alla realta' (cascando come pere
> dall'alto delle relative illusioni)  quando il limite, che c'e' sempre
> stato, non puo' piu' essere facilmente ignorato, vuoi perche' arduino
> non ha gigabyte di memoria, vuoi perche' a furia di esagerare si
> finiscono anche le risorse in quella parte del mondo che le ha avute e
> allora si comincia a far la predica a quelli brutti e cattivi che,
> capito il trucco, lo usano per se': a loro si spiega che dovrebbero
> rinunciare a tutto quello che noi ci siamo sempre permessi, lascio
> immaginare con quale livello di credibilita'. Questi sono i "buoni", gli
> altri imbracciano il fucile e vanno a riprenderselo.
> 
> Ci sono due modi di reagire, sia con arduino che con il resto del mondo
> e percio' basta un bit con i suoi due valori: 0) mi compro l'arduino due
> (poi tre, poi quattro etc) per fare quello che potrei fare se ancora
> sapessi come si fa e non per fare qualcosa in piu' e nuovo che con
> arduino non posso davvero fare (e, se non ho i soldi, lo rubo, se non me
> lo danno, ammazzo), oppure 2) mi accorgo in tempo che sprecare non puo'
> funzionare in senso globale, anche se e' attraente a livello personale,
> vale a dire, mi rassegno e, se voglio di piu', produco di piu' con meno,
> altrimenti l'unica altra soluzione e' l'andare in guerra (economica,
> prima, senza aggettivi, poi).
> 
> Qualsiasi sia la scelta, e' bene occuparsi di arduino con i  suoi limiti
> ben tangibili, cosi' il problema lo abbiamo sotto gli occhi in una forma
> impersonale e magari ci si puo' ragionare senza metterci le viscere di
> mezzo. E in piu', con arduino e i suoi limiti, si possono fare un sacco
> di cose. Gradevole sorpresa, quando si arriva a fargliele fare.
> 
> In buona sostanza, come si diceva ieri, se serve un byte usare un int
> significa sprecarne uno, cioe' il 50% (perche' su arduino gli int sono a
> 16 bit=2 bytes, su una macchina a 64 bit invece significa sprecarne
> 64-8=56, cioe' l'87.5%, 56/64*100).
> 
> Per chi non progetta e non produce, ma compra e vende,  questo puo' non
> significare niente, ma per chi deve competere o stare anche solo a
> galla, o si preoccupa che a galla ci restino in tanti, anche solo,
> egoisticamente, per averne un po' meno che ti corrono dietro con il
> forcone, l'87.5% conta e con l'87% ci si fa un sacco, se non lo si
> spreca.
> 
> Loredana
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 





Maggiori informazioni sulla lista Soci