PDA

View Full Version : pic16f86 e problemino...


khri81
06-07-2004, 11:58
ciao sto programmando questo pic x realizzare una macchinetta distributrice di bevande e da mangiare. il mio problema è quando devo contare i soldi.
allora ci sono le monete e la carta, le due macchinette in cui si inseriscono i soldi mi danno fuori un impulso ogni 50 cent, io ho pensato conto gli impulsi e in base a quanti impulsi ottengo basta moltiplicare x 50 e ottengo i soldi inseriti.

magari fosse cosi facile, in teoria funziona ma nella realtà funziona molto meno, ho realizzato questa parte di codice tramite un if:

if (ingresso_soldi == 1)
cont++;
delayms(25);

la pausa l'ho messa altrimenti x ogni impulso che mi da fuori la macchinetta dei soldi, ne vengono rilevati 4 o 5 in più.

purtroppo funziona male, xchè mettendo x es. 2 euro, a volte mi conta 3 impulsi, a volte 4, a volte 5, invece dovrebbero essere 4!
come posso fare x renderlo più preciso?
qualcuno di voi saprebbe darmi una dritta?

ciao e grazie.

cionci
06-07-2004, 13:38
Prova così:

int flag = 0;

flag = 0;
do {
ingresso_soldi = leggi_stato_lettore();
if(!flag && ingresso_soldi == 1) flag = 1;
} while (ingresso_soldi == 1);
if(flag) cont++;

-jakal-
12-07-2004, 14:32
e perchè non usi gli interrupt?