- Messaggi: 56
- Ringraziamenti ricevuti 0
accendere un led con un pulsante
11 Anni 1 Mese fa #1
da Panda4x4
accendere un led con un pulsante è stato creato da Panda4x4
ciao a tutti, iniziando a creare un piccolo programma volevo solo fare accendere un led abilitando un ingresso del pic18f45k20. guardando vari esempi anche in rete non riesco a farlo accendere, il programmino e questo:
/** C O N F I G U R A T I O N B I T S ******************************/
#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF // CONFIG1H
#pragma config PWRT = OFF, BOREN = SBORDIS, BORV = 30 // CONFIG2L
#pragma config WDTEN = OFF, WDTPS = 32768 // CONFIG2H
#pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF // CONFIG5L
#pragma config CPB = OFF, CPD = OFF // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L
#pragma config EBTRB = OFF // CONFIG7H
/** I N C L U D E S **************************************************/
#include "xc.h"
#define P1 RB0 // pulsante 1
#define LED1 RD7 // led 1
void main(void)
{
TRISD=0; // Tutte output
TRISB=0b1111111;
while(1)
{
if (P1==1) // se pulsante1 premuto
LED1=1; // accendo led 1
else
{
LED1=0; // se pulsante 1 non premuto, spengo led 1
}
}
}
cosa gli manca?? grazie mille in anticipo.
/** C O N F I G U R A T I O N B I T S ******************************/
#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF // CONFIG1H
#pragma config PWRT = OFF, BOREN = SBORDIS, BORV = 30 // CONFIG2L
#pragma config WDTEN = OFF, WDTPS = 32768 // CONFIG2H
#pragma config MCLRE = OFF, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF // CONFIG5L
#pragma config CPB = OFF, CPD = OFF // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L
#pragma config EBTRB = OFF // CONFIG7H
/** I N C L U D E S **************************************************/
#include "xc.h"
#define P1 RB0 // pulsante 1
#define LED1 RD7 // led 1
void main(void)
{
TRISD=0; // Tutte output
TRISB=0b1111111;
while(1)
{
if (P1==1) // se pulsante1 premuto
LED1=1; // accendo led 1
else
{
LED1=0; // se pulsante 1 non premuto, spengo led 1
}
}
}
cosa gli manca?? grazie mille in anticipo.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Panda4x4
- Autore della discussione
- Senior Member
Riduci
Di più
11 Anni 1 Mese fa - 11 Anni 1 Mese fa #2
da StefA
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Risposta da StefA al topic accendere un led con un pulsante
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Moderator
Riduci
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
11 Anni 1 Mese fa #3
da Panda4x4
Risposta da Panda4x4 al topic accendere un led con un pulsante
grazie stef!
purtropppo non va ancora mi da quest'errore:
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory `C:/Users/iz1lbt/Desktop/provax.X'
make -f nbproject/Makefile-default.mk dist/default/production/provax.X.production.hex
make[2]: Entering directory `C:/Users/iz1lbt/Desktop/provax.X'
"C:\Program Files\Microchip\xc8\v1.12\bin\xc8.exe" --pass1 --chip=18F45K20 -Q -G --asmlist --double=24 --float=24 --emi=wordwrite --opt=default,+asm,-asmfile,+speed,-space,-debug --addrqual=ignore --mode=free -P -N255 --warn=0 --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -obuild/default/production/newmain.p1 newmain.c
newmain.c:35: error: not a member of the struct/union ""
newmain.c:35: error: illegal conversion between types
int -> volatile union S112
newmain.c:46: error: not a member of the struct/union ""
newmain.c:46: error: illegal conversion between types
int -> volatile union S112
(908) exit status = 1
newmain.c:51: error: not a member of the struct/union ""
make[2]: *** [build/default/production/newmain.p1] Error 1
newmain.c:51: error: illegal conversion between types
int -> volatile union S112
make[2]: Leaving directory `C:/Users/iz1lbt/Desktop/provax.X'
make[1]: Leaving directory `C:/Users/iz1lbt/Desktop/provax.X'
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 936ms)
ma non esiste un listato dei oomandi tipo #define ? li trovo nelle 400 pagine del datasheet??
purtropppo non va ancora mi da quest'errore:
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory `C:/Users/iz1lbt/Desktop/provax.X'
make -f nbproject/Makefile-default.mk dist/default/production/provax.X.production.hex
make[2]: Entering directory `C:/Users/iz1lbt/Desktop/provax.X'
"C:\Program Files\Microchip\xc8\v1.12\bin\xc8.exe" --pass1 --chip=18F45K20 -Q -G --asmlist --double=24 --float=24 --emi=wordwrite --opt=default,+asm,-asmfile,+speed,-space,-debug --addrqual=ignore --mode=free -P -N255 --warn=0 --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-download,+config,+clib,+plib "--errformat=%%f:%%l: error: %%s" "--warnformat=%%f:%%l: warning: %%s" "--msgformat=%%f:%%l: advisory: %%s" -obuild/default/production/newmain.p1 newmain.c
newmain.c:35: error: not a member of the struct/union ""
newmain.c:35: error: illegal conversion between types
int -> volatile union S112
newmain.c:46: error: not a member of the struct/union ""
newmain.c:46: error: illegal conversion between types
int -> volatile union S112
(908) exit status = 1
newmain.c:51: error: not a member of the struct/union ""
make[2]: *** [build/default/production/newmain.p1] Error 1
newmain.c:51: error: illegal conversion between types
int -> volatile union S112
make[2]: Leaving directory `C:/Users/iz1lbt/Desktop/provax.X'
make[1]: Leaving directory `C:/Users/iz1lbt/Desktop/provax.X'
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 936ms)
ma non esiste un listato dei oomandi tipo #define ? li trovo nelle 400 pagine del datasheet??
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Panda4x4
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 56
- Ringraziamenti ricevuti 0
11 Anni 1 Mese fa - 11 Anni 1 Mese fa #4
da StefA
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Risposta da StefA al topic accendere un led con un pulsante
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Moderator
Riduci
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
11 Anni 1 Mese fa - 11 Anni 1 Mese fa #5
da Panda4x4
Risposta da Panda4x4 al topic accendere un led con un pulsante
ciao stefa! grazie di tutto come sempre tutto chiaro! ora compila ma non funziona, infatti come faccio a dirgli che quell'ingresso e npn o pnp? , la porta rb0 e quella del tasto della demoboard dello schema che vi allego, tra cui per ignoranza ho anche provato a settare rb1 collegandoci la 5V o il gnd ma non v,
in questa riga else
{
LED1=0; // se pulsante 1 non premuto, spengo led 1
}
ho provato a settare il led ad 1 e si accende ovviamente non si spegne piu per cui credo che sia qualche problema inerente alla porta rb0 credo...
cosa sono i resistori interni di pull up?
sono andato a vedere nell'impostazione dei bit ho visto che modificandoli e cliccando su generate code te li scrive gia come istruzione #pragma sul main! (l'ho capito ora )
pero non ho trovato una configurazione delle porte con le impostazioni degli 8 bit..
in questa riga else
{
LED1=0; // se pulsante 1 non premuto, spengo led 1
}
ho provato a settare il led ad 1 e si accende ovviamente non si spegne piu per cui credo che sia qualche problema inerente alla porta rb0 credo...
cosa sono i resistori interni di pull up?
sono andato a vedere nell'impostazione dei bit ho visto che modificandoli e cliccando su generate code te li scrive gia come istruzione #pragma sul main! (l'ho capito ora )
pero non ho trovato una configurazione delle porte con le impostazioni degli 8 bit..
Ultima Modifica 11 Anni 1 Mese fa da Panda4x4.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Panda4x4
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 56
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Login
© LaurTec 2006 - 2024