Visualizza messaggio singolo
Vecchio 29 novembre 10, 12:52   #4 (permalink)  Top
faustog_2
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
completo

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 Visualizza messaggio
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
faustog_2 non è collegato   Rispondi citando