C for PIC: una istruzione che non capisco..

Sto programmando l'adc del pic; la mia intenziona era quella di fare una funzione:

unsigned int acquisici(unsigned int canale){ }

che prendesse il numero del canale, facesse dei controlli (0

Reply to
November17
Loading thread data ...

November17 ha scritto:

Reply to
Marco Trapanese

"Marco Trapanese" ha scritto nel messaggio news:ghlimc$jnb$ snipped-for-privacy@tdi.cu.mi.it...

[cut]

La parola "shift dei bit" mi ha aperto un mondo ;-) Grazie..chiarissimo..strano che però non le spiegano queste cose :-(

Reply to
November17

November17 ha scritto:

Chi non le spiega?

-- Marco

Reply to
Marco Trapanese

"Marco Trapanese" ha scritto nel messaggio news:ghljor$kqf$ snipped-for-privacy@tdi.cu.mi.it...

Nei corsi di C all'università...

Reply to
November17

...se vanno avanti cosi non ti spiegheranno neppure + il C!!!!

Reply to
emilio

November17:

Madonna santa.

Reply to
F. Bertolazzi

Allora siamo proprio messi male!

O aspetti che la tua università cambi oppure cambia università.

Per curiosità che corso e che università? A me lo spiegarono (Programmazione dei Calcolatori elettronici, Politecnico di Milano, una ventina di anni fa, tra l'altro non ero un informatico e neppure un elettronico, ma un becero elettrotecnico). E poi esistono sempre i libri (il K&R era la bibbia ai miei tempi, talmente semplice e breve che in una settimana o meno lo assimili, probabilmente adesso c'è anche di meglio).

Ciao

Reply to
Carlo

No, e' insuperato :-)

Adesso ci sono dei tomi di un migliaio di pagine dove si filosofeggia sulla programmazione ad altissimo livello usando svariati framework, che rendono l'azione della progettazione del software un ricondursi agli esempi forniti a corredo, ed il prodotto della programmazione non portabile.

Reply to
SilverLeo

Carlo:

Boh, beato te. Io, alla quinta rilettura, ci avevo trovato ancora cose nuove. E' un miracolo di chiarezza, ma anche di stringatezza, ogni singola parola è necessaria e sufficiente. ma non sempre il significato è così esplicito.

Reply to
F. Bertolazzi

Imprecavo contro il nuovissimo ordinamento quando SilverLeo ha detto :

quanta verità.

--
Nuno on zx-6r '04 & CRe 250 '99 working in progress...
Quello che ci fa ammalare...è un'epidemia di diagnosi
Reply to
N1

Io ricordo che questi operatori, utilissimi nella programmazione di microcontrollori (mascherature & shift), vengono detti nel giro di 10-15 minuti, ed il resto dei corsi si dilunga su liste, alberi, problemi di ordinamento e ricerca.

visto che non l'ha fatto nessuno:

& o | AND o OR bit a bit && o || AND o OR tra due condizioni == confronto ~ NOT bit a bit ! NOT su condizione ++ incremento di 1

-- decremento di 1

|= OR / assegnazione &= AND / assegnazione

spero di non aver dimenticato niente o scritto castronerie

un esempio breve:

if (var1 == 5) { //se var1 è uguale a 5 var2 &= mask0; //maschera var2 con mask0 var2 |= mask1; //porta a 1 i bit di var2 della maschera mask1 }else if (var1 == 6) { //altrimenti se var 1 è uguale a 6 var2 >5; //se è uguale a 129 shifta a destra di 5 (dividi per 32) }

ovviamente il codice è scritto a caso e totalmente inutile :)

Ciao CG

Reply to
CG Audio Laboratories

confermo anche io purtroppo e così. da noi se vuoi fare qualcosa che sia diverso dalla solita rubrichetta...devi imparare da solo.

Reply to
Salvo

Salvo ha scritto:

Male.

Anche "da noi" (Polimi), ma le istruzioni di "shift" fanno parte del programma e vengono regolarmente spiegate.

--
Negromanzia: l'arte di evocare i negri.
Reply to
Englishman

CG Audio Laboratories:

Ti sei dimenticato che tutti gli operatori binari, se preceduti da uguale, sostituiscono il primo operando col risultato.

Reply to
F. Bertolazzi

Libri scritti per giustificare carriere accademiche di gente che non saprebbe scrivere un programma per gestire la pulsantiera di un ascensore ...

Alcuni consigli riguardo la programmazione in generale che ci diede allora il docente li trovo ancora utilissimi:

- ai miei tempi andavano moolto i diagrammi di flusso (secondo me una roba inventata per dare qualcosa da insegnare ai docenti di informatica incapaci di programmare), il docente ci disse di buttare tutto nel ... e di imparare a descrivere il problema in buon italiano come se scrivessimo un tema e poi riscriverlo entrando sempre più nel dettaglio, e quando tutto era sviscerato, scriverlo in C

- ogni blocco funzionale di un programma doveva stare in 25 righe (se si debuggava al terminale) o in un pagina stampata se si lavorava su carta.

- a qualunque input doveva seguire un output entro 3 secondi, altrimenti il programma era da considerarsi non funzionante.

- il tempo dedicato a un progetto si divide per un terzo in analisi, per un terzo in sviluppo, il restante terzo in debug. Se diminuiamo uno di questi step, i successivi esplodono.

Bei tempi ...

Adesso, esattamente come dici tu, tutto si risolve copiando stralci di codice già fatti da altri per interfacciarsi a librerie in genere confuse, bacate e incoerenti. Di recente ho avuto modo di dare un'occhiata alle API (ben fatte) di Google Mappe: sul loro sito, a fianco di uno stringatissimo (ed incompleto perchè tutto è i divenire, un eterno 'work in progress') reference manual, ogni chiamata è corredata da un esempio di utilizzo al quale si ricorre, copiando spudoratamente perchè più comodo che 'capire' la libreria. Non per niente Google ha un motore di ricerca specifico per listati in svariati linguaggi.

Reply to
Carlo

Carlo:

Il tuo docente era uno stronzo: ti ha dato un vantaggio ingiusto. A me ci son voluti 15 anni per arrivare alle stesse conclusioni. ;-)

Reply to
F. Bertolazzi

Io, invece, ho trovato utilissimo un manuale Fujitsu relativo ai micro

8 bit F2m8 ecc) che specificatamente spiega come ottimizzare la scrittura del C per il loro compilatore in modo da rendere estremamente efficiente il codice. Qualche centinaio di pagine. Altri manuali dello stesso micro, se sommati, portano lo sviluppatore a dover digerirne ben oltre un migliaio.

Comunque, a Bologna, 22 anni fa frequentai un paio d'anni di ingegneria elettronica e dovetti scegliere se frequentare il corso di informatica (Pascal) in alternativa a quello di disegno tecnico! Avevano ancora le perforatrici di schede!

Piccio.

Reply to
Piccio

Era considerato in effetti uno stronzo:

- era lunatico

- spiegava da cani (il programma comprendeva C e SQL, il primo grazie al K&R l'ho imparato ed imparato ad amare malgrado non abbia poi mai avuto reali occasioni di usarlo per lavoro, il secondo ho dovuto arrivare a doverlo utilizzare massicciamente al lavoro per capirlo)

- non faceva, come invece buona parte dei suoi colleghi, un esame basato su un questionario (domande banali e accademiche, del tipo 'scrivere il diagramma di flusso dell'algoritmo -tal-dei-tali-' logicamente da imparare a memoria sugli appunti del professore oppure conversioni decimale-esadecimale-binario ... patetico), ma ti dava un tema d'esame reale da svolgere in un mese, dopo 2 settimane faceva il punto con tutti quelli iscritti all'esame giusto per chiarire i dubbi e cercare di capire chi ci stava veramente lavorando. Per dare un'idea, il primo che avevo fatto senza terminarlo era scrivere una libreria per menu e finestre in C per terminali VT100 e quello che poi ho passato richiedeva un programma di disegno che implementasse primitive grafiche con i caratteri semigrafici. Apprezzava chi lo svolgeva in gruppo (2 o 3 persone, mai 4) tanto poi capiva al volo chi aveva lavorato veramente e chi aveva fatto il peso morto o addirittura che aveva comprato il programma già fatto da altri studenti.

Il giorno dell'esame veniva al centro di calcolo, ti chiedeva di lanciare il programma, si metteva a battere a caso sulla tastiera: se il programma si impallava o se lui non capiva cosa c'era da fare ti mandava a casa, poi senza quasi parlare giocherellava per un po' con il programma (voleva programmi 'autoesplicativi'), dovevi fargli trovare stampato il listato che lui leggeva, poi sempre in silenzio inziava a sciveri su un foglietto i voti dei vari progetti, scriveva in genere prima i 18, poi gli altri partendo dal più alto, ma per ultimi scriveva i 30 e lode, probabilmentge gli piaceva la suspence, infine verbalizzava il voto a chi andava bene. Troppo forte ... avanti anni luce. E' troppo bello studiare così: fare per imparare.

Curiosità: nel corso parallelo al suo spiegavano il Pascal, veniva dato lo stesso tema d'esame e poi si comparavano i risultati: era fin troppo evidente chi aveva la meglio :-), io ho avuto la fortuna di capitare nel corso basato sul C (veramente la fortuna perchè mi ha permesso di amare la programmazione facendola passare da semplice hobby a grande passione, purtroppo il lavoro mi ha poi portato ad altri linguaggi...).

A me 15 anni per apprezzare in pieno quegli insegnamenti.

Ciao, Carlo

Reply to
Carlo

Carlo:

Boh, girano certi studenti che uno diventa altro che lunatico...

O forse spiegava troppa roba insieme.

E' così che si fa. Anche a me è successo, ma pagavo 20.000 dollari l'anno.

Già. A noi cvontribuenti fa bene sapere che non tutti i nostri soldi sono stati buttati via.

Càpita. Ho ancora una certa venerazione per professori che, al liceo, avevo detestato. All'università ricordo solo tal Montanari, logica e geometria, che m'avva entusiasmato. Poi c'era Modica, un vero genio, le sue lezioni di topologia erano grandiose, ma per passare l'esame di Analisi non erano state molto utili.

Reply to
F. Bertolazzi

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.