Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

config word PIC 12F509

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] config word PIC 12F509

Messaggioda Foto Utenteramboluis » 21 mag 2013, 18:31

sto cercando di mettere in pratica quello che sto imparando da un guida che spiega come programmare i PIC
sto cercando di fare un programma ''prova'' ( un programma inutile,solo a scopo didattico )
il programma che ho scritto e stato riadattato da quello di un altro mio progetto per PIC 16f887
allego la sorgente del programma ''prova''
Codice: Seleziona tutto
#ifndef _XTAL_FREQ
#define _XTAL_FREQ 4000000
#endif
#define  PIC_CLK 4000000


#include <PIC.h>




__CONFIG (CP_OFF);

#include "delay.c"



void main(void)
{



TRIS=0b00000000;


while(1)
{
GP4=1;
GP2=1;
__delay_ms(250);
GP4=0;
GP2=0;


}

}

come vedete nella config word e presene soltanto
Codice: Seleziona tutto
CP_OFF

questo perche tutto il resto me lo da errore durante la compilazione

1)posso capire che il pic12F509 non abbia tutte le config word del PIC 16F887 per soltanto una non e poco?
2)volevo utilizzare l'oscillatore interno da 4 MHz pero quando scrivo nella config word:
Codice: Seleziona tutto
FOSC_INTOSCIO

che dovrebbe abilitare l'oscillatore me la da errore
il compilatore usato e HITEC-C
datasheet: http://ww1.microchip.com/downloads/en/d ... 41236e.pdf
Avatar utente
Foto Utenteramboluis
80 1 7
Stabilizzato
Stabilizzato
 
Messaggi: 314
Iscritto il: 28 giu 2012, 18:39

0
voti

[2] Re: config word PIC 12F509

Messaggioda Foto Utentesimo85 » 21 mag 2013, 20:22

ramboluis ha scritto:posso capire che il pic12F509 non abbia tutte le config word del PIC 16F887 per soltanto una non e poco?

Non ho ben capito la domanda. In ogni caso il numero di bit di configurazione è una caratteristica che dipende dall' hardware.

ramboluis ha scritto:che dovrebbe abilitare l'oscillatore me la da errore


Perché non hai inserito il nome corretto della costante.
Ad ogni dispositivo è associato un header dove sono dichiarate tutte le costanti.
Cercalo e cerca le costanti con i valori binari per i settare i bit di configurazione.
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[3] Re: config word PIC 12F509

Messaggioda Foto Utenteramboluis » 21 mag 2013, 20:40

ho un attimo guardato i file header . puo essere che sia questo? :
Codice: Seleziona tutto
//////// Standard Header file for the PIC12F509 device ////////////////
#device PIC12F509
#nolist
//////// Program memory: 1024x12  Data RAM: 41  Stack: 2
//////// I/O: 6   Analog Pins: 0
//////// C Scratch area: 07   ID Location: 0400
//////// Oscilator Calibration Address: 05
//////// Fuses: LP,XT,INTRC,RC,NOWDT,WDT,PROTECT,NOPROTECT,NOMCLR,MCLR
////////
////////////////////////////////////////////////////////////////// I/O
// Discrete I/O Functions: SET_TRIS_x(), OUTPUT_x(), INPUT_x(),
//                         PORT_x_PULLUPS(), INPUT(),
//                         OUTPUT_LOW(), OUTPUT_HIGH(),
//                         OUTPUT_FLOAT(), OUTPUT_BIT()
// Constants used to identify pins in the above are:

#define PIN_B0  48
#define PIN_B1  49
#define PIN_B2  50
#define PIN_B3  51
#define PIN_B4  52
#define PIN_B5  53

////////////////////////////////////////////////////////////////// Useful defines
#define FALSE 0
#define TRUE 1

#define BYTE int8
#define BOOLEAN int1

#define getc getch
#define fgetc getch
#define getchar getch
#define putc putchar
#define fputc putchar
#define fgets gets
#define fputs puts

////////////////////////////////////////////////////////////////// Control
// Control Functions:  RESET_CPU(), SLEEP(), RESTART_CAUSE()
// Constants returned from RESTART_CAUSE() are:
#define WDT_FROM_SLEEP  3     
#define WDT_TIMEOUT     11   
#define MCLR_FROM_SLEEP 19   
#define MCLR_FROM_RUN   27   
#define NORMAL_POWER_UP 25   
#define BROWNOUT_RESTART 26   


////////////////////////////////////////////////////////////////// Timer 0
// Timer 0 (AKA RTCC)Functions: SETUP_COUNTERS() or SETUP_TIMER_0(),
//                              SET_TIMER0() or SET_RTCC(),
//                              GET_TIMER0() or GET_RTCC()
// Constants used for SETUP_TIMER_0() are:
#define RTCC_INTERNAL   0
#define RTCC_EXT_L_TO_H 32
#define RTCC_EXT_H_TO_L 48

#define RTCC_DIV_1      8
#define RTCC_DIV_2      0
#define RTCC_DIV_4      1
#define RTCC_DIV_8      2
#define RTCC_DIV_16     3
#define RTCC_DIV_32     4
#define RTCC_DIV_64     5
#define RTCC_DIV_128    6
#define RTCC_DIV_256    7


#define RTCC_8_BIT      0     

// Constants used for SETUP_COUNTERS() are the above
// constants for the 1st param and the following for
// the 2nd param:

////////////////////////////////////////////////////////////////// WDT
// Watch Dog Timer Functions: SETUP_WDT() or SETUP_COUNTERS() (see above)
//                            RESTART_WDT()
// WDT base is 18ms
//

#define WDT_18MS        8   
#define WDT_36MS        9   
#define WDT_72MS       10   
#define WDT_144MS      11   
#define WDT_288MS      12   
#define WDT_576MS      13   
#define WDT_1152MS     14   
#define WDT_2304MS     15   

#define DISABLE_PULLUPS            0x40  // for 508 and 509 only
#define DISABLE_WAKEUP_ON_CHANGE   0x80  // for 508 and 509 only
#ifndef PIN_CHANGE_FROM_SLEEP
#define PIN_CHANGE_FROM_SLEEP      0x90  // for 508 and 509 only
#endif


#list


comunque leggendo questo file ho forse capito il mio errore . il 12F509 non ha un oscillatore interno ma un RC
infatti mettendo
Codice: Seleziona tutto
FOSC_INTRC

il programma si compila senza problemi




mi resta un piccolo dubbio,questa funzione pero mi abilita le porte del oscillatore esterno come normali porte I/O oppure si limita ad abilitare RC interno?
Avatar utente
Foto Utenteramboluis
80 1 7
Stabilizzato
Stabilizzato
 
Messaggi: 314
Iscritto il: 28 giu 2012, 18:39

0
voti

[4] Re: config word PIC 12F509

Messaggioda Foto Utentesimo85 » 21 mag 2013, 20:53

Mmm non vedo dichiarata FOSC_INTRC (che non è una funziona ma una costante).
Sei sicuro che quello sia l'unico file? Non ci saranno mica anche dei file con estensione .inc?

Quella costante abilita l'oscillatore interno quindi puoi usare i pin dedicati come I/O.
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[5] Re: config word PIC 12F509

Messaggioda Foto Utenteramboluis » 21 mag 2013, 21:01

non trovo alcun file con estensione .inc
ma scusa .
Codice: Seleziona tutto
FOSC_INTRC
non e dichiarato qui?
Codice: Seleziona tutto
Fuses: LP,XT,INTRC,RC,NOWDT,WDT,PROTECT,NOPROTECT,NOMCLR,MCLR


percio io non devo dare alcun altro comando per utilizzare le porte dedicate all' oscillatore esterno con normali porte I/O?
Avatar utente
Foto Utenteramboluis
80 1 7
Stabilizzato
Stabilizzato
 
Messaggi: 314
Iscritto il: 28 giu 2012, 18:39

0
voti

[6] Re: config word PIC 12F509

Messaggioda Foto Utentesimo85 » 21 mag 2013, 21:09

ramboluis ha scritto:non e dichiarato qui?

[-(

Quello è un commento. Conosci il C? Ora capisci il consiglio che ti ho dato qualche giorno fa, qui?
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[7] Re: config word PIC 12F509

Messaggioda Foto Utenteramboluis » 21 mag 2013, 21:23

ho capito perfettamente quello che intendi dire . infatti sto facendo queste guide per imparare a programmare i PIC ( so che non basta,ma il discorso e complesso )
comunque so che e un commento . avevo capito male la domanda. pensavo che tu stessi cercando da qualche parte la scritta INTRC per vedere se era o no presente nel PIC
Avatar utente
Foto Utenteramboluis
80 1 7
Stabilizzato
Stabilizzato
 
Messaggi: 314
Iscritto il: 28 giu 2012, 18:39

0
voti

[8] Re: config word PIC 12F509

Messaggioda Foto Utentesimo85 » 21 mag 2013, 21:29

OK. Chissà ci hai azzeccato di culo con
Codice: Seleziona tutto
FOSC_INTRC

:mrgreen:

Però se vuoi andare più a fondo cerca meglio. Osserva bene all'interno di PIC.h. ;-)

Se nell' header che hai riportato è definita la costante
Codice: Seleziona tutto
#define PIC12F509


è perché in qualche altro header molto probabilmente troverai scritto
Codice: Seleziona tutto
#ifdef PIC12F509
...
#endif


Dove al posto dei tre punti ci sarà un include di qualche header o dichiarazione di qualche costante appunto per la tua MCU.

Non ti faccio fare tutto questo per niente. :-)
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[9] Re: config word PIC 12F509

Messaggioda Foto Utenteramboluis » 21 mag 2013, 21:50

nel header che ho riportato no trovo alcun
Codice: Seleziona tutto
#define PIC12F509


ho pero letto PIC.h ( sinceramente non ci capisco molto pero vedro di studiarci )
Avatar utente
Foto Utenteramboluis
80 1 7
Stabilizzato
Stabilizzato
 
Messaggi: 314
Iscritto il: 28 giu 2012, 18:39

0
voti

[10] Re: config word PIC 12F509

Messaggioda Foto Utentesimo85 » 21 mag 2013, 22:06

ramboluis ha scritto:nel header che ho riportato no trovo alcun
Codice: Seleziona tutto
#define PIC12F509


Sei sicuro?
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti