Creative Commons BY-NC-ND 2.5Questo sito e tutto il suo contenuto sono distribuiti sotto la licenza Creative Commons Attribuzione - Non Commerciale - Non opere derivate 2.5 Italia e con le condizioni d'uso definite nel disclaimer: siete pregati di leggere entrambi questi documenti prima di usufruire dei contenuti di questo sito. Per alcuni contenuti è necessaria una registrazione gratuita: non è necessario pagare e non è necessario accumulare punteggi per accedere agli articoli e scaricare i sorgenti. Basta solo essere onesti. Se volete che questo sito continui a rimanere attivo, a contribuire ogni giorno alla diffusione della cultura libera, non copiate il materiale per ripubblicarlo in altri luoghi : chi fa questo è solo un miserabile e un perdente. Se volete partecipare su settorezero e rendere le vostre idee, i vostri progetti, fruibili da tutti senza limitazioni, come dovrebbe essere in un paese civile e acculturato, potete farlo tranquillamente.

PICMicro

Appunti Articoli Applicazioni

Ho raccolto qui tutti gli articoli riguardanti la programmazione dei PICMicro suddivisi in 3 fasce, partendo dai pic ad 8 bit per arrivare ai pic a 16 bit. Nella maggior parte degli articoli e appunti sono anche inclusi esempi pratici e librerie.

Il corso di programmazione dei picmicro in C si trova tra gli articoli dei pic10/12/16.

  • Librerie

    Questa sezione conterrà le librerie aggiornate che servono a realizzare i nostri programmi. Gli ultimi aggiornamenti delle librerie li potete trovare sempre qui.

  • Articoli propedeutici e guide alla risoluzione dei problemi

    Contiene gli articoli che spiegano alcuni concetti fondamentali necessari per programmare i picmicro in C e gli articoli in cui viene spiegato come risolvere alcuni problemi che possono presentarsi durante lo sviluppo

  • Schede di sviluppo / Demoboards

    Recensioni e prove delle schede di sviluppo (note anche come Demoboards) che utilizzo normalmente nei miei articoli

  • Manuali e Libri

    Niente può sostituire i datasheet, le application note e le applicazioni di esempio fornite da mamma Microchip. In questa sezione sono raccolti i documenti essenziali della Microchip e i manuali di programmazione che ho ritenuto i migliori in assoluto anche per chi si trova alle prime armi. La maggior parte dei documenti qui inclusi sono in formato PDF. In altri casi può trattarsi di libri da acquistare.

  • Strumenti per lo sviluppo : IDE, Compilatori, Programmatori e Utilities

    In questa sezione ho raccolto i link alle pagine dalle quali scaricare gli IDE (ovvero gli ambienti integrati di sviluppo), i compilatori, le pagine di supporto ai programmatori per picmicro più diffusi e dalle quali è possibile trovare supporto, software di programmazione ed eventuali firmware e in più le utilities, ovvero quei programmini  ausiliari che possono semplificarci la vita di tutti i giorni

  • Links

    Siti utili dove reperire altre informazioni ed esempi fatti bene, sempre relativi al mondo dei picmicro. I links sono suddivisi in italiani ed esteri

Se ne avete la possibilità, supportate chi lavora gratuitamente a queste pagine con una piccola donazione: anche pochi centesimi fanno la differenza e aiutano a mantenere alto il morale e a stimolare la creazione di cose sempre nuove ed inedite.

  1. #1 da Luca il 19 dicembre 2010

    Una curiosità, ma che tecnica utilizzi per generare numeri casuali?
    Luca

    • #2 da Giovanni Bernardo il 19 dicembre 2010

      Non mi pare di aver parlato da nessuna parte della generazione di numeri casuali… Non uso nessuna tecnica perchè fin’ora non mi sono mai serviti. E’ comunque un argomento interessante quanto complicato, per cui se hai informazioni o vuoi scrivere un articolo, sei il benvenuto.
      So che alcuni utilizzano l’AD con una LDR o un sensore di temperatura. Ho letto pure tempo fa di un generatore di bit casuali con un PIC, l’ORB (Open Random Bit generator):

      http://home.comcast.net/~orb/index.html

      come puoi vedere pure questo utilizza l’AD per generare numeri casuali

      • #3 da Luca Gallucci il 7 gennaio 2011

        Purtroppo non ne hai mai parlato, e la documentazione è perlopiù su programmi per pc dove usano l’ora, oppure programmi asincroni dove usano il timer0; l’ORB di cui sopra è la soluzione più geniale, peccato ci siano i sorgenti solo in assembly; penso che una resistenza vada più che bene rispetto ad una LDR, dato che il rumore termico influisce parecchio (tutto da verificare) sul bit meno significativo della lettura di una tensione. Sto accumulando informazioni, avendo consluso il progetto del disturbatore; e la cosa più intelligente sembra proprio quella di un simil orb.
        Cercavo di fare una cosa abbastanza semplice, un decisore, la variante nerd di un lancio di una moneta, led rosso e led verde, si e no…staremo a vedere, le soluzioni sono tante ma per un programma sincrono come questo, accendi e uno solo dei due led si accende, quindi è da escludere il timer interno, purtroppo quindi l’unica cosa è l’AD su resistore, magari infarcendolo di qualche operazione legata al numero di esecuzioni del giochino, e altro ancora.
        Staremo a vedere…

        • #4 da Luca Gallucci il 9 gennaio 2011

          Ecco una bozza del codice completamente da ottimizzare:

          #define si GPIO2
          #define no GPIO1
          __CONFIG (FCMDIS & IESODIS & UNPROTECT & BORDIS & MCLREN & PWRTEN & WDTDIS & INTIO);

          int valore;
          void main(void)
          {
          OSCCON= 0b1110001; //Oscillatore a 1MHz
          TRISIO= 0b010000;
          GPIO=0b00010000; //gpio4 come ingresso per l’adc
          CMCON0= 7;
          ANSEL =0b0001000; //f-ad=fosc/2 e an3/GPIO4 analogico
          ADCON0=0b10001101; //adc su an3 GODONE disattivato
          OPTION=0; WPU=0b00000111; //uso la pull up interna e elimino la resistenza che dovrei mettere esterna verso vdd
          //DelayMs(100);
          while(1){
          GODONE=1;
          while(GODONE){};
          valore=ADRESL&0×00000001; //lascio solo l’ultimo bit
          (valore==0×0001)?si=1:no=1; //l’ultimo bit è uno?

          DelayMs(250);si=0;no=0;((DelayMs(100);} //praticamente vedo i due led alternarsi casualmente (?)
          //DelayS(2);SLEEP(); //alternativa con lampeggio singolo

          }

          Cosa ne pensi? come faresti a confermare la casualità? purtroppo ci vuole un header per
          debuggare su questo pic!

  2. #5 da Stefano il 27 gennaio 2011

    Ciao Giovanni ho un problemino e spero di ricevere la giusta dritta da te…ho programmato un PIC da interfacciare tramite rs232 al pc. Il firmware del pic deve inviare un codice esadecimale nel momento in cui riceve dal pc uno specifico codice di inizializzazione (sempre hex). Ti posto quello che ho compilato…
    //Main
    void main(void)
    {
    unsigned int rs232rx;
    unsigned int a=0xFF02;
    unsigned int b=0x001D;

    SystemInit();
    Diagnostic();

    while (1){

    rs232rx=getch();

    switch (rs232rx){
    case(rs232rx==a):
    for(i=0;i<1;i++){
    printf("00 00 01\n\r");
    printf("00 00 07 33 37 39 36 30 33 35 38 45 20 20 31 35 2F 30 38 2D 32 30 30 30 00 FF 07 10 00 68 00 70 00 79 00 07 3C 05 0A 23 1F FF 15 00\n\r");
    } // for
    break;
    case (rs232rx==b):
    for(i=0;i<1;i++){
    printf("00 00 1D 07 03 1E\n\r");
    printf("00 00 14 07 80 80 81\n\r");
    } // for
    break;
    } // switch

    }//while
    }//main

    di sicuro c'è un problema nella stesura del firmware…

    • #6 da Giovanni Bernardo il 27 gennaio 2011

      Il blocco switch/case non si usa così. Nei case non va posta la condizione di uguaglianza, si mette solo il valore da confrontare.

  3. #7 da dinus01 il 18 febbraio 2011

    salve
    ho un problema,in pratica vorrei leggere(con pic 16f877) un segnale da una ricevente per modellismo
    e ricavarne un valore proporzionale alla durata dell’impulso(pwm).
    in rete ci sono molti forum che ne parlano ma non riescono a dare risposte concrete.
    potresti scrivere un piccolo programmino in c.
    secondo me sarebbe molto gradito da molti pricipianti “come me” che vogliono interfacciare una ricevente con un pic.
    ti ringrazio anticipatamente.

  4. #8 da peppino53 il 16 giugno 2011

    Caro giovanni, mi riferisco al tuo commento riguardante un tuo schema scopiazzato e messo su GRIX.
    Sei giustamente rammaricato per gli scienziati con specializzazione “copia e incolla”.
    Grix è un sito molto frequentato e fortunatamante la comunità è molto attenta nell’accorgersi
    di “scopiazzature”.
    Anche in questo caso, come vedi i commenti dell’articolo c’è stato qualcuno …. che s’è nè accorto e lo ha fatto presente dando così i giusti riconoscimenti a chi li merita e smascherando i furbetti di turno.
    Penso che anche questo sia un modo per riconoscere ed apprezare il tuo lavoro.
    cordialmente peppino53

    • #9 da Giovanni Bernardo il 16 giugno 2011

      Il sistema che utilizza grix di livelli e punteggi incita le persone senza fantasia, senza idee e senza voglia di imparare a copiare pur di scrivere qualcosa per ottenere punti e salire ai livelli alti. Siamo in Italia: sistema tutto italiano per creare occasioni da cogliere e far diventare “ladri”. Loro intanto vendono. Vendono pure i cd con gli “articoli” e tutti sappiamo che una buona percentuale di quegli articoli è materiale copiato da altri siti.
      Per contro è tutto chiuso: se non sei iscritto non puoi nemmeno leggere niente, se non hai i punti non puoi nemmeno vedere di cosa parla un articolo che richiede punti. In aggiunta io non posso leggere nemmeno questo fantomatico commento di cui parli. E io la MIA immagine la vedo ancora in quell’articolo, a dimostrazione che non c’è assolutamente la volontà di preservare il diritto di autore nè tantomeno di diffondere conoscenza. L’importante è pubblicare quanta più roba possibile, pure che è immondizia, pure se è copiata, no? Ma si facciamo tutti così e vediamo dove si arriva. W l’Italia.

  5. #10 da peppino53 il 17 giugno 2011

    ciao giovanni,
    condivido le tue osservazioni sui livelli di grix.
    io stesso sono iscritto da vari anni e solo qualche mese fa ho scritto un articolo.
    questo perchè non ero alla ricerca di stellette a tutti i costi e solo quando ho ritenuto di avere qualcosa da dire ho scritto un articolo.
    Molti principianti, purtroppo pur di salire di livello e non avendo alcuna competenza specifica, invece
    di studiare la materia con tanta umiltà e passione, improvvisano articoli che sono copie malfatte di ciò che hanno scritto altri su altri siti.
    Per quanto riguarda la lettura dei commenti dell’articolo in questione, te l’ho riporto:

    “lo schema mi ricorda quello della lez. 3 del corso di giovanni bernardo di settorezero.
    http://www.settorezero.com/wordpress/corso-programmazione-pi…
    anche la scelta della porta per far accendere il led .
    avete un comune modo di pensare o lo hai scopiazzato? quasi quasi mi pento di aver votato 7.”

    comunque, per la lettura dei commenti, così come per la visione di articoli semplici il sito richiede una semplice registrazione.

    Inoltre, se ritieni che in un articolo vi è una palese scopiazzatura di tue lezioni, penso che puoi farlo sempre presente agli amministratori del sito.

    cordialmente peppino53

    • #11 da Giovanni Bernardo il 17 giugno 2011

      Addirittura pure i commenti chiusi… cioè ditemi voi se questo è il modo di creare una “community”. Addirittura qualcuno ha votato 7 per quell’articolo? Pare che il livello medio sia più basso di quanto alcuni mi avevano già parlato. Io da parte mia non vedo perchè dovrei iscrivermi ad una cosa del genere quando in giro si trovano cose a livelli molto più alti. Basta saper usare google e conoscere l’inglese o usare un traduttore. Il problema è che l’Italiano vuole la pappa bella e pronta e preferisce sforzarsi in maniera discutibile piuttosto che impiegare le energie in maniera più costruttiva e di questo me ne accorgo pure qui sul mio blog.

      • #12 da Giovanni Bernardo il 17 giugno 2011

        Io ringrazio te e tutti quelli iscritti a quel sito se ogni volta che notate qualcosa di copiato gli potete lasciare un commento di disapprovazione. Lo so che non serve a nulla perchè quel tipo di gente li non gli fai niente nemmeno con le cannonate, ma almeno può capitare che altre persone intelligenti possano rendersi conto di ciò che accade e prima o poi il proprietario prende provvedimenti prima che accada qualcosa di davvero spiacevole, perchè a quanto pare non sono l’unico che lamenta questi continui furti a causa di quel sistema assurdo di incentivazione alla copiatura selvaggia.

        Alla fine quel sistema favorisce solo il plagio, perchè di community e di diffusione della cultura io non ci vedo niente. Mi iscriverei pure (ma oramai non lo farò più, non voglio far parte di una cosa del genere), ma a cosa mi iscrivo che non vedo assolutamente nulla di quello che si dice di parlare? Si dice che il sito è di elettronica, ma io utente non iscritto che mi avvicino al sito, che vedo? Fiumi di pubblicità e basta.

        E poi se scrivo qualcosa per il desiderio di diffonderlo, perchè dovrei farlo proprio li che è un sistema chiuso? In un mondo in cui sistemi come i wiki si affermano sempre più in maniera forte, tanto da venire utilizzati anche dalle aziende, ci sta qualcuno che addirittura rema contro promuovendo sistemi chiusi, talmente chiusi che all’interno ti puoi permettere di fare ciò che vuoi, anche di andare contro legge tanto all’esterno chi se ne accorge se non è iscritto e se non ha i punti? E poi quelli che hanno i “punti” fanno parte del “sistema”. Chi me lo dice che gli articoli a “livello millemila” non contengano roba copiata pari pari da libri ultracostosi?

        Ora tanto per fare un esempio, io i libri di elettronica costosi me li compro, scritti in inglese: rinuncio ad un paio di pizze e indosso un paio di scarpe vecchie un mese in più, d’altronde sono un operaio e non mi posso permettere grandi lussi. Invece esiste gente che vuole tutto a tutti i costi, e l’occasione fa l’uomo ladro, per fortuna non tutti gli uomini sono così, ma se si incentivano sistemi in cui “ladreggiare” è una buona alternativa al sacrificio, ecco che ci rimettono sempre i più deboli.

        Caro peppino io ti ringrazio di nuovo per il commento di disappunto che gli hai lasciato e scusa lo sfogo ma ogni tanto ci vuole, e non sai quanto mi dispiace il fatto che non sto pubblicando piu sorgenti proprio a causa di questi personaggi che mi hanno fatto passare la voglia.

  6. #13 da peppino53 il 17 giugno 2011

    quel voto “7″ glielo diedi io ed era un voto di incoraggiamento; quell’articolo era stato preceduto da un’altro che la comunità aveva bocciato per essere troppo basso di livello tecnico. L’autore, ritirò il primo articolo e dopo qualche giorno ne ripropose un altro , l’attuale , che sembrava migliore. Poi, purtroppo, dopo aver dato quel voto, mi accorsi dello scopiazzamento. Rivedendo lo schema ebbi la senzazione di un dèjà vù , di un già visto . La mia memoria visiva mi consigliò di andare a rivedere le tue lezioni e alla lez.3 trovai lo stesso schema . ormai avevo votato e non mi restava altro che farlo presente sul sito.
    Comunque sono azioni che si commentano da sole.
    penso che chi approfitta del lavoro altrui è piccolo, non perchè sta muovendo i primi passi in una materia ma perchè moralmente di basso livello.
    di nuovo cordiali saluti
    peppino53

  1. Ancora nessun trackback

I commenti sono chiusi.

settorezero.com e il logo Zroid™ ©2007÷2013 Giovanni Bernardo - E' vietata la copia e la distribuzione anche parziale dei contenuti di questo sito web senza l'esplicito consenso dell'autore.
I contenuti di settorezero.com sono distribuiti sotto una licenza Creative Commons Attribuzione-Non Commerciale-Non Opere derivate 2.5 Italia a cui vanno aggiunte le condizioni d'uso definite nel disclaimer.
settorezero.com e tutti i suoi contenuti sono tutelati dalla legge sul diritto d'autore per cui i trasgressori sono perseguibili a norma di legge.
Creative Commons BY-NC-ND 2.5
Il tema di questo sito è basato sul tema Fusion per wordpress, realizzato originariamente da digitalnature e fa uso del plugin Wassup per il computo delle statistiche. Per contattare l'autore siete pregati di utilizzare la sezione contatti.
Per essere aggiornato con tutte le novità di settorezero.com seguici anche anche su Facebook Twitter Tumblr Blogspot Youtube.