Citazione:
Originalmente inviato da MSchiepp Il problema è leggermente diverso: è evidente che non è difficile 'contare' un impulso che dura 200uS con un micro che ha un ciclo di istruzioni di 1uS, ma il problema è che non si riesce a rilevarne e contarne contemporaneamente (e correttamente!) quattro che arrivano in modo completamente asincrono: non è quindi un problema di assembler o C, ma di risorse del micro che non consentono di fare queste cose.
Non a caso vendono le UART già fatte...
Michele |
Non sono d'accordo,ripeto lo ho già fatto...
ripeto il programma deve "scansionare" continuamente gli ingressi
e le altre operazioni le fà a rate :
il segnale và alto sul pin,il pic lo vede (20 istruzioni in +
non è un problema),memorizza e continua con la scansione...
da lì ripassa molte volte mentre trascorrono quei fatidici 204 uS
e prende in considerazione solo la lettura + centrale ai 204
scartando il primo bit (partenza) e l'ultimo (chiusura)
mentre gli altri gli mette in una locazione di ram.
Ovvio,ripeto,che lo fà senza fermarsi e continuando a leggere sugli altri ingressi e per questi facendo lo stesso.
restano libere diverso tempo istruzione per fare le altre cose.
Il Pic và programmato per comportarsi come esempio un PLC
cioè non deve fermarsi ad aspettare ma gestisce le varie operazioni a
scansione.