ringrazio MSchiepp; ma ringrazio anche Juljila che anche se non scrive so che legge.. e il suo consiglio mi è parso molto utile in privato
fermo restando la procedura scritta inizialmente, sembrerebbe funzionare qualcosa, ho messo nella ricevente 6V mentre sul 16F628 5V altrimenti andrebbe in fumo. Bene con una ricevente Hitec 40 MHz FUNZIONA!, anche se l'escursione è più corta , oscilla tra i 55 e i 191, mentre il servo test da 1 a 255 esatti, diciamo che il servo test ha una buona escursione.
Detto questo però cambio ricevente passo ad una OPTTIMA 2,4GHz pur alimentandola con 6v niente.
Per cui credo che la difficoltà stia nell'impedenza dei Pin dell'16F628 troppo alta da non permettere l'ingresso del segnale, insomma l' '1' lo legge come uno zero.... che fare?
torno su MSchiepp:
grazie per il suggerimento , tieni presente che i commenti sono copiati da altri sorgenti, per cui si trovano incollati senza aderenza alla vera istruzione!
per le porte nessun problema conosco bene i registri TRISB e TRISA , per cui ..anzi adesso ho messo la DEFINE in modo che con una sola modifica posso cambiare la porta di ingresso , ho letto il tuo codice, ottimo, prenderò spunto di lavorare anche con timer1 visto che ha 2 byte anzichè uno, credo che per l'estensione possa essere utile.
a dopo
fausto
Citazione:
Originalmente inviato da MSchiepp Deve funzionare... controlla di essere collegato sul pin giusto e con la massa del ricevitore collegata alla massa del micro; nei commenti hai scritto bit 0 di PORTB, ma tu testi il bit 2!
visto che usi il 628 che ha anche il timer1, è più facile fare la lettura così:
MAIN
CLRF TMR1L
CLRF TMR1H
BTFSS PORTA,2
GOTO $-1
BSF T1CON,0
BTFSC PORTA,2
GOTO $-1
BCF T1CON,0
(valore dell'impulso in timer1)
Se vuoi misurare solo dopo 1 mS, carichi il timer1 a -1000 (0xFC17) in modo che vada in overflow dopo 1ms e ricomincia a contare da zero.
Michele |