![]() |
Di niente, ho modificato il valore delle resistenze sul messaggio precedente... |
Mi era sfuggita questa differenza tra PORTA e PORTB Mi sembra abbastanza importante:wink: |
Citazione:
Ammesso e non concesso che la ricevente porti il segnale esattamente a 0V, si avrebbe un partitore con tensione all'ingresso del PIC di 5/(4.7+1)*1 = 0.88V circa... Io metterei la resistenza di pull up più grande, 5.6Kohm per esempio.:wink: |
Se lo avevo provato io non dicevo a lui di provarlo, ma di farlo direttamente... :wink: Comunque il concetto è chiaro, adesso si tratta di provare, e quindi correggere eventualmente i valori. |
Citazione:
|
ok grazie marcosinatti, però voorei precisare che fronte di salita o discesa si attivavo con i bit opportuni quinidi T0OC deve essere= 1 ovvero Counter mode, e poi x fronte di salita T0SE = 1 , T0SE = 0 fronte di discesa , che io però non ho mai attivato. La portb in effetti uso solo le porte 7 e 8 per la rx e tx seriale, in modo che faccio il debug, pero le altre in effetti sono libere potrei usarle. grazie ancora appena riesco ad ottenere il primo servo extends vi comunico qui stesso vi posto il codice.. a dopo fausto Citazione:
|
Sul fatto che la scelta del fronte viene determinata via software, non ci sono dubbi, ma se lo stadio di ingresso non è in grado di discriminare i livelli di tensione puoi abilitare quello che vuoi, lui non lo sente! |
ok ok quindi attivando dovremmo avere una migliore diciamo sensibilità o meglio un impedenza più bassa tale da permettere l'uso delle nostre riceventi in aeromodellismo. comunque bello poter coniugare aeromodellismo con elettronica.. molto affascinante, ci sto battendo da poco tempo , però mi rendo conto che molto interessante a presto fausto Citazione:
|
Nooo :axe: :lol::lol::lol: L'impedenza non c'entra niente, il problema è sulle soglie di tensione e basta. Poi sicuramente avranno anche impedenze diverse, ma comunque talmente alte che non influiscono di certo sulla tensione dei segnali provenienti dalla rx. |
ci sono riuscito ciao marcosinati.. come in oggetto ci sono riuscito , attualmente il servo extends lavora su un 25, 30% di escursione in più .. quello che ho ottenuto , come volevo è un semplice algoritmo, che non facesse uso dei timer, per motivi di didattica, devo spiegare a dei ragazzi di 3 industriale, che ne pensi? Il cuore dell'algoritmo è la seguente formula HALF = 118 + (ATTESA/2) DOVE ATTESA E IL TEMPO TRASCORSO DA DOPO IL PRIMO MILLISECONDO DAL SEGNALE IN INGRESSO, ATTESA VARIA DA circa 34 A 201 CIRCA, HO USATO UN HITEC OPTIMA7 2,4 GHz quindi da un estremo half vale 135... dall'altro 228, mentre il tempo medio si sa è di 178 se hai un idea migliore fammi sapere.. anche perchè questa soluzione non offre un parametro tale che se applicato si può aumentare o diminuire l'escursione. ecco il sorgernte ;----------------------------------------------------- ; EXTENDS.ASM - Dimostrativo di semplice estensione escursione servocomando ; ; created by Fausto Giudice ; www.openflight.it ;----------------------------------------------------- PROCESSOR 16F628 RADIX DEC INCLUDE "P16F628.INC" __CONFIG 11110100010000B ATTESA EQU 32 CL EQU 33 HALF EQU 34 H_COUNT EQU 35 L_COUNT EQU 36 #DEFINE PULSEIN PORTB,5 #DEFINE PULSEOUT PORTB,0 ORG 0 BSF STATUS,RP0 ; ** GO TO BANK 1 MOVLW b'00000000' MOVWF TRISA movlw b'11110010' movwf TRISB BCF STATUS,RP0 ; ** RETURN BANK 0 ; ; _________________________________________ ; ; START PROGRAM ; ------------------------------------ ; LOOP BTFSS PULSEIN ; FINCHE NON LEGGE 1 RIMANE QUI GOTO $-1 CALL PP ; ATTENTE UN MILLI SECONO YY BTFSS PULSEIN ; GOTO SHOW INCF ATTESA,F ; INCREMENTA COUNT GOTO YY SHOW MOVF ATTESA,W MOVWF HALF BCF STATUS,C RRF HALF,F MOVLW 118 ADDWF HALF,F CALL PULSE_OUT ; ATTESA CALL DELAY_20 ; IMPULSO ESTESO CLRF ATTESA ; RESETTA COUNT GOTO LOOP ; TORNA A LEGGERE DALLA PORTA DI INGRESSO ; _________________________________________ ; ; END PROGRAM ; ------------------------------------ ; _________________________________________ ; ; GENERA UN IMPULSO PIU ESTESO SU PORTA1 RISPETTO A QUELLO ENTRANTE IN PORTA0 ; ------------------------------------ ; ; 900 + 5 * ATTESA = da 900uS se ATTESA è = 0 , a max 2000uS se ATTESA = 200 PULSE_OUT BSF PULSEOUT movf HALF,W ; 1uS | movwf CL ; 1uS | 4uS goto $+1 ; 2uS | goto $+1 ; 2uS | decfsz CL,F ; 1uS | 5uS * (178 - 1) = 885uS goto $-2 ; 2uS | nop ; 1uS movf ATTESA,W ; 1uS movwf CL ; 1uS btfsc STATUS,Z ; 1uS nel caso in cui ATTESA = 0 allora salta alla fine RETURN ; 2uS goto $+1 ; 2uS goto $+1 ; 2uS | decfsz CL,F ; 1uS | 5uS * (ATTESA - 1) = goto $-2 ; 2uS | BCF PULSEOUT RETURN ; ; _________________________________________ ; ; GENERA UN RITARDO DI 1 mS ; ------------------------------------ ; PP MOVLW 178 ; 1uS | MOVWF CL ; 1uS | 4uS GOTO $+1 ; 2uS | ****** ATTESA DI 0.9 mS ****** GOTO $+1 ; 2uS | DECFSZ CL,F ; 1uS | 5uS * (177 - 1) = 885uS + 4 + 2 = 891 uS circa GOTO $-2 ; 2uS | RETURN ; ; _________________________________________ ; ; GENERA UN RITARDO DI 20 mS ; ------------------------------------ ; DELAY_20 movlw 20 movwf H_COUNT movlw 10 movwf L_COUNT decfsz L_COUNT,F goto $-1 decfsz H_COUNT,F goto $-3 RETURN END Citazione:
|
| Tutti gli orari sono GMT +2. Adesso sono le 07:25. |
Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2026
www.baronerosso.it - www.toymagazine.it