Sto passando al C.
In basic scrivevo :
LED= PORTB.0
e poi quando serviva facevo LED=1 o HIGH LED e l'uscita PORT.0 andava alta; viceversa =0 o low andava bassa
E' molto comodo per la comprensibilità di un lungo programma riferirsi a variabili mnemoniche invece di usare sempre PORTB=xx PORC.1=yy etc.
Sto provando ed annaspando perché tutti gli esempi trovati usano sempre PORTA,PORTB ecc.
ho scritto:
#define LED PORTB.B0; oppure anche e a #define LED PORTB.F0;
void main() {
TRISB0_bit = 0;
e qui cominciano i dolori
LED == 1; da errore in compilazione
LED = 1; da errore in compilazione
high LED ; da errore in compilazione
errore é sempre invalid expression
se uso
#define ON 1
#define OFF 0
e poi LED = ON; da errore in compilazione
se invece uso PORTB.B0=1; allora funziona ma così non mi va bene
le prove sono con MiKroC
come si può fare per utilizzare variabile mnemoniche per riferirmi ad una specifica uscita (o anche un ingresso) di una generica porta ? Grazie in anticipo
Definire uscite mnemoniche per PIC
Moderatore:
Paolino
6 messaggi
• Pagina 1 di 1
0
voti
1
voti
Ciao,
non ho esperienza con il compilatore in questione, ma se non mi ricordo male metti un ";" di troppo alla fine della direttiva #define. Prova con:
invece di
P.S. utilizza il tag code quando necessario, i post guadagnano in leggibilità.
non ho esperienza con il compilatore in questione, ma se non mi ricordo male metti un ";" di troppo alla fine della direttiva #define. Prova con:
- Codice: Seleziona tutto
#define LED PORTB.B0
invece di
- Codice: Seleziona tutto
#define LED PORTB.B0;
P.S. utilizza il tag code quando necessario, i post guadagnano in leggibilità.
Follow me on Mastodon: @davbucci@mastodon.sdf.org
-

DarwinNE
31,0k 7 11 13 - G.Master EY

- Messaggi: 4420
- Iscritto il: 18 apr 2010, 9:32
- Località: Grenoble - France
0
voti
Confermo. Il ; è di troppo.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
3
voti
Aggiungo a quanto detto che in C il simbolo di doppio uguale (==) è impiegato solamente nel costrutto if.
Qui di seguito un po' di cose esatte e altre errate:
Il secondo costrutto if non produce errore ma la maggior parte dei compilatori segnala con un warning che all'interno di un if c'è un'assegnazione (=) e non un confronto (==). Questo può essere molto pericoloso.
Ciao.
Paolo.
Qui di seguito un po' di cose esatte e altre errate:
- Codice: Seleziona tutto
#define LED PORTB.RB0 //corretto
#define LED PORTB.RB0; //ERRATO
#define ON 1
#define OFF 0
if (counter==5) // corretto
{
LED = ON;
} else {
LED = OFF;
}
if (counter=5) // ERRATO
...
...
...
Il secondo costrutto if non produce errore ma la maggior parte dei compilatori segnala con un warning che all'interno di un if c'è un'assegnazione (=) e non un confronto (==). Questo può essere molto pericoloso.
Ciao.
Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-

Paolino
32,6k 8 12 13 - G.Master EY

- Messaggi: 4226
- Iscritto il: 20 gen 2006, 11:42
- Località: Vigevano (PV)
0
voti
Grazie per le spiegazioni. Purtroppo il define non funziona e la variabile LED non viene valorizzata come uscita (da errore su LED=1) ma ho trovato come Mikroelettronica ha impostato la cosa. Non mi piace molto perché penso che non usi una sintassi standard (tipo C18).
Domanda: come faccio ad usare i tag ?
- Codice: Seleziona tutto
sbit LED at PORTB.B0;
void main()
{
TRISB= 0; // set pin come out
while (1)
{
Delay_ms(1000);
LED = 1; // ora non da errore di compilazione e fisicamente funziona
Delay_ms(1000);
LED = 0; // ora non da errore di compilazione e fisicamente funziona
}
}
Domanda: come faccio ad usare i tag ?
Ultima modifica di
Paolino il 15 nov 2014, 8:38, modificato 1 volta in totale.
Motivazione: Aggiunti tag [code] e [/code]
Motivazione: Aggiunti tag [code] e [/code]
1
voti
Che versionbe di MikroC stai usando?
Per i tag: quando scrivi un messaggio, proprio sopra la finestra di scrittura, sono presenti una serie di pulsanti; ecco, uno di questi riporta la scritta Code. Se lo premi, ti pone dei tag di tipo "Code" all'interno dei quali viene riportato il codice sorgente (ad es, C).
Ciao.
Paolo.
Per i tag: quando scrivi un messaggio, proprio sopra la finestra di scrittura, sono presenti una serie di pulsanti; ecco, uno di questi riporta la scritta Code. Se lo premi, ti pone dei tag di tipo "Code" all'interno dei quali viene riportato il codice sorgente (ad es, C).
Ciao.
Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-

Paolino
32,6k 8 12 13 - G.Master EY

- Messaggi: 4226
- Iscritto il: 20 gen 2006, 11:42
- Località: Vigevano (PV)
6 messaggi
• Pagina 1 di 1
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 6 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
