Domanda banale...

13 Anni 2 Mesi fa #1 da ElleErre
Domanda banale... è stato creato da ElleErre
Non sono mai stato un grande amante dei software che "fanno tutto loro", anche se, ammetto, si risparmia tempo e mal di fegato (vedi PIC Basic o MikroC, ad esempio).

Ti ritrovi con la funzione che ti setta il PIC, un'altra che instaura un dialogo con le periferiche I2C ecc...

Possiamo discutere per ore se questa sia o no la strada giusta.
Qualcuno potrebbe obiettare che per prendere la patente non ti fanno smontare un motore o ti chiedono come funziona.
Altri potrebbero dire che, comunque, sapere come funziona il motore è meglio.

Mi sono aggregato a quest'ultimo "qualcuno", fosse solo perchè... diciamo... "obbligato?" a farlo per seguire il corso di Settore Zero e il C18 di Laurenti. (un grazie infinito ad entrambi!)

Ma veniamo alla domanda...

HiTech o C della Microchip?

Il fatto che un produttore metta a disposizione due sistemi di sviluppo mi spiazza, fosse solo per il fatto che ho il dubbio che uno sia piú curato dell'atro.

Quali sono i reali vantaggi e/o le differenze tra i due linguaggi?

Viste le limitazioni nelle versioni free ma sopratutto il costo delle versioni professional, non sarebbe meglio indirizzarsi su altre soluzioni (non Emule :cheer: , ovvio, ma l'equivalente Linux in mondo PIC)?

ElleErre

ElleErre

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • ElleErre
  • Avatar di ElleErre
  • New Member
  • New Member
Di più
13 Anni 2 Mesi fa #2 da robcar
Risposta da robcar al topic Re: Domanda banale...
Resisti! Non cedere alle lusinghe dei linguaggi di programmazione ad alto livello! :lol:

Al momento con l'MPASM faccio tutto quel (poco) che so fare; usando il Relocatable Code evito file .asm monolitici e mi faccio le mie belle librerie di codice riutilizzabile (una per la seriale, una per l'I2C, ...), adesso con i PIC18 non ho neanche più il problema della selezione dei banchi RAM o delle pagine di memoria programma.

E' vero che tra una cosa e l'altra ci ho messo 2 mesi ad implementare il bus I2C...

Secondo Mauro mi devo scordare di programmare la USB in assembly, ma ho tutta l'intenzione di smentirlo! :P

--
rob

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • robcar
  • Avatar di robcar
  • New Member
  • New Member
Di più
13 Anni 2 Mesi fa #3 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Domanda banale...
...diciamo che il parere di Rob è un po' di parte!
effettivamente anche io quando ero nella fase Assembly non vedevo altri linguaggi.
Per il microprocessore Z80 ero arrivato a decodificare mentalmente le istruzioni assembly in linguaggio macchina!

Riguardo ai due linguaggi della Microchip la confusione nasce dal fatto che il C HiTech è stato prodotto da un'altra società che circa 2 anni fa è stata acquisita dalla Microchip.
Per cercare di uniformare i nome lo stesso C18 si chiama ora C per PIC18.
L'HiTech come anche il C18 sono ANSI C dunque lo scrivere in un linguaggio o nell'altro non porta molte differenze tanto è vero che ci sono delle librerie Microchip che possono essere compilate con entrambi i compilatori.
Per mezzo delle direttive si controlla quale compilatore si sta usando e vengono fatti gli opportuni cambiamenti necessari.

Il vantaggio della HiTech è che supporta i PIC della famiglia più "piccola" mentre la Microchip supportava i PIC con il C solo a partire dalla famiglia PIC18. Sicuramente una ragione per l'acquisto della società è stato questo.

l'HiTech ha inoltre il vantaggio di ottimizzare di più il codice, tanto che la Microchip lo mette in testa allo stesso C18, vendendo L'HiTec come PRO.

L'HiTEch ha ancora altri vantaggi associati al fatto che quando venne sviluppato si fece uso di un'interfaccia grafica compatibile con Win, Linux e Mac (si è fatto uso dell'IDE Eclipse, progetto Open Source fondato dalla IBM).
In ogni modo per la versione commerciale, qualora non devi vendere nulla il C18 va benissimo, tolto le ottimizzazioni, non hai problemi di lunghezza di codice. Questo era un limite dell'HiTec nella versione free (non sono certo se dopo l'acquisizione da parte della Microchip sia stato tolto).

Sia L'HiTech che il C18 sono integrabili in MPLAB quindi non si hanno problemi d'interfaccia.

Quale usare?
Se non c'è più il limite sulle dimensioni del programma da parte dell'Hitech, potrebbe essere indifferente se si vuole programmare i PIC18. Se si vogliono programmare anche gli altri PIC può forse tornare più utile l'Hitech.
Sicuramennte però sul sito della Microchip si trovano più esempi in C18 che non per HiTech (visto l'acquisizione recente...ma programmata da molto).

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
13 Anni 2 Mesi fa #4 da Gianni
Risposta da Gianni al topic Re: Domanda banale...

robcar ha scritto: ho tutta l'intenzione di smentirlo!


:lol: ci riesce... ne sono convinto... Ho provato pure io a distoglierlo dall'assembler :P

Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Gianni
  • Avatar di Gianni
  • Elite Member
  • Elite Member
Di più
13 Anni 2 Mesi fa #5 da robcar
Risposta da robcar al topic Re: Domanda banale...

Gianni ha scritto:

robcar ha scritto: ho tutta l'intenzione di smentirlo!


:lol: ci riesce... ne sono convinto... Ho provato pure io a distoglierlo dall'assembler :P


Mitico Gianni!

In realtà io il C l'ADORO! :kiss:
Sul serio; avendo prima smanettato un po' in (Visual) Basic e nei suoi derivati, la 'pulizia' del C mi è risultata immediatamente apprezzabile.

Il mio intento iniziale, quando mi sono approcciato ai PIC, era proprio quello di programmarli in C, visto che già lo conoscevo; se tu avessi iniziato il tuo corso PIC Micro su Settorezero un annetto prima, non mi sarei neanche posto il problema. :)

Poi ho cercato di capire a fondo come 'ragiona' un PIC e ho iniziato ad apprezzare il fatto di avere pochi 'mattoncini' (qualche decina di istruzioni in assembly) per fare molto.

Anche se effettivamente mi sono trovato spessissimo nella situazione del tipo: come faccio ad implementare un 'if -then -else ' oppure a verificare se 'a > b' in assembly? E a perderci tempo dietro. Anche se, essendo il mio un hobby e non dovendo portare a termine un lavoro, lo prendo come puro divertimento tipo ginnastica mentale.

ciao!
--
rob

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • robcar
  • Avatar di robcar
  • New Member
  • New Member
Di più
Moderatori: Mauro LaurentiStefA

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login