non ho detto che l'output me lo faccio restituire sulla porta B con 8 Led che in binario mi offrono il numero del tempo a partire dal 1 mS, fino al secondo ovviamente il primo millisecondo lo faccio scorrere,, poi cominicio ad incrementare COUNT che incrementarà circa ogni 5 uS ,
Il fatto è che con la RX non legge nessun bit già fin dall'inizio!!
quinidi non incrementa niente!
ho provato anche la tecnica illustrata qui
Regolatore giri.
ma il risulktato è lo stesso..
ovviamente di questo suggerimento ho solo selezionato la parte che riguarda la lettura del segnale in arrivo dalla ricevente
a dopo
fausto
Citazione:
Originalmente inviato da faustog_2 ALLORA..
STUDIANDO E LEGGENDO DATASHEET COMPRESO.. APPRENDO CHE IL PWM NON SERVE E' SUFFICIENTE USARE IL MODULO TMR0
PERO PERO PERO.. C'E UN PROBLEMA CHE MI STA FACENDO GIRARE LE BAL..
OVVERO PRIMA DI OGNI COSA OCCORRE LEGGERE IL SEGNALE DALLA RICEVENTE...
ECCO E MI SPIEGO, HO FATTO UNA SEPLICE ROUTINE CHE FUNZIONA SOLO SE USO UN TEST PER SERVER OVVERO QUEI DISPOSITIVI CHE GENERANO DEGLI IMPULSI UGUALI A QUELLI PROVENIENTI DA UNA RICEVENTE, CON IL POTENZIOMETRO SI PUO VARIARE LA POSISZIONE DEL SERVO
FIN QUI SPETTACOLARE TUTTO OK... PERO SE USO LO STESSO CON UNA QUALUNQUE RICEVENTE.. KO!!! NIENTE DA FARE ELETTROENCEFALOGRAMMA PIATTO!!!
CHE NE PENSATE?
ECCO LA ROUTINE:
;-----------------------------------------------------
; This software read data fron Hitech receiver.
; For each pulse it's show value by led in binary mode
; the value 40 < COUNT < 207
;
; software by Fausto Giudice
;-----------------------------------------------------
PROCESSOR 16F628
RADIX DEC
INCLUDE "P16F628.INC"
__CONFIG 11110100010000B
;-----------------------------------------------------
COUNT EQU 32
CL EQU 33
;-----------------------------------------------------
ORG 0
;
; --------------------------------
; SET ANALOG/DIGITAL INPUTS PORT A
; --------------------------------
;
MOVLW 7 ;QUESTA OPZIONE E' NECESSARIA SE SI VUOLE USARE PORTA COME INPUT
MOVWF CMCON ;CMCON=7 set comperators off
;
; ----------------
; INITIALIZE PORTS
; ----------------
;
BSF STATUS,RP0 ; ** BANK1 **
MOVLW b'00000000'
MOVWF TRISB ; portB all pins output
MOVLW b'11110100'
MOVWF TRISA ; RB7-RB4 and RB1(RX)=input, others output
BCF STATUS,RP0 ; ** BANK0 **
CLRF COUNT
CLRF PORTB
MAIN BTFSS PORTA,2 ; IF (bit 0 di PORTA è = 1)
GOTO $-1
MOVLW 178 ; 1uS |
MOVWF CL ; 1uS | 4uS
GOTO $+1 ; 2uS | ****** ATTESA DI 0.9 mS ******
GOTO $+1 ; 2uS |
DECFSZ CL,F ; 1uS | 5uS * (178 - 1) = 885uS + 4 + 2 = 891 uS circa
GOTO $-2 ; 2uS |
XX BTFSS PORTA,2 ; 2uS
GOTO SHOW
INCF COUNT,F ; attesa di 1uS
GOTO XX ; attesa di 2uS totale 5uS
SHOW MOVF COUNT,W
MOVWF PORTB
CLRF COUNT
GOTO MAIN
END |