Επιστροφή στο Forum : Σειριακή έξοδος
d_nikolaos
23-10-07, 12:05
Καλημερα παιδιά.Χρησιμοποιω εναν πικ 16F877. Ξέρει κανένας πως μπορώ να βγάλω τα δεδομενα απο καποιο πιν σειριακά και όχι παράλληλα;Και αν να δωσει κανένα παραδειγμα;
Ο pic16F877 έχει ενσωματωμένη σειριακή θύρα οπότε μπορείς άνετα να κάνεις αυτό που θέλεις. Για περισσότερες πληροφορίες και παράδειγμα:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en012073
Σε τι γλώσσα γράφεις το πρόγραμμά σου?
d_nikolaos
29-10-07, 13:18
Το πρόγραμμα το γράφω σε γλώσσα C
Σε ποιον compiler ?
Στις περισσότερες περιπτώσεις, πρέπει αρχικά να ορίσεις ποια πιν θα χρησιμοποιήσεις, την ταχύτητα κτλ, και μετά παίζει κανονικά. Δες σε κάποιο παράδειγμα ή και στο manual του compiler σιγουρα θα το αναφέρει.
ΥΓ. Αν δουλεύει με τον CCS είναι κυριολεκτικά 2 γραμμές κώδικας.
d_nikolaos
30-10-07, 09:48
Με τον CCS δουλεύω.Μπορείς να μου δώσεις κανένα παράδειγμα η κάποιο έτοιμο πρόγραμματακι;
Δες στο φάκελο (αν δεν το έχει κάνει εγκατάσταση σε σε άλλη θέση απο την προεπιλεγμένη) στο φάκελο 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 και αρκετες συζητήσεις σχετικές με ότι ψάχνεις.
Και επειδή εγώ την έχω πατήσει με το MAX232
μην ξεχάσεις να βάλεις κοντά στον μικροελεγκτή έναν πυκνωτή 100nF.
d_nikolaos
31-10-07, 10:48
Δεν θέλω να στέλω δεδομένα σε μια οθόνη.Τα δεδομένα θέλω να τα στείλω σε ένα ψηφιακό ποτενσιόμετρο και το οποίο δέχεται δεδομένα μόνο σειριακά.
Πρακτικά όλα τα παραπάνω ισχύουν για όλες τις περιπτώσεις ,
στο κάτω κάτω δεδομένα είναι , ένα ακόμα πραγματάκι που πρέπει να προσέξεις
είναι αν το ποτενσιόμετρο θέλει επιπλέον bit π.χ. ισοτιμία , stop bit, διεύθυνση κ.α.
Δεν θέλω να στέλω δεδομένα σε μια οθόνη.Τα δεδομένα θέλω να τα στείλω σε ένα ψηφιακό ποτενσιόμετρο και το οποίο δέχεται δεδομένα μόνο σειριακά.
Μπορει να κανω λαθος αλλα απο οσο ξερω
Ψηφιακο ποτενσιομετρο σειριακο υπαρχει, αλλα περιοριζεται σε ενδειξη φορας (πανω κατω) και παλμους που αλλαζουν την τιμη του..
Αυτο ομως απεχει απο σειριακο πρωτοκολλο με start stop bits κλπ...
Οπα αλλάζει το πράμα, ποιο ψηφιακό ποτενσιόμετρο έχεις. Ανάλογα με το τι πρωτοκολλο παίζει, είναι και διαφορετική η λειτουργία.
Σειριακό πρωτόκολλο είναι και I2C και το SPI και άλλα, αλλά αυτά καμια σχέση με σειριακή RS232 που κατάλαβα εγώ.
d_nikolaos
01-11-07, 08:10
Χρησιμοποιώ το MAX5401 αυτό ανάλογα με την είσοδο που θα του δώδω αλλάζει η διεύθηνση της μνήμης που έχει μέσα και μετακινεί την μεσαία λήψη του ποτενσιομέτρου στην προγραμματισμένη θέση για την είσοδο που του έχομε δώσει. Το θέμα είναι ότι δεν ξέρω πως απο τον Pic να στείλω σειριακά τα δεδομένα για να τα δεχτεί το ψηφιακό ποτενσιόμετρο
Τελικά τα κάναμε πουτ@ν@ ! το πρωτόκολλο είναι 3-Wire SPI ,
Αν ο μ/ε έχει τέτοια θύρα σίγουρα θα είναι ποίο εύκολο να το χειριστείς
d_nikolaos
01-11-07, 10:44
Το θέμα είναι ότι ο Pic16f877 που χρησιμοποιώ δεν ξέρω αν έχει δυνατότητα για 3-wire SPI και αν έχει δεν ξέρω να την χρησιμοποιώ
Ο μ/ε έχει την θύρα που χρειάζεσαι ,
αλλά στην γλώσσα που γράφεις δεν μπορώ να σε βοηθήσω . καλή συνέχεια .
Υ.Γ. Πιστεύω να έχεις το Data Sheet του μ/ε , διότι είναι πολύ χρήσιμο.
d_nikolaos
02-11-07, 13:21
Τουλάχιστον ξέρεις να μου πεις πια pins του pik κανουν για υατήν την δουλειά γιατι απο το datadheet δεν πολυ κατάλαβα.
SPI pins του pic:
RC3 serial clock
RC4 serial data input
RC5 serial data output
Γιάννης
Ψάξε στο help για το spi, και δες και το παράδειγμα EX_SPI.c
Γεια σας παιδια , κανω πτυχιακη και αν μπορει κανενας θα ηθελα μια βοηθεια....
Εγω εχω το ακριβος αντιθετο προβλημα με τον Δολιανίδης . Θέλω να στείλω δεδομένα (συντεταγμένες απο gps ,protocol NMEA) στον PIC. Μηπως ξέρει κανείς να μου πει αν γίνεται με bluetooth gps να στηλω τα δεδομένα στον PIC??? μεσω ,λογικα, καποιου δεκτη bluetooth σαν αυτα που βάζουμε στα PC αλλα θα πρέπει να βγάζει τα δεςδομενα του ο δεκτησ σε σειριακή μορφη DB9 ( +-12v) και οχι usb γιατι δεν μπορει να τα δεχτει κανενας PIC.
Αν γινει αυτο, ειτε με bluetooth ειτε παρω συσκευή gps που έχει έξοδο σειριακή db9 (+-12v) πως θα διαχειρίζεται τα δεδομένα ο PIC 16F873 με (USART , SSP)???
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.