PDA

Επιστροφή στο Forum : Σειριακή έξοδος



d_nikolaos
23-10-07, 12:05
Καλημερα παιδιά.Χρησιμοποιω εναν πικ 16F877. Ξέρει κανένας πως μπορώ να βγάλω τα δεδομενα απο καποιο πιν σειριακά και όχι παράλληλα;Και αν να δωσει κανένα παραδειγμα;

th_shak
23-10-07, 14:53
Ο pic16F877 έχει ενσωματωμένη σειριακή θύρα οπότε μπορείς άνετα να κάνεις αυτό που θέλεις. Για περισσότερες πληροφορίες και παράδειγμα:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en012073

gsmaster
23-10-07, 20:52
Σε τι γλώσσα γράφεις το πρόγραμμά σου?

d_nikolaos
29-10-07, 13:18
Το πρόγραμμα το γράφω σε γλώσσα C

gsmaster
29-10-07, 20:12
Σε ποιον compiler ?
Στις περισσότερες περιπτώσεις, πρέπει αρχικά να ορίσεις ποια πιν θα χρησιμοποιήσεις, την ταχύτητα κτλ, και μετά παίζει κανονικά. Δες σε κάποιο παράδειγμα ή και στο manual του compiler σιγουρα θα το αναφέρει.

ΥΓ. Αν δουλεύει με τον CCS είναι κυριολεκτικά 2 γραμμές κώδικας.

d_nikolaos
30-10-07, 09:48
Με τον CCS δουλεύω.Μπορείς να μου δώσεις κανένα παράδειγμα η κάποιο έτοιμο πρόγραμματακι;

gsmaster
30-10-07, 20:38
Δες στο φάκελο (αν δεν το έχει κάνει εγκατάσταση σε σε άλλη θέση απο την προεπιλεγμένη) στο φάκελο C:\Program Files\PICC\Examples εχει εκεί καμια 100σταριά παραδείγματα.

Εκεί μέσα τα περισσότερα παραδείγματα χρησιμοποιούν την σειριακή για να απεικονίσουν κάποια δεδομένα στην οθόνη του Hyperterminal.
Ένα απλό είναι το EX_TEMP.C

με το

#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

ορίζεις τα πιν που δουλεύεις και την ταχύτητα (αυτά είναι τα υποχρεωτικά, αν θες μπορείς να ορίσεις κι άλλα πράγματα)
και για να στείλεις ένα μήνυμα γράφεις

printf("Hello World");

Το μήνυμα θα το δεις στο Hyperterminal, το οποίο θα το βρεις στην Εναρξη/ Βοηθήματα / Επικοινωνίες θα το βάλεις να συνδεθεί με την σειριακή που έχεις συνδέσει τον pic. ΜΑΧ232 μην ξεχάσεις να βάλεις.


Επίσης πολύ πολύ καλό και κατατοπιστικό έιναι το help που έχει ο compiler όπου μπορείς να δεις κάθε εντολή πώς συντάσσεται και τι κάνει. Επίσης υπάρχει και το manual σε pdf, στο site της CCS. Επίσης υπάρχει και το φόρουμ της CCS όπου θα βρείς πολλούς drivers και αρκετες συζητήσεις σχετικές με ότι ψάχνεις.

DT200
31-10-07, 08:56
Και επειδή εγώ την έχω πατήσει με το MAX232
μην ξεχάσεις να βάλεις κοντά στον μικροελεγκτή έναν πυκνωτή 100nF.

d_nikolaos
31-10-07, 10:48
Δεν θέλω να στέλω δεδομένα σε μια οθόνη.Τα δεδομένα θέλω να τα στείλω σε ένα ψηφιακό ποτενσιόμετρο και το οποίο δέχεται δεδομένα μόνο σειριακά.

DT200
31-10-07, 15:57
Πρακτικά όλα τα παραπάνω ισχύουν για όλες τις περιπτώσεις ,
στο κάτω κάτω δεδομένα είναι , ένα ακόμα πραγματάκι που πρέπει να προσέξεις
είναι αν το ποτενσιόμετρο θέλει επιπλέον bit π.χ. ισοτιμία , stop bit, διεύθυνση κ.α.

stom
31-10-07, 18:56
Δεν θέλω να στέλω δεδομένα σε μια οθόνη.Τα δεδομένα θέλω να τα στείλω σε ένα ψηφιακό ποτενσιόμετρο και το οποίο δέχεται δεδομένα μόνο σειριακά.

Μπορει να κανω λαθος αλλα απο οσο ξερω
Ψηφιακο ποτενσιομετρο σειριακο υπαρχει, αλλα περιοριζεται σε ενδειξη φορας (πανω κατω) και παλμους που αλλαζουν την τιμη του..
Αυτο ομως απεχει απο σειριακο πρωτοκολλο με start stop bits κλπ...

gsmaster
31-10-07, 21:55
Οπα αλλάζει το πράμα, ποιο ψηφιακό ποτενσιόμετρο έχεις. Ανάλογα με το τι πρωτοκολλο παίζει, είναι και διαφορετική η λειτουργία.

Σειριακό πρωτόκολλο είναι και I2C και το SPI και άλλα, αλλά αυτά καμια σχέση με σειριακή RS232 που κατάλαβα εγώ.

d_nikolaos
01-11-07, 08:10
Χρησιμοποιώ το MAX5401 αυτό ανάλογα με την είσοδο που θα του δώδω αλλάζει η διεύθηνση της μνήμης που έχει μέσα και μετακινεί την μεσαία λήψη του ποτενσιομέτρου στην προγραμματισμένη θέση για την είσοδο που του έχομε δώσει. Το θέμα είναι ότι δεν ξέρω πως απο τον Pic να στείλω σειριακά τα δεδομένα για να τα δεχτεί το ψηφιακό ποτενσιόμετρο

DT200
01-11-07, 08:48
Τελικά τα κάναμε πουτ@ν@ ! το πρωτόκολλο είναι 3-Wire SPI ,
Αν ο μ/ε έχει τέτοια θύρα σίγουρα θα είναι ποίο εύκολο να το χειριστείς

d_nikolaos
01-11-07, 10:44
Το θέμα είναι ότι ο Pic16f877 που χρησιμοποιώ δεν ξέρω αν έχει δυνατότητα για 3-wire SPI και αν έχει δεν ξέρω να την χρησιμοποιώ

DT200
02-11-07, 08:51
Ο μ/ε έχει την θύρα που χρειάζεσαι ,
αλλά στην γλώσσα που γράφεις δεν μπορώ να σε βοηθήσω . καλή συνέχεια .

Υ.Γ. Πιστεύω να έχεις το Data Sheet του μ/ε , διότι είναι πολύ χρήσιμο.

d_nikolaos
02-11-07, 13:21
Τουλάχιστον ξέρεις να μου πεις πια pins του pik κανουν για υατήν την δουλειά γιατι απο το datadheet δεν πολυ κατάλαβα.

jvourv
02-11-07, 14:55
SPI pins του pic:
RC3 serial clock
RC4 serial data input
RC5 serial data output



Γιάννης

gsmaster
04-11-07, 20:30
Ψάξε στο help για το spi, και δες και το παράδειγμα EX_SPI.c

nio-4-
12-06-08, 02:03
Γεια σας παιδια , κανω πτυχιακη και αν μπορει κανενας θα ηθελα μια βοηθεια....

Εγω εχω το ακριβος αντιθετο προβλημα με τον Δολιανίδης . Θέλω να στείλω δεδομένα (συντεταγμένες απο gps ,protocol NMEA) στον PIC. Μηπως ξέρει κανείς να μου πει αν γίνεται με bluetooth gps να στηλω τα δεδομένα στον PIC??? μεσω ,λογικα, καποιου δεκτη bluetooth σαν αυτα που βάζουμε στα PC αλλα θα πρέπει να βγάζει τα δεςδομενα του ο δεκτησ σε σειριακή μορφη DB9 ( +-12v) και οχι usb γιατι δεν μπορει να τα δεχτει κανενας PIC.

Αν γινει αυτο, ειτε με bluetooth ειτε παρω συσκευή gps που έχει έξοδο σειριακή db9 (+-12v) πως θα διαχειρίζεται τα δεδομένα ο PIC 16F873 με (USART , SSP)???