Concordo anche il con pablos.
Un altro dubbio prima di concludere,con i programmatori in C per microcontrollori come si può ,ad esempio ,accendere un LED?Bisogna ricorrere ad una libreria apposita?Per il C che ho studiato fin ora non dice come fare,è un manuale di C "Per computer"
Ci dovrebbe essere il capitolo sulle operazioni bitwise.
Potrei risponderti, ma non capiresti perchè ti mancano le basi. RAM, ROM (e varianti tipo flash, EEPROM ecc), bit, byte e indirizzi espressi in byte, architettura hardware AVR, ecc.
Comunque ci provo, se capisci bene diversamente sai il perchè.
Quando la MCU (Micro controller unit) viene alimentata, internamente accadono delle cose, una di queste è la mappatura delle porte interne su appositi indirizzi posti in RAM. Cioè la ram dopo l'inizializzazione non è vuota come ci si aspetterebbe, ma contiene dei dati che rispecchiano il valore delle porte, modificando il valore modifichi direttamente la porta come conseguenza uno o più pin (bit) cambiano stato, se su uno di questi c'è un led si accenderà o spegnerà a secondo di come è collegato il led.
La libreria standard C per avr (avr-libc) assegna un nome inequivocabile ed evocativo ad ogni indirizzo conosciuto in ram così da permetterti di scrivere: PORTA = 25.
Ora la porta A vale 25 decimale che in binario corrisponde a.... fattelo tu il conto e scrivi:
A7 A6 A5 A4 A3 A2 A1 A0
1 0 1 0 0 0 0 0
Le librerie di avrlibc ti mettono a disposizione anche delle macro per impostare un singolo bit di una porta e tante altre macro e funzioni. Il core library di Arduino ti mette a disposizione altre funzioni per manipolare i bit.
Si decisamente, vacci piano con lo studio specie perchè non hai nessuno che ti guida e a questa età ti serve, poi crescendo sarai in grado di studiare da te facendo anche a meno di una guida.
Ciao.