Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 22 luglio 14, 10:47   #11 (permalink)  Top
User
 
Data registr.: 19-07-2014
Messaggi: 17
Citazione:
Originalmente inviato da microcontrollorepic Visualizza messaggio
adesso sono in ufficio, questa sera scarico il listato e li do un occhio.......

se usi mikrobasic, guardati gli esempi da cui puoi trarre molte soluzioni.........

Flavio

n.b che versione hai di mikrobasic?
Sto usando mikrobasic 6.4.0 ,quello che si trova free fino a 2kb sul sito ufficiale.
Dato che il programma che ho realizzato non raggiunge neanche un kb, va piu che bene.
Uso questo perchè a scuola ho utilizzato questo programma proprio con la scheda che hai tu, programmavo l'LCD, o facevo giochi con i led.
Ora pero' dopo qualche anno sto incontrando problemi.
Se avete bisogno anche dello schema che ho realizzato , ve la posto.
Se serve , dato che il pic 12f629, lavora a circa 4mhz, ho inserito un quarzo da 4mhz, per evitare di inserire l'oscillatore interno.

Vi ringrazio.
Buona giornata
attendo notizie
trabo non è collegato   Rispondi citando
Vecchio 22 luglio 14, 11:15   #12 (permalink)  Top
User
 
L'avatar di microcontrollorepic
 
Data registr.: 18-07-2007
Residenza: milano
Messaggi: 1.495
Citazione:
Originalmente inviato da trabo Visualizza messaggio
Sto usando mikrobasic 6.4.0 ,quello che si trova free fino a 2kb sul sito ufficiale.
Dato che il programma che ho realizzato non raggiunge neanche un kb, va piu che bene.
Uso questo perchè a scuola ho utilizzato questo programma proprio con la scheda che hai tu, programmavo l'LCD, o facevo giochi con i led.
Ora pero' dopo qualche anno sto incontrando problemi.
Se avete bisogno anche dello schema che ho realizzato , ve la posto.
Se serve , dato che il pic 12f629, lavora a circa 4mhz, ho inserito un quarzo da 4mhz, per evitare di inserire l'oscillatore interno.

Vi ringrazio.
Buona giornata
attendo notizie
prima cosa devi essere sicuro che la parte hardware sia settata correttamente intendo come registri altrimenti parti con il piede sbagliato, vedo che questo pic ha molte 8 porte e molti piedini multifunzionale che se settati nel modo errato creano problemi.....

domanda ma perchè usi questo pic per un lavoro cosi semplice?

io ti consiglio di usare un 16f84 classico e molto semplice per testare il programma, è un piccolo trucco per togliersi dei dubbi.....

Flavio
__________________
SITO INTERNET:
Taglio cnc,https://www.rebasti.it/categoria-pro...B4q6Zc71GROXn4
microcontrollorepic non è collegato   Rispondi citando
Vecchio 22 luglio 14, 11:50   #13 (permalink)  Top
User
 
Data registr.: 19-07-2014
Messaggi: 17
Citazione:
Originalmente inviato da microcontrollorepic Visualizza messaggio
prima cosa devi essere sicuro che la parte hardware sia settata correttamente intendo come registri altrimenti parti con il piede sbagliato, vedo che questo pic ha molte 8 porte e molti piedini multifunzionale che se settati nel modo errato creano problemi.....

domanda ma perchè usi questo pic per un lavoro cosi semplice?

io ti consiglio di usare un 16f84 classico e molto semplice per testare il programma, è un piccolo trucco per togliersi dei dubbi.....

Flavio
ho usato questo pic perchè vorrei inserire la schedina dove è alloggiato , all'interno di un cilindro di 5cm di diametro, quindi essendo il 16f84 molto grande, per necessità di spazio ho optato per questo pic.
A livello hardware , sto usando le porte gp0-gp1-gp2, dove gp0 ho collegato il pulsante, gp1 ho collegato 4 led, gp2 altri 4 led.
in poche parole vorrei realizzare un piccolo cilindro con gli 9 led che escono sopra, ho preparato un dischetto con 8 buchi, dove andranno alloggiati i led.
e centrale il pulsante.
trabo non è collegato   Rispondi citando
Vecchio 22 luglio 14, 12:50   #14 (permalink)  Top
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.069
a mio giudizio vanno disabilitati i comparatori sulle porte gpio 0,1,2 non ricordo a memoria il registro, dopo a casa verifico.
Inoltre come pic presenta un notevole vantaggio rispetto al 16f84... non ha bisogno di oscillatore esterno, tuttavia ricordati che per ottenete timing decenti devi caricare la calibrazione in OSCCAL.
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando
Vecchio 22 luglio 14, 13:16   #15 (permalink)  Top
User
 
Data registr.: 19-07-2014
Messaggi: 17
Citazione:
Originalmente inviato da romoloman Visualizza messaggio
a mio giudizio vanno disabilitati i comparatori sulle porte gpio 0,1,2 non ricordo a memoria il registro, dopo a casa verifico.
Inoltre come pic presenta un notevole vantaggio rispetto al 16f84... non ha bisogno di oscillatore esterno, tuttavia ricordati che per ottenete timing decenti devi caricare la calibrazione in OSCCAL.
ti ringrazio...
il comparatore dovrei averli disabilitati, con cmcon=7
quindi tolgo il quarzo da 4mhz?
Attendo notizie

Ultima modifica di trabo : 22 luglio 14 alle ore 13:21
trabo non è collegato   Rispondi citando
Vecchio 22 luglio 14, 13:30   #16 (permalink)  Top
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.069
Citazione:
Originalmente inviato da trabo Visualizza messaggio
ti ringrazio...
il comparatore dovrei averli disabilitati, con cmcon=7
quindi tolgo il quarzo da 4mhz?
Attendo notizie
avevo visto l'ultima copia del sorgente e crcom non c'era...
non è che puoi postare il codice che effettivamente stai usando ?

Inoltre per debuggare il programma ti consiglio un ottimo programma che si chiama pic simulator ide. che simula anche l'hardware attorno (ingressi pulsanti etc)
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando
Vecchio 22 luglio 14, 13:40   #17 (permalink)  Top
User
 
Data registr.: 19-07-2014
Messaggi: 17
Citazione:
Originalmente inviato da romoloman Visualizza messaggio
avevo visto l'ultima copia del sorgente e crcom non c'era...
non è che puoi postare il codice che effettivamente stai usando ?

Inoltre per debuggare il programma ti consiglio un ottimo programma che si chiama pic simulator ide. che simula anche l'hardware attorno (ingressi pulsanti etc)

allora questo è quello che ho scritto da 0... con soli 2 effetti e funziona.
Se aggiungo il 3 effetto lo salta:

[program Lampeggioled



main:


while TRUE
trisio.1=0
trisio.2=0
trisio.0=1

gpio.1=1
gpio.2=1
cmcon=7



delay_ms(2000)

while gpio.0=0
gpio.1=1
delay_ms(1000)
gpio.1=0
delay_ms(1000)
wend



while gpio.0=0
delay_ms(2000)
gpio.2=0
delay_ms(2000)
wend



wend


Mentre questo è il primo in assoluto che ho realizzato...
Solo che ogni volta che premo il pulsante, mi va random:

program MyProject


main:
TRISIO.1=0
TRISIO.2=0
TRISIO.0=1
cmcon=7
IF gpio.0=0 THEN
GOTO fissa
end if

fissa:
TRISIO.1=0
TRISIO.2=0
TRISIO.0=1
cmcon=7
while true
gpio.1=1
gpio.2=1
if gpio.0=1 then
goto inizio
end if
wend


inizio:
delay_ms(100)
TRISIO.1=0
TRISIO.2=0
TRISIO.0=1
cmcon=7

while true
if gpio.0=1 then
goto mezzo
end if
GPIO.1=1
gpio.2=1
delay_us(50)
GPIO.2=0
gpio.1=0
delay_us(50)
IF GPIO.0=1 THEN
GOTO mezzo
end if
wend


mezzo:
delay_ms(100)
TRISIO.1=0
TRISIO.2=0
TRISIO.0=1
cmcon=7

while true
if gpio.0=1 then
goto strobo
end if
gpio.2=1
delay_ms(500)
gpio.2=0
delay_ms(500)
gpio.1=1
delay_ms(500)
gpio.1=0
delay_ms(500)
if gpio.0=1 then
goto strobo
end if
wend

strobo:
delay_ms(100)
TRISIO.1=0
TRISIO.2=0
TRISIO.0=1
cmcon=7
while true
if gpio.0=1 then
goto fissa
end if
gpio.1=1
gpio.2=1
delay_ms(50)
gpio.1=0
gpio.2=0
delay_ms(50)
if gpio.0=1 then
goto fissa
end if
wend
end.


INFINE, questo è quello che ho provato inserendo la variabile K ed eliminando i goto.
Questo si blocca al secondo effetto e da li non si muove:


program Lampeggioled

const tasto as byte[4]=(0,1,2,3)
dim K as byte
dim premuto as byte

main:
gpio.0=0
gpio.1=0
gpio.2=0
K=0
premuto=0
trisio.1=0
trisio.2=0
trisio.0=1
cmcon=7
while true
if gpio.0=0 then
premuto=0
end if

if (gpio.0=1)and (K<3) and (premuto=0) then
K=K+1
premuto=1
end if

if(gpio.0=1) and (K=3)and(premuto=0)then
K=0
end if

if K=0 then
gpio.1=1
gpio.2=1
end if

if K=1 then
gpio.1=1
gpio.2=1
delay_us(50)
gpio.1=0
gpio.2=0
delay_us(50)
end if

if K=2 then
gpio.1=1
delay_ms(500)
gpio.1=0
delay_ms(500)
gpio.2=1
delay_ms(500)
gpio.2=0
delay_ms(500)
end if

if K=3 then
gpio.1=1
gpio.2=1
delay_ms(50)
gpio.1=0
gpio.2=0
delay_ms(50)
end if
wend
end.

Ora tutti e 3 hanno dei problemi, e fino ad ora, l'unico che cambia perfettamente è quello con i soli while, ma non legge (se lo aggiungo ) il 3o effetto[/COLOR]
trabo non è collegato   Rispondi citando
Vecchio 23 luglio 14, 17:09   #18 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Citazione:
Originalmente inviato da trabo Visualizza messaggio
allora questo è quello che ho scritto da 0... con soli 2 effetti e funziona.
Se aggiungo il 3 effetto lo salta:
Supponendo che non ci siano problemi nell'hardware, c'è sicuramente un problema sui rimbalzi dell'interruttore e su come lo utilizzi.
In pratica hai due cicli while uno dietro l'altro con la condizione di ripetizione data dallo stato del pulsante.
Adesso immagina di essere nel primo while: fino a che l'ingresso è zero continua ad eseguire il codice contenuto nel while, ma quando l'ingresso diventa 1 esegue l'istruzione while, trova l'ingresso a 1 ed esegue subito l'istruzione seguente il wend, che è un altro while e se l'ingresso è ancora a 1 lo salta ed esce subito al wend...
In pratica il cambio dell'effetto lo fa sui rimbalzi del pulsante e sfruttando i ritardi dei vari effetti.
Prova a mettere la condizione in fondo all'effetto, invece che all'inizio: non uso il mikrobasic, ma dovresti avere una struttura do ... while(condizione); in questo caso tra quando trova il pulsante chiuso e quando lo va a testare la volta successiva hai il tutto il tempo di ritardo dell'effetto che dovrebbe annullarti i rimbalzi.

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 30 luglio 14, 12:39   #19 (permalink)  Top
User
 
Data registr.: 19-07-2014
Messaggi: 17
Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
Supponendo che non ci siano problemi nell'hardware, c'è sicuramente un problema sui rimbalzi dell'interruttore e su come lo utilizzi.
In pratica hai due cicli while uno dietro l'altro con la condizione di ripetizione data dallo stato del pulsante.
Adesso immagina di essere nel primo while: fino a che l'ingresso è zero continua ad eseguire il codice contenuto nel while, ma quando l'ingresso diventa 1 esegue l'istruzione while, trova l'ingresso a 1 ed esegue subito l'istruzione seguente il wend, che è un altro while e se l'ingresso è ancora a 1 lo salta ed esce subito al wend...
In pratica il cambio dell'effetto lo fa sui rimbalzi del pulsante e sfruttando i ritardi dei vari effetti.
Prova a mettere la condizione in fondo all'effetto, invece che all'inizio: non uso il mikrobasic, ma dovresti avere una struttura do ... while(condizione); in questo caso tra quando trova il pulsante chiuso e quando lo va a testare la volta successiva hai il tutto il tempo di ritardo dell'effetto che dovrebbe annullarti i rimbalzi.

Michele
Niente di niente...
A questo punto credo sia lo schema...
POSTO lo schema qui... se potete vedere se ho errato qualcosa
Image - TinyPic - Servizio di hosting d'immagini, condivisione immagini & hosting di video gratuito


Grazie ancora
trabo non è collegato   Rispondi citando
Vecchio 30 luglio 14, 16:16   #20 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
qualche ritocco sull'hardware si può fare...

- aggiungi un condensatore elettrolitico 10uF 16V all'uscita del regolatore
- aggiungi un condensatore di filtro da 47 nF tra il pin 1 e il pin 8 del micro
- il condensatore C1 non serve a molto... se vuoi filtrare il pulsante devi mettere anche una resistenza in serie (t=RC, ma se R=0...)

visto che hai già messo i transistor, lasciali, ma puoi pilotare direttamente i led dai pin del micro (con la dovuta resistenza) con correnti fino a 20mA.

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
pic 12F629 faustog_2 Circuiti Elettronici 2 07 ottobre 13 11:52
ESC con PIC Italia Circuiti Elettronici 4 23 marzo 13 16:27
Problema con programma MPX per aggiornamento Royal PRO picman Radiocomandi 0 29 agosto 10 20:27
Programma facile per pic Orso82 Circuiti Elettronici 20 27 febbraio 05 16:44
Regolatore con PIC rapis Circuiti Elettronici 1 26 novembre 01 11:15



Tutti gli orari sono GMT +2. Adesso sono le 16:51.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002