PDA

Επιστροφή στο Forum : Απλουστευση PIC



dal_kos
29-01-07, 22:22
Γεια χαρα σε ολους! :D
Λοιπον φτιαχνω ενα project αυτη τη περίοδο και η χρήση μικροελεγκτη απ ο,τι φαινεται ειναι μονοδρομος...
Το κακό ειναι πως δεν γνωριζω τιποτα απο μικροελεγκτες και ντρεπομαι γι αυτο :oops:
Ωστοσο γνωρίζω απο αλγοριθμους.
Ετσι είπα μήπως υπάρχει κάποιο πρόγραμμα στο οποιο να γραφεις αλγόριθμο και να το μετατρέπει σε προγραμμα...
Ζητάω πολλα? :roll:
Επισης μια αλλη λυση θα ηταν ενας μικρος οδηγος που να λεει τις βασικες εντολες των πικ, καθως αυτο που θέλω δεν είναι τιποτα το εξεζητημενο...
Αν έχετε καμια ιδέα ή όρεξη για βοηθεια, ειναι ευπροσδεκτη :D
Φιλικά,
Κώστας

Lykos1986
30-01-07, 00:18
Θα πρέπει να δεις μάλλον το flowcode. Δες για παράδειγμα εδώ:
http://www.electronics-lab.com/downloads/mcu/007/FlowCode/index.html

Τώρα για τις βασικές εντολές του PIC... Μάλλον θα πρέπει να τις μάθεις όλες!!! Εξάλλου είναι μικροελεγκτής τύπου RISC και έτσι δεν έχει και πολλές.
Δες εδώ: http://www.electronics-lab.com/pic-in-greek/index.html

dal_kos
30-01-07, 20:17
Φιλε lykos1986 το προγραμμα που μου συστησες είναι ΕΡΓΑΛΕΙΟ. Φοβερο! σε ευχαριστω παρα πολύ.
ο προγραμματισμος γινεται παιχνιδάκι...
Οποιος ενδιαφερεται να το κατεβασει να εχει υποψη του πως υπάρχει πολύ πιο νέα εκδοση στο site της εταιριας που το εχει φτιαξει.

Τωρα μια αλλη ερωτηση που μου γεννηθηκε... Πως μπορω να στελνω μεσω του μικροελεγκτη σημα για να καθοριστεί η τιμη μιας μεταβλητης σε συσκευη που εχει δικιες της εσωτερικες μεταβλητες οπως είναι οι ψηφιακοι ενισχυτες ηχου ή αναλογα ολοκληρωμένα? Ειναι δυνατον κατι τετοιο?
Φιλικά Κώστας.

Lykos1986
30-01-07, 20:30
Χαίρομαι που σου άρεσε!!! Προσωπικώς προτιμώ ακόμα τον κλασικό προγραμματισμό σε γλώσσα C. Γούστα όμως είναι αυτά!!!

Λοιπό για το άλλο που λες τώρα. Φυσικά και γίνεται. Αν δεν γινότανε τότε θα είχαμε πρόβλημα!!! Για να μπορέσεις όμως να κάνεις αυτό που θέλεις θα πρέπει πρώτα να διαβάσεις πολύ καλά το datasheet του ολοκληρωμένου που θέλεις να οδηγήσεις, όπως για παράδειγμα έναν ψηφιακά ελεγχόμενο ενισχυτή ήχου. Συνήθως επικοινωνούν με τον μC μέσο πολύ γνωστών πρωτοκόλλων όπως είναι το I2C ή το SPI ή συμβατά πρωτοκόλλα αυτών. Από εκεί και πέρα πάλι το datasheet είναι αυτό που σου λέει πότε θα πρέπει να πάρει τα δεδομένα πότε την διεύθυνση του καταχωρητή που θέλεις να έχεις πρόσβαση κτλ. Επίσης πολύ σημαντικά είναι τα χρονοδιαγράμματα που υπάρχουν στα datasheets του ολοκληρωμένου. Σου λένε ακριβός τα μέγιστα και ελάχιστα χρονικά περιθώρια που έχεις – χρονοθυρίδες έτσι ώστε να μπορέσεις να έχεις μια σωστή επικοινωνία. Πες μας τι θέλεις να κάνεις ακριβός για να σε βοηθήσουμε περισσότερο…

dal_kos
30-01-07, 20:50
Εγω δυστυχως δεν ξερω c [προς το παρον ;)] οποτε αυτο mου ηρθε "λουκουμι"!

Δεν εχω αποφασισει κατι συγκεκριμενο ακομα. Ωστοσο πριν συζητησουμε για κατι εξειδικευμενο μηπως μπορειτε να μου πειτε πως μπορω να πηγεινω σε συγκεκριμενες διευθυνσεις μεταβλητων και τα λοιπα? Σε γενικες γραμμες...

Ευχαριστω,
Κωστας

Lykos1986
30-01-07, 20:55
Δυστυχώς δεν μπορώ να σου πω γιατί θα πρέπει οπωσδήποτε να ξέρω το πρωτόκολλο.

dal_kos
30-01-07, 20:57
Σε I2C ας μιλησουμε, αν γινεται, που ειναι και το πιο πολυχρησιμοποιημενο ;)

Lykos1986
31-01-07, 09:46
Κοιτά ακόμα και για I2C να μιλήσουμε πάλι δεν μπορώ να σε βοηθήσω!!! Για παράδειγμα μπορεί να έχει κάποια κοινά χαρακτηριστικά όπως γραμμή Data και Clock με pull up αντιστάσεις και γενικότερα κάποια συγκεκριμένα χρονικά περιθώρια επικοινωνίας, αλλά όλα τα άλλα αλλάζουν από ολοκληρωμένο κύκλωμα σε ολοκληρωμένο κύκλωμα. Για παράδειγμα σε κάποια ολοκληρωμένα θέλει πρώτα το ID byte μετά την διεύθυνση μνήμης που θέλεις να γράψεις ή να διαβάσεις και μετά την τιμή. Το θέμα είναι πως αυτό δεν είναι πάντα ίδιο ή μάλλον δεν είναι ποτέ ίδιο αφού μέσα μπορεί να μπαίνουν και άλλες τιμές που άλλες είναι μεταβλητές ή και σταθερές. Από την άλλη, πολλά ολοκληρωμένα σου λένε πως ανάμεσα από τα bytes που στέλνεις ο μC σου απαντάει με ένα bit ΟΚ ή το αντίθετο. Πολλά όμως δεν το έχουν αυτό. Αλλά πάλι έχουν αυτόν τον τρόπο ελέγχου αλλά με την αποστολή στο τέλος της παλμοσειράς ενός Byte CRC.

Φυσικά θα μπορούσα να σου πω πάρα πολλά διαφορετικά χαρακτηριστικά για το πώς θέλει να επικοινωνήσει ένα ολοκληρωμένο με την host συσκευή του ακόμα και αν αυτό είναι συνδεδεμένο με I2C.

Αν κατεβάσεις δυο τρία datasheet θα το καταλάβεις και εσύ…

apa02gr
31-01-07, 10:56
Ξέρει κανείς εάν το flowcode υποστηρίζει και μικροελεγκτές 8051;

Lykos1986
31-01-07, 12:40
Από ένα γρήγορο έλεγχο στην σελίδα της εταιρίας ( http://www.matrixmultimedia.co.uk ) είδα πως μόνο τους PIC υποστηρίζει.

babisko
31-01-07, 19:57
Ξέρει κανείς εάν το flowcode υποστηρίζει και μικροελεγκτές 8051;

Όχι, μόνο PIC και από αυτούς όχι όλους, αλλά τους περισσότερους.

steliosm
31-01-07, 23:14
Ριξε και μια ματια εδω:

http://www.picaxe.co.uk

Προκειτε για PICmicro μικροελεγκτες με εναν BASIC interpreter προγραμματισμενο ηδη μεσα τους. Μπορεις να τους προγραμματισεις σε μια πολυ απλη γώσσα BASIC 'η ακομα και με workflow σχηματα. Ο προγραμματισμος τους γινεται μεσα απο το δωρεαν IDE που κατεβαζεις απο το παραπανω site και απαιτει μια απλουστατη σειριακη συνδεση με το PC.
Τους εχω σρησιμοποιησει σε μερικα projects που εφτιαξα και σκοπευω να συνεχισω να τους χρησιμοποιω :-)

dal_kos
01-02-07, 14:56
@steliosm: Συγνώμη αλλα δεν καταλαβα... Τι ακριβώς ειναι το picaxe? ενα συστημα με πλακετα και προγραμμα για τον προγραμματισμο μικροελεγκτων?
@lykos1986: Ελαβα υπ' οψη οσα μου ειπες και διαβασα το datasheet ενος PWM που με ενδιαφερει για ψηφιακο ενισχυτη[του TAS5518] και περιπου καταλαβα πώς πρεπει να γινει η επικοινωνια. Ωστόσο δεν μπορω να καταλαβω πως θα στειλω μεσω του πιν Α3 για παραδειγμα τα δεδομενα σε string απο bits. Θα πρεπει να στελνω ενα-ενα τα bits ή μπορω να περασω στο μικροελεγκτη ενα συνολο απο bits κα να του "πω" να τα στειλει με συγκεκριμενο χρονισμο?Ακομα καλυτερα μπορω να δωσω αυτα τα string σε μεταβλητες ωστε να ειναι μικροτερο το πρόγραμμα?
Ευχαριστω πολυ για το χρονο σας παντως,
Φιλικά Κώστας

panpanta
03-02-07, 00:48
Σύντομα θα υποστηρίζει και Atmel.

Υπάρχει ακόμα και απόδοση του προγράμματος στα Ελληνικά. :D

dal_kos
03-02-07, 00:54
Πραγματι υποστηριζει και ελληνικα αλλα δεν λεει και πολλα η μεταφραση καθως λεξεις που ειναι χαρακτηριστικες και τις χρησιμοποιουμε στα αγγλικα αυτο τις εχει μεταφρασμενες και ψιλομπερδευεσαι... παντως ειναι πολυ καλο προγραμμα.
Προσωπικα το σκεφτομαι να το αγορασω...

steliosm
03-02-07, 15:15
@steliosm: Συγνώμη αλλα δεν καταλαβα... Τι ακριβώς ειναι το picaxe? ενα συστημα με πλακετα και προγραμμα για τον προγραμματισμο μικροελεγκτων?


Ειναι ενας κανονικος μικρο-ελεγκτης που βασιζεται στον PICmicro.
Τον προγραμματιζεις σαν κανονικο uC (με ενα απλο σειριακο καλωδιο) και τον χρησιμοποιεις κατ' αυτον τον τροπο.
Το βασικο πλεονεκτημα του ειναι ο απλουστατος προγραμματισμος του.

dal_kos
06-02-07, 16:11
Τελικα θα ασχοληθώ μαλλον με τη mikrobasic καθως το μικροελεγκτη τον χρειαζομαι περισσοτερο για ελεγχο συσκευων μέσω του I2C interface, κατι που δεν το παρεχει ακομα το flowcode :( Είναι μεν πιο δύσκολη αλλα πιστευω πως θα είναι καλύετρα καθώς θα γράφω ακριβώς ό,τι χρειαζομαι :)
Σας ευχαριστώ πάντως για τις απαντήσεις και το χρόνο σας...
Φιλικά,
Κώστας

dal_kos
08-02-07, 15:51
Λοιπον εχω δυο αποριες σχετικα με το I2C:
1) Το acknowledge bit τι ειναι? η συσκευη επιστρεφει ενα bit αν λαβει την εντολή? αυτό είναι?
2) Ενδιαφερομαι να οδηγησω το TDA7462 μεσω μΕ. Ωστοσο αρκετες μεταβλητες του περιεχουν πανω απο μια "υπομεταβλητες". Δηλαδη εχει μια μεταβλητη με την οποια, για παραδειγμα, καποια απο τα bits ελεγχουν την συχνοτητα των πριμων, καποια αλλα των μπασων, και καποια αλλα την ενισχυση των πριμων. Γινεται να "αποσυνδεσω" καπως τα bits μεταξυ τους ωστε να μη χρειαζεται να γραφω ολες τις πιθανες περιπτωσεις στον κωδικα?
Ευχαριστω προκαταβολικα για καθε απαντηση
Φιλικα,
Κωστας

Lykos1986
08-02-07, 18:32
1.Ναι, ουσιαστικά είναι ένα bit επιβεβαίωσης που στέλνει είτε ο μC είτε το ολοκληρωμένο που οδηγείς, ανάλογα με το ποίος στέλνει εκείνη την στιγμή. Φυσικά μου έχει τύχει το acknowledge bit να το στέλνει πάντα μόνο μια συσκευή, πχ μόνο ο μC.

2.Αυτό που λες είναι απλά ένας καταχωρητής. Οι διάφορες τιμές που μπορούν να πάρουν τα bit που τον αποτελούν δημιουργούν και διάφορες καταστάσεις λειτουργίας στο ολοκληρωμένο. Δεν ξέρω αν το συγκεκριμένο ολοκληρωμένο υποστηρίζει εντολή για να κάνεις το λεγόμενο bit manipulation, δηλαδή να παίζεις με τις τιμές μόνο κάποιων bit χωρίς να επηρεάζονται τα άλλα (κάποια ολοκληρωμένα το υποστηρίζουν), αλλά μπορείς να το κάνεις πολύ εύκολα μέσο του κώδικα. Για παράδειγμα να διαβάσεις την τιμή του καταχωρητή και μετά να την διαμορφώσεις όπως θέλεις εσύ. Μπορείς να το κάνεις με όλες τις γλώσσες προγραμματισμού. Ακόμα και με το flowcode!!!