συνέλευση κώδικα για τη διαβίβαση στοιχείων στην PIC μνήμης

C

ceibawx

Guest
Ποιος μπορεί να με βοηθήσει την ελέγχει;
I αποθηκευμένα δεδομένα στον PIC, αλλά η παραγωγή δεν είναι σωστή.TransData:
MOVLW 0xBF
MOVWF FSR? ΣΤΟ RAM
MOVLW 0x08
MOVWF ChannelCounter? ChannelCounter = 4 * 2

GoOnTransData:
BSF STATUS, 5
MOVF INDF, W
BCF STATUS, 5
MOVWF TXREG? Μετακινήστε τα δεδομένα για να τα διαβιβάσει μητρώο
BSF STATUS, 5
INCF FSR, 1? INDF διεύθυνση αριθμό κινήσεις επόμενη
DECFSZ ChannelCounter, 1? ChannelCounter-1
goto GoOnTransData? cc! = 0.
goto επανεπεξεργαστεί? cc = 0.tx τελειώσω,
να αρχίσει μια νέα rx.

 
Νομίζω ότι το πρόβλημά σας είναι ότι έχετε αντικαταστήσει το TXREG.Θα πρέπει να δοκιμαστεί η TXIF σημαία για να δούμε πότε ο TXREG είναι άδειο μυρμήγκι στη συνέχεια το νέο φορτίο byte.
Δείτε παρακάτω για μια πιθανή λύση.Υποθέτω το UART setup έγινε σωστά, αυτό είναι το TXEN που ήταν λίγο.Αυτό που θα TXIF.Βεβαιωθείτε ότι μπορείτε να χρησιμοποιήσετε BSF που TXEN,
και όχι γραπτώς στο μητρώο.Μπορείτε να προσθέσετε ότι λίγο πριν από την εντολή GoOnTransData, εάν δεν είχε γίνει προηγουμένως.

Με την ευκαιρία, εφόσον χρησιμοποιείτε την FSR,
δε χρειάζεται να καθορίσει σαφείς και το bit RP0? Το FSR είναι σε θέση να έχουν πρόσβαση τα ορθά στοιχεία εντός τράπεζες 0 και 1 με ΔΕΕ = 0, ανεξάρτητα από την κατάσταση της RP0, 1 .

Κωδικός:TransData:

MOVLW 0xBF

MOVWF FSR? ΣΤΟ RAM

MOVLW 0x08

MOVWF ChannelCounter? ChannelCounter = 4 * 2BSF STATUS, RP0? Τράπεζα 1

BSF TXSTA, TXEN? επιτρέψει xmit

BCF STATUS, Rp0? τράπεζα πάλι 0GoOnTransData:

btfss PIR1, TXIF? ελέγχει αν μπορεί να στείλει νέα byte

goto GoOnTransDataMOVF INDF, W? Get byte

MOVWF TXREG? Μετακινήστε τα δεδομένα για να τα διαβιβάσει μητρώο

INCF FSR, 1? INDF διεύθυνση αριθμό κινήσεις επόμενη

DECFSZ ChannelCounter, 1? ChannelCounter-1

goto GoOnTransData? cc! = 0.

goto επανεπεξεργαστεί? cc = 0.tx τελειώσω, να αρχίσει μια νέα rx.
 
Ευχαριστώ για την απάντησή σας.
Η ερώτησή μου είναι ότι τι σημαίνει;

όταν TXIF = 1, buffer είναι άδειος, θα ---------------------
MOVF INDF, W? Get byte
MOVWF TXREG? Μετακινήστε τα δεδομένα για να τα διαβιβάσει μητρώο
όταν TXIF = 0, buffer είναι πλήρης, θα ------------------------
GoOnTransData:
btfss PIR1, TXIF? ελέγχει αν μπορεί να στείλει νέα byte
goto GoOnTransData.

Μπορείτε να μου εξηγήσετε πιο αναλυτικά σχετικά με τη διαβίβαση του buffer;εάν εξακολουθεί να είναι πλήρης, θα πρέπει να περιμένουμε μέχρι να είναι άδειο;

 
Ναι, αυτό σημαίνει ότι η μετάδοση του buffer είναι άδειο και εσείς να γράψετε ένα νέο byte σε αυτό.Αν το κάνουμε πριν
το κενό, τότε θα σας γράψω να αγνοηθεί και θα χάσετε χαρακτήρες.

Ρύθμιση TXEN που θα TXIF, alowing τον κωδικό για να ισχύσει για τον πρώτο χαρακτήρα που στέλνετε.Στη συνέχεια, θα πρέπει να περιμένει την προηγούμενη χαρακτήρα μετάδοση για να ολοκληρωθεί.Από τη στιγμή που γράφετε σε TXREG, TXIF θα πρέπει να αποψιλωθεί, έτσι αν επιλέξετε αυτό το λίγο δεν θα έχετε τη δυνατότητα να γράψει ένα νέο byte TXREG μέχρι να είναι άδειο.

Για περισσότερες πληροφορίες, διαβάστε την κατάσχεση
Λυπούμαστε, αλλά χρειάζεται login για να δείτε αυτό το συνημμένο

 
Ευχαριστώ πολύ.
Και έχουν δοκιμαστεί, και τον κωδικό σας είναι χρήσιμο, και θα λάβει τα αναμενόμενα δεδομένα.

Είστε ισχυροί.
Καλημέρα.Xing

 

Welcome to EDABoard.com

Sponsor

Back
Top