Vai al contenuto
PLC Forum


Info Su Pic Basic - info su pic basic


stefano_

Messaggi consigliati

ciao a tutti,

sto realizzando un programmino con un pic16f84 e picbasic pro V 7.1

Il programma è costituito da un ciclo che si ripete all'infinito che aspetta la pressione di un tasto

dopodiche incrementa di una unita un display a 7 segmenti per poi attendere nuovamente la pressione

del pulsante per poi incrementare ancora, il problema è che parallelamente a questo ciclo infinito vorrei ci fosse un secondo ciclo infinito che mi setti e resetti un uscita a distanza di 1 secondo per esempio

Come posso fare ??

Ancora una cosa:

poò essere che in pic basic pro V7 non ci sia l'istruzione select case ???

come sempre ringrazio anticipatamente tutti

ciao ciao

Link al commento
Condividi su altri siti


Gianmario Pedrani

se utilizzai un linguaggio ad alto livello come il basic, puoi implementare le tue funzioni in un unico ciclo infinito verificandole con degli if

es:

while condizione

if tasto premuto = vero

incrementi , fai quello che devi fare

end if

if tempo = 10 sec

if uscita = 1

resett uscita

else uscita = 0

setti uscita

end if

do

non badare a come ho scritto non so se la sistassi è corretta ma spero di averti dato un idea

ciaooooooooooooo

Link al commento
Condividi su altri siti

se scrivo

if a = 3 then

a = a+1

else

a = a - 1

end if

mi da il seguente errore

"IF A = 3 THEN assignment operator missing"

e

"ELSE assignment operator missing"

come mai ???? la sintassi dovrebbe essere corretta !??!?!?!!

grazie ancora per la tua risposta

Link al commento
Condividi su altri siti

nel manuale l'operazione di confronto è =

l'operazione == non esiste comunque per sicurezza ho fatto delle prove ma non funzia ugualmente !!!!!!

Aiutooooooooooooo ?!?!!!!!!!!!!!!!!

Grazie 1000 ragazzi per il vostro interesse

Link al commento
Condividi su altri siti

Gianmario Pedrani

Credo che ci sia qualcosa che non quadra, anche perche' nel tuo pezzetto di codice fai un confronto

if=3 then

e poi sotto fai un assegnazione a=a+1

credo che sia un po strano che l'operando di assegnazione sia uguale a quello di confronto

Prova a controllare l'help interno

e poi facci sapere

credo che il confronto sia a= 3 then

e poi devi scrivere a:= a+1

i := sono l'assegnazione in visualbasic

Link al commento
Condividi su altri siti

ciao,

ho visto l'. interno ed utilizza = sia per il confronto che per l'assegnazione, poi ho provato a terminare con endif

ma non c'è niente da fare proprio non vuole andare !!!!!!!!!!!!!!!!!

Se vi viene in mente qualcosa fatemi sapere !!!!!!

Link al commento
Condividi su altri siti

Gianmario Pedrani

Per assegnare una variabile devi mettere := mentre = lo usi per confrontare, prova!!!!!

se deriva da vb e' per forza cosi'

ciaooooooooooo

Modificato: da Gianmario Pedrani
Link al commento
Condividi su altri siti

device 16f84

define portb = %00000000 'tutta la portb come uscite

define porta = %11100 'RA0 e RA1 come uscite RA2 RA3 RA4 come ingressi

low a.0 ' disattivo RA0

low a.1 ' disattivo RA1

outb (67) ' Attivo le uscite in modo tale da visualizzare il numero 7 sul display

' creo un ciclo infinito che mi controlla se schiaccio il pulsante presente su RA2

' se lo trova schiacciato (livello logico 0) attivo RA1 ( fino a quando tengo premuto il pulsante )

loop:

IF INPORTA & 2=0 Then high a.1 'se il il bit 2 di RA ( e quindi RA2) vale 1 ( livello logico alto ) attivo RA1

goto loop

end

il circuito non dovrebbe avere problemi perche se utilizzo l'istruzione "button" come per esempio

button B.2

gosub ok

ok:

set a.1

return

tutto funziona a meraviglia.

Grazie 1000 ancora a tutti

Link al commento
Condividi su altri siti

un'altra cosa,

moi capita spesso di leggere che l'ultima versione di pic basic da provare e scaricare è la 2.4 io ho

pic basic V 7.1 !!!!!!!!!!!!!!!!!

parliamo dello stesso programma ??!?!?!?! non vorrei che fosse questo l'inghippo !!!!

Link al commento
Condividi su altri siti

scusate ma il prg che ho si chiama let picbasic e pensavo fosse il picbasic di cui sento tanto parlare !!!!!

Se non è così sapete qualcosa su questo programma ???

Grazie ancora e scusate di nuovo se vi ho fatto penare !!!

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...