la prima cosa da impostare su un micro è la "configuration word" che setta il micro a fare il lavoro che ti servirà, ADc, comparatori, PWM, porte ecc.
primo di tutti dovrà configurare ìl tipo di clock!
se ritieni che il micro usi il suo clock devi appunto configurarlo, in mancanza di clock puoi stare certo che nulla farà.
E' ciò che hai ottenuto settando quei parametri.
Forza che chi l'ha dura la vince.
Usare PIC
Moderatore:
Paolino
31 messaggi
• Pagina 2 di 4 • 1, 2, 3, 4
0
voti
[11] Re: usare PIC
-

lelerelele
4.899 3 7 9 - Master

- Messaggi: 5505
- Iscritto il: 8 giu 2011, 8:57
- Località: Reggio Emilia
0
voti
[12] Re: usare PIC
salve:
eccomi alle prese con il mio listato, con un simulatore software funziona, quando scrivo il PIC e lo metto operativo nulla, vedo e rivedo il config word ma nulla, il listato prevede tramite le porte rb0 rb1 rb2 dei livelli alti a seconda dei casi, di conseguenza sulle porte rb6 rb7 si dovranno avere dei livelli alti o bassi a seconda dei casi, ma questi casi,......!!! quali sono direte, sono sensori luce, umidità e pioggia e dovranno interagire con le uscite appunto rb6-rb7, interponendo delle pause ( che nel sorgente sono settate in pochi secondi), posto il sorgente, sperando che qualcuno possa darmi una dritta su come settare i config word tenedo presente che utilizzo il oscillatore interno del 16f628a, essendo piccole pause.
Alcuni settaggi, ho dedotto dal datasheet a cosa servono e ho agito nel settarli, i cp- e -cpd, ma altri non riesco a digerirli, sembra che uno faccia l'opposto di un altro o interferisca con altri, si rammenti che opero con il mikrobasic ed il pckit2 clone
grazie della vostra gentilezza ed ecco il listato:
eccomi alle prese con il mio listato, con un simulatore software funziona, quando scrivo il PIC e lo metto operativo nulla, vedo e rivedo il config word ma nulla, il listato prevede tramite le porte rb0 rb1 rb2 dei livelli alti a seconda dei casi, di conseguenza sulle porte rb6 rb7 si dovranno avere dei livelli alti o bassi a seconda dei casi, ma questi casi,......!!! quali sono direte, sono sensori luce, umidità e pioggia e dovranno interagire con le uscite appunto rb6-rb7, interponendo delle pause ( che nel sorgente sono settate in pochi secondi), posto il sorgente, sperando che qualcuno possa darmi una dritta su come settare i config word tenedo presente che utilizzo il oscillatore interno del 16f628a, essendo piccole pause.
Alcuni settaggi, ho dedotto dal datasheet a cosa servono e ho agito nel settarli, i cp- e -cpd, ma altri non riesco a digerirli, sembra che uno faccia l'opposto di un altro o interferisca con altri, si rammenti che opero con il mikrobasic ed il pckit2 clone
grazie della vostra gentilezza ed ecco il listato:
- Codice: Seleziona tutto
program centrx
'definizione variabili
dim stato as byte
dim k as byte
main:
portb=0 ' azzera pora b
trisb=%00000111 'rb8,7,6,5,4,3=out 2,1,0=in
ciclo: ' etichetta di sequenza
if portb.2=0 then ' pioggia = off
portb.7=0 ' led pioggia = off
end if ' prossima istruzione
if portb.2=1 then ' pioggia = on
portb.7=1 and portb.6=0 ' led/pioggia= on e pompa =off
end if ' prossima istruz
'---------------processo 1 condizione------------- luce/secco = off
if (portb.0=0) and (portb.1=0) then
stato =1
end if
'--------------processo 2 condizione--------------- luce/umido = off
if (portb.0=0) and (portb.1=1) then
stato =2
end if
'--------------processo 3 condizione-------------- buio/umido = off
if (portb.0=1) and (portb.1=1) then
stato =3
end if
'--------------processo 4 condizione--------------- buio/secco = on
if (portb.0=1) and (portb.1=0) then
stato =4
end if
'++++++++++++++processa le 4 condizioni++++++++++++
select case stato ' seleziona il caso
case 1
portb.6=0 ' pompa/led off
case 2
portb.6=0 ' pompa/led off
case 3
portb.6=0 ' pompa/led off
case 4
portb.6=1 ' pompa/led on
end select
if (stato =4) and (portb.2=0)then ' luce=1 terra=0 e pioggia=0
portb.7=0 'led/pioggia =0
for k =1 to 2 step 1 ' conta 2 cilcli
delay_ms (5000) ' x 5''= 10''
next k
end if 'prossima isturzione
portb.6=0 'dopo pompa =0
delay_ms (5000) ' attendi 5''
if (stato =4) and (portb.2=1) then 'luce=01 terra=0 pioggia=1
portb.6=0 'pompa =0
portb.7=1 'led/pioggia=1
end if 'prossima istruzione
if (stato < 4) and (portb.2=0) or(portb.2=1) then 'sensori no on -pioggia=0/1
delay_ms (10000) 'attendi 10''
goto ciclo 'ricomincia ciclo verifica
end if 'prossima istruzione
goto main 'torna inizio
end.
Ultima modifica di
Paolino il 17 nov 2013, 9:12, modificato 1 volta in totale.
Motivazione: Edit: il codice sorgente va messo tra i tag [code] e [/code], come già segnalato, usando il pulsante in alto a sinistra!
Motivazione: Edit: il codice sorgente va messo tra i tag [code] e [/code], come già segnalato, usando il pulsante in alto a sinistra!
0
voti
[13] Re: usare PIC
per il listato ho difficoltà ad aiutarti, uso il C.
per i settaggi della config word dovresti postare qualcosa che ne indichi lo stato, può essere che il difetto sia qua,
il fatto che il simulatore funzioni, può anche essere il motivo che non ha bisogno del clock, visto che i simulatori non sempre sono coerenti con la realtà.
fondamentale è assicurarsi che il clock sia settato INTOSC; studiati le pagine 96 del datasheets e successive.
non capisco perché il goto main.....vai a settare di nuovo le uscite a zero!
magari prova prima con un semplice programma con due righe per accendere e spegnere un led uscita; giusto per verificare se il clock funziona.....poi passi al tuo software sapendo che gira.
per i settaggi della config word dovresti postare qualcosa che ne indichi lo stato, può essere che il difetto sia qua,
il fatto che il simulatore funzioni, può anche essere il motivo che non ha bisogno del clock, visto che i simulatori non sempre sono coerenti con la realtà.
fondamentale è assicurarsi che il clock sia settato INTOSC; studiati le pagine 96 del datasheets e successive.
non capisco perché il goto main.....vai a settare di nuovo le uscite a zero!
magari prova prima con un semplice programma con due righe per accendere e spegnere un led uscita; giusto per verificare se il clock funziona.....poi passi al tuo software sapendo che gira.
-

lelerelele
4.899 3 7 9 - Master

- Messaggi: 5505
- Iscritto il: 8 giu 2011, 8:57
- Località: Reggio Emilia
0
voti
[14] Re: usare PIC
grande, seguirò il tuo consiglio,infatti ho provato prima un semplice codice che accende un led ma senza clock,
poi ho provato lo stesso aggiungendo un clok e settando intosc_osc noclockout, il risultato quando alimento il circuito si accende subito il led su uscita e rimane acceso ho settato un tempo di 5 sec ma niente, riguardo il datasheet, essendo in inglese mah!! cercherò di intuire al meglio,
aggiorno in seguito e grazie
poi ho provato lo stesso aggiungendo un clok e settando intosc_osc noclockout, il risultato quando alimento il circuito si accende subito il led su uscita e rimane acceso ho settato un tempo di 5 sec ma niente, riguardo il datasheet, essendo in inglese mah!! cercherò di intuire al meglio,
aggiorno in seguito e grazie
1
voti
[15] Re: usare PIC
Un paio di domande: riesci a scrivere un programmino per far lampeggiare un LED in modo che sia ON per 1 secondo e OFF per 1 secondo, in continuazione?
Secondo: quando scrivi:
non capisco perché il goto ciclo è all'interno del corpo "if". Prova con:
Ciao.
Paolo
Secondo: quando scrivi:
- Codice: Seleziona tutto
if (stato < 4) and (portb.2=0) or(portb.2=1) then 'sensori no on -pioggia=0/1
delay_ms (10000) 'attendi 10''
goto ciclo 'ricomincia ciclo verifica
end if 'prossima istruzione
goto main 'torna inizio
end.
non capisco perché il goto ciclo è all'interno del corpo "if". Prova con:
- Codice: Seleziona tutto
if (stato < 4) and (portb.2=0) or(portb.2=1) then 'sensori no on -pioggia=0/1
delay_ms (10000) 'attendi 10''
end if 'prossima istruzione
goto ciclo 'ricomincia ciclo verifica
goto main 'torna inizio (PROBABILMENTE NON SERVE A NULLA QUESTA RIGA)
end.
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
[16] Re: Usare PIC
Innanzitutto lascia perdere i simulatori se non per provare cose banali.
Inverti le istruzioni:
Portb=0
Trisb=xxxx
Non puoi azzerare una porta e poi definirla! Al supermercato prima paghi e poi prendi la roba dagli scaffali?!?!?!?!
Che versione di mikrobasic usi? Io programmo con mikrobasic Pro 6.0
Non usare la istruzione GOTO, la stessa Mikroe ne sconsiglia l'uso. Usa l'istruzione WHILE oppure DO!
cosa deve fare questa parte di codice?
scritta così potresti avere dei risultati imprevisti, senza contare che se l'istruzione è vera salta alla label CICLO, altrimenti salta alla label MAIN ripartendo tutto da zero.
POSTA LA CONFIG_WORD e LA CONFIGURAZIONE con cui intendi usare il PIC
Descrivi ACCURATAMENTE cosa deve fare il programma altrimenti non ti si può aiutare.
buona giornata.
Inverti le istruzioni:
Portb=0
Trisb=xxxx
Non puoi azzerare una porta e poi definirla! Al supermercato prima paghi e poi prendi la roba dagli scaffali?!?!?!?!
Che versione di mikrobasic usi? Io programmo con mikrobasic Pro 6.0
Non usare la istruzione GOTO, la stessa Mikroe ne sconsiglia l'uso. Usa l'istruzione WHILE oppure DO!
cosa deve fare questa parte di codice?
- Codice: Seleziona tutto
if (stato < 4) and (portb.2=0) or(portb.2=1) then 'sensori no on -pioggia=0/1
delay_ms (10000) 'attendi 10''
goto ciclo 'ricomincia ciclo verifica
end if
goto main 'torna inizio
end.
scritta così potresti avere dei risultati imprevisti, senza contare che se l'istruzione è vera salta alla label CICLO, altrimenti salta alla label MAIN ripartendo tutto da zero.
POSTA LA CONFIG_WORD e LA CONFIGURAZIONE con cui intendi usare il PIC
Descrivi ACCURATAMENTE cosa deve fare il programma altrimenti non ti si può aiutare.
buona giornata.
0
voti
[17] Re: Usare PIC
salve: è vero + controllo il codice e verifico passaggi e + vado in palla.
io uso un demo di mikrobasic v7.0.0.2 permette piccolo listato giuso giusto il mio,
spiegarti cosa deve fare? cercherò di riassumere: tramite dei sensori, luce umidità, e pioggia deve comandare l'irrigazione del mio orto sul balcone,
questo è il codice
per quanto rigurda la parte che mi hai chiesto cosa fa che riporto
dovrebbe!!! verificare se lo stato è minore di 4 attendere 20 sec e ritornare all'inizio
Per quanto rigurda il config word sto diventando matto! non ci riesco a capire nelle immagini del datasheet
e comunque io ho settato come figura che allego:
Beh ho capito come postare il codice con il pulsante e come inserire le immagini
Ma tornando al codice la strada mi sembra molto in salita, se ti dico che sono 2 mesi che un paio di ore al giorno ci lavoro sopra non ci crederai ma iniziando da zero, solo per il fatto che qualcuno mi dia delle dritte è confortante.
la saga continua!!!!!!
io uso un demo di mikrobasic v7.0.0.2 permette piccolo listato giuso giusto il mio,
spiegarti cosa deve fare? cercherò di riassumere: tramite dei sensori, luce umidità, e pioggia deve comandare l'irrigazione del mio orto sul balcone,
questo è il codice
- Codice: Seleziona tutto
'definizione variabili
dim stato as byte
dim k as byte
main:
trisb=%00000111 'rb8,7,6,5,4,3=out 2,1,0=in
portb=0 ' azzera portb
ciclo: ' etichetta di sequenza
if portb.2=0 then ' pioggia = off
portb.7=0 ' led pioggia = off
end if ' prossima istruzione
if portb.2=1 then ' pioggia = on
portb.7=1 and portb.6=0 ' led/pioggia= on e pompa =off
end if ' prossima istruz
'---------------processo 1 condizione------------- luce/secco = off
if (portb.0=0) and (portb.1=0) then
stato =1
end if
'--------------processo 2 condizione--------------- luce/umido = off
if (portb.0=0) and (portb.1=1) then
stato =2
end if
'--------------processo 3 condizione-------------- buio/umido = off
if (portb.0=1) and (portb.1=1) then
stato =3
end if
'--------------processo 4 condizione--------------- buio/secco = on
if (portb.0=1) and (portb.1=0) then
stato =4
end if
'++++++++++++++processa le 4 condizioni++++++++++++
select case stato ' seleziona il caso
case 1
portb.6=0 ' pompa/led off
case 2
portb.6=0 ' pompa/led off
case 3
portb.6=0 ' pompa/led off
case 4
portb.6=1 ' pompa/led on
end select
if (stato =4) and (portb.2=0)then ' luce=1 terra=0 e pioggia=0
portb.7=0 'led/pioggia =0
for k =1 to 3 step 1 ' conta 3 cilcli
delay_ms (20000) ' x 20''= 1'
next k
end if 'prossima isturzione
portb.6=0 'dopo pompa =0
delay_ms (5000) ' attendi 5''
if (stato =4) and (portb.2=1) then 'luce=01 terra=0 pioggia=1
portb.6=0 'pompa =0
portb.7=1 'led/pioggia=1
end if 'prossima istruzione
if (stato < 4) and (portb.2=0) or(portb.2=1) then 'sensori no on -pioggia=0/1
delay_ms (20000) 'attendi 20''
end if
goto ciclo 'ricomincia ciclo verifica
per quanto rigurda la parte che mi hai chiesto cosa fa che riporto
- Codice: Seleziona tutto
if (stato < 4) and (portb.2=0) or(portb.2=1) then 'sensori no on -pioggia=0/1
delay_ms (20000) 'attendi 20''
end if
goto ciclo 'ricomincia ciclo verifica
dovrebbe!!! verificare se lo stato è minore di 4 attendere 20 sec e ritornare all'inizio
Per quanto rigurda il config word sto diventando matto! non ci riesco a capire nelle immagini del datasheet
e comunque io ho settato come figura che allego:
Beh ho capito come postare il codice con il pulsante e come inserire le immagini
Ma tornando al codice la strada mi sembra molto in salita, se ti dico che sono 2 mesi che un paio di ore al giorno ci lavoro sopra non ci crederai ma iniziando da zero, solo per il fatto che qualcuno mi dia delle dritte è confortante.
la saga continua!!!!!!
- Allegati
-
- conf2.JPG (24.97 KiB) Osservato 6698 volte
-
- Conf1.JPG (27.44 KiB) Osservato 6698 volte
0
voti
[18] Re: Usare PIC
rispondo a Paolo:
Nei precedenti post, come avevo detto ho ricominciato scrivendo un semplice codice per lampeggio led, per verificare poi, cosa avevo sbagliato nel mio, il lampeggio è un po' più di 1 secondo, sono 5 ma funzionava, ultimamente ho riprovato e non funziona +, devo rivedere cosa è sucesso, forse ho toccato il config word, facendo prove su prove su prove......... ma riuscendo nel concetto, avevo preso spunto per il mio ora sono arenato.
Ps. nonostante l'alimentazione del PIC proveninteda alimentatore 5v in effetti risulta 5,07 può incidere sul non funzionamento del PIC stesso in quanto con pckit2 clone, lo scrivo con 5 v?
Mi è sorto questo dubbio
Comunque grazie a voi tutti per l'aiuto che mi stato offrendo
Nei precedenti post, come avevo detto ho ricominciato scrivendo un semplice codice per lampeggio led, per verificare poi, cosa avevo sbagliato nel mio, il lampeggio è un po' più di 1 secondo, sono 5 ma funzionava, ultimamente ho riprovato e non funziona +, devo rivedere cosa è sucesso, forse ho toccato il config word, facendo prove su prove su prove......... ma riuscendo nel concetto, avevo preso spunto per il mio ora sono arenato.
Ps. nonostante l'alimentazione del PIC proveninteda alimentatore 5v in effetti risulta 5,07 può incidere sul non funzionamento del PIC stesso in quanto con pckit2 clone, lo scrivo con 5 v?
Mi è sorto questo dubbio
Comunque grazie a voi tutti per l'aiuto che mi stato offrendo
0
voti
[19] Re: Usare PIC
zacarov ha scritto:l'alimentazione del PIC proveninteda alimentatore 5 V in effetti risulta 5,07 può incidere sul non funzionamento del PIC stesso in quanto con pckit2 clone, lo scrivo con 5 v?
No.
basta che stai sotto al limite elettrico del micro (dovrebbero essere intorno ad i 5.5V) il funzionamento non cambia.
tra l'altro la programmazione in flash è a 12V, ottenuti tramite pickit sul pin MCLR/Vpp.
-

lelerelele
4.899 3 7 9 - Master

- Messaggi: 5505
- Iscritto il: 8 giu 2011, 8:57
- Località: Reggio Emilia
2
voti
[20] Re: Usare PIC
Urca,
zacarov, vedo solo ora una cosa che mi lascia un po' perplesso!
Quando scegli la tipologia dell'oscillatore non puoi andare a selezionare tre modalità contemporaneamente! Nella pagina di configuration bit, devi scegliere solamente una modalità. Nel seguito, prova solamente con quella cerchiata in rosso, le altre vanno de-selezionate:
Ciao.
Paolo.
Quando scegli la tipologia dell'oscillatore non puoi andare a selezionare tre modalità contemporaneamente! Nella pagina di configuration bit, devi scegliere solamente una modalità. Nel seguito, prova solamente con quella cerchiata in rosso, le altre vanno de-selezionate:
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)
31 messaggi
• Pagina 2 di 4 • 1, 2, 3, 4
Torna a Realizzazioni, interfacciamento e nozioni generali.
Chi c’è in linea
Visitano il forum: Nessuno e 3 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)

