Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Programmare i PIC

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Programmare i PIC

Messaggioda Foto UtenteFire91 » 16 mar 2018, 11:17

Ciao ragazzi,
Da un po' di tempo ho cominciato a programmare i PIC, sono ancora alle prime armi e mi ritrovo con non poche difficoltà. finché i programmi da realizzare sono banali, cioè che non coinvolgono particolari registri non ho problemi, tuttavia quando c'è da lavorare con interrupt e timer cominciano a sorgere le difficoltà e mi ritrovo spesso ad avere programmi non funzionanti. Mi riferisco in particolare ai PIC24, infatti per quanto riguarda i PIC16 non ho molti problemi e riesco a lavorare discretamente con queste due funzionalità, invece con i PIC24 non c'è verso. Sto cominciando a lavorare su i PIC24 perché il mio professore (università) mi ha consigliato di passare a questa serie, dato che quelli a 16 bit sono vecchiotti. Mi rendo conto che la causa è la mancanza di una preparazione di base adeguata, fino ad ora ho imparato studiando i datasheet e basandomi su alcuni tutorial sul web, che per carità sono molto esaurienti ma trattano quasi esclusivamente i PIC16. Qualcuno mi può consigliare un libro di testo o una guida su cui partire per entrambi le famiglie?
Inoltre, vorrei farvi un'altra domanda. Come ambiente di sviluppo cosa usate? Io uso MPLAB X IDE, voi quale ritenete migliore? E microC della Mikroel?

Grazie a tutti!
Avatar utente
Foto UtenteFire91
15 4
 
Messaggi: 41
Iscritto il: 19 apr 2015, 10:43

0
voti

[2] Re: Programmare i PIC

Messaggioda Foto Utentealdofad » 16 mar 2018, 11:23

Complimenti al tuo professore. Che facoltà e dove? Questa conoscenza pratica è necessaria per passare l'esame?
Avatar utente
Foto Utentealdofad
843 4 5
Sostenitore
Sostenitore
 
Messaggi: 689
Iscritto il: 21 gen 2014, 1:07
Località: Treviso

0
voti

[3] Re: Programmare i PIC

Messaggioda Foto UtenteIlGuru » 16 mar 2018, 11:25

Io uso ancora i pic8. Sono vecchio eh?
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
4.129 1 10 13
Master
Master
 
Messaggi: 1372
Iscritto il: 31 lug 2015, 23:32

0
voti

[4] Re: Programmare i PIC

Messaggioda Foto Utenteluxinterior » 16 mar 2018, 11:48

I concetti che impari usando PIC24 li puoi riutilizzare anche su altre architetture, ma siccome nel mondo professionale al 90% ti troverai a dover lavorare con processori ARM, Io la fatica la farei per fare pratica su ARM. Si trovano facilmente ambienti e tools di sviluppo gratuiti.
Avatar utente
Foto Utenteluxinterior
2.497 2 4 8
Expert EY
Expert EY
 
Messaggi: 1471
Iscritto il: 6 gen 2016, 17:48

0
voti

[5] Re: Programmare i PIC

Messaggioda Foto Utentemed90 » 16 mar 2018, 11:51

In effetti i PIC16 sono un pochino vecchiotti se vuoi passare a qualcosa di più recente per cosi dire ma di pari fascia ci sarebbero i PIC18.

Io di solito uso sempre MPLAB X e mi trovo benissimo tuttavia utilizzo i PIC18 e i PIC32.
Secondo me se hai lacune sul C in effetti ti conviene trovare un libro, se invece hai problemi proprio sul micro secondo me ti conviene usare la documentazione rilasciata dalla microchip (compilatore XC16 e datasheet del micro)
Avatar utente
Foto Utentemed90
45 2
 
Messaggi: 26
Iscritto il: 18 apr 2017, 15:58

0
voti

[6] Re: Programmare i PIC

Messaggioda Foto UtenteFire91 » 16 mar 2018, 15:12

Studio ingegneria dell'informazione (triennale), fa parte della tesi di laurea. Concordo con voi sul fatto che i pic16, seppur usciti molto tempo fa, sono sempre di attualità. Se l'applicazione accetta requisiti in termini hardware non complessi, che male c'è ad utilizzarli? (questo è ciò che ho spiegato a lui). Quando gli dissi che stavo lavorando con i pic16 mi rispose ridendo "ma dai! Il pic16 lo usavo io da bambino!", e francamente rimasi un po' male, anzi infastidito. Purtroppo se lui vuole così, devo fare così eheh.

Con il C me la cavo abbastanza bene, il problema è capire come funzionano i registri del PIC, ad esempio configurare il timer2, invece con i PIC16 ci riesco facilmente.
Avatar utente
Foto UtenteFire91
15 4
 
Messaggi: 41
Iscritto il: 19 apr 2015, 10:43

0
voti

[7] Re: Programmare i PIC

Messaggioda Foto Utentealdofad » 16 mar 2018, 15:30

Fire91 ha scritto:fa parte della tesi di laurea

ah ok, mi pareva strano che a un esame italiano venga chiesto di programmare un PIC
Avatar utente
Foto Utentealdofad
843 4 5
Sostenitore
Sostenitore
 
Messaggi: 689
Iscritto il: 21 gen 2014, 1:07
Località: Treviso

0
voti

[8] Re: Programmare i PIC

Messaggioda Foto UtenteFire91 » 16 mar 2018, 17:10

Ho provato a sfruttare l'interrupt ed il funzionamento del timer sul PIC24F16KA102 provando con il timer2 ed un interrupt su INT0, che corrisponde al pin RB7. E' un programmino molto banale giusto per testare l'interrupt, quando il flagbit per timer2 cambia stato la variabile c la pongo ad 1; invece, se avviene un interrupt su RB7 il pin RB0 deve passare a livello alto. Il giochetto con il timer2 funziona senza problemi, ma l'interrupt su RB7 non funziona. Cosa sbaglio?

Codice: Seleziona tutto
#include <xc.h>
#include "setup.h"

int c =0;

void main(void) {
   
    TRISB=0;
    PORTB=0;
   
   
    _T2IP = 0b001;  //timer2 ha priorità 1
    IFS0bits.T2IF = 0; //clear timer2 status flag
    IEC0bits.T2IE = 1; //interrupt su timer2
    //TCS impostato a 0, quindi viene usato clock interno
    //I bit TCKPS<1:0> sono settati a 0, quindi prescaler di timer2 1:1
    T2CONbits.TON = 1; //starts timer2
   
    IEC0bits.INT0IE = 1;    //abilita interrupt su RB7
    IFS0bits.INT0IF = 0;    //clear status flag interrupt on RB7
    _INT0IP = 0b010;    //priorità 2 per INT0

    //matching dopo 10 us, dato che timer2 incrementa ogni 0.25us per
    //arrivare ad 10us occorrono 10us/0.25us = 40 conteggi
    PR2 = 40;

   
    while(1) {
        while(_T2IF);
        IFS0bits.T2IF = 0;
        c=1;
    }
   
}

void _ISR _INT0Interrupt(void)
{
    if(_INT0IF) {
        _INT0IF = 0;
        _RB0=1;
    }
}
Avatar utente
Foto UtenteFire91
15 4
 
Messaggi: 41
Iscritto il: 19 apr 2015, 10:43

0
voti

[9] Re: Programmare i PIC

Messaggioda Foto Utentemed90 » 16 mar 2018, 17:59

Non hai impostato RB7 come input, devi scrivere
Codice: Seleziona tutto
TRISBbits.TRISB7=1;
Avatar utente
Foto Utentemed90
45 2
 
Messaggi: 26
Iscritto il: 18 apr 2017, 15:58

0
voti

[10] Re: Programmare i PIC

Messaggioda Foto UtenteFire91 » 16 mar 2018, 19:31

Cavolo che sbadato!! È vero, grazie mille med90 :D
Avatar utente
Foto UtenteFire91
15 4
 
Messaggi: 41
Iscritto il: 19 apr 2015, 10:43

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti