# Συζήτηση Κυκλωμάτων > Ψηφιακά Κυκλώματα > Μικροελεγκτές >  >  Προγραμματισμος PIC με C/C++ η basic (microbasic)

## sv4lqcnik

:Confused:  :Confused:  :Confused:   :Confused1: 
Αδερφια συνφορουμιτες οσοι κατεχετε το αθλημα του προγραμματισμου μικροελεγκτων PIC πρεπει να ριξετε σωσιβιο πριν με παρει το ρεμα. οτι βιβλιογραφια υπαρχει για προγραμματισμο μ/ε προτεινει  assembly η C και λογοτερο η καθολου basic for PIC, που ειναι και πιο ευκολη αλλα πιανει πολυ μνημη στον μ/ε . Λοιπον περιμενω οδηγιες και πρωτασεις , ειναι καιρος να μαθουμε ολοι οι πρωταρηδες και να παμε στον σωστο τροπο πριν να ειναι πολυ αργα και μπερδευτουμε χειροτερα, γιατι κακα τα ψεματα μονο αν πεσεις  στα βαθεια μαθαινεις να κολυμπας,
τυχαιο; δε νομιζω. ετσι λοιπον περιμενω να δω ποιον δρομο να ακολουθησω . Δεκτες πληροφοριες , καθοδηγηση , γιατι ρωτοντας πας στην πολη ,που πολυ σοφα λεγαν οι παλιοι . Ευχαριστω για τον πολυτιμο χρονο που θα διαθεσετε.

----------


## ptisi110

Διάβασε εδώ για Basic: http://www.hlektronika.gr/forum/showthread.php?t=43400

----------


## TomMan

Φίλε Νίκο,
Η γνώμη μου, εάν θέλεις πραγματικά να ασχοληθείς με μ/ε είναι να ασχοληθείς αποκλειστικά με assembly. 
Κάνοντάς το αυτό θα καταλάβεις τη δομή, τις λειτουργίες και τις δυνατότητες του μ/ε πράγμα που δε σου δίνει καμιά γλώσσα υψηλού επιπέδου. 
Δεν είναι μόνο ο μνημοβόρος κώδικας που θα πάρεις. 
Τώρα στα πρώτα βήματα μπορείς να κάνεις συνδυαστική χρήση ενός Basic Compiler και του MLBAB. Τι εννοώ; Ξεκινάς ένα project assembly και φτιάχνεις επιμέρους κομμάτια στην Basic ώστε να μάθεις τις εντολές και τον τρόπο σκέψης. 
Όμως πίστεψέ με αν δεν δεις πώς δουλεύει ο μ/ε δεν θα λάβεις τη χαρά της δημιουργίας…
Ξεκίνησα συμβολικό κώδικα από ένα εκπληκτικό βιβλίο του Ευθυμίου για assemblyστον 6502 και ότι κατάφερα το οφείλω στο γεγονός ότι (ίσως) κατανόησα τον τρόπο λειτουργίας των επεξεργαστών. 
Σήμερα το βιβλία – εγχειρίδια περιέχουν ένα κάρο μ……ς λες και είμαστε όλοι ηλίθιοι και για να βρεις την ουσιαστική βοήθεια που χρειάζεσαι και είναι δυο-τρεις γραμμές, πρέπει να διαβάζεις τρεις μέρες, βλέπε MSDN...

Προτείνω λοιπόν MLBAB και από Basic GWBasic (γρήγορη παραγωγή κώδικα, με γνώμονα ότι θα προγραμματίσεις σε assembly) επιλογή μ/ε, λήψη datasheet και έφυγες. Επίσης θα χρειαστείς και κάτι σαν τον Προτέα (ίσως).
Programmers και κυκλώματα, αργότερα. 
Αν θελήσεις κάτι από μένα στείλε PM.

----------


## georgz

Μάθε assembly και μετά C.

----------


## klik

Η assembly είναι άχρηστη στις μέρες μας. Όλα τα πλεονεκτήματα της έχουν χαθεί.
Άσε που αν θέλεις να κάνεις ένα χρονόμετρο, γίνεται μια χαρά σε assemby, αν θέλεις να πας σε κάτι πιό πολύπλοκο (π.χ. τηλεφωνικό κέντρο, δίκτυα tcp/ip κλπ) θα βγάζεις τα μάτια σου χωρίς λόγο.

----------


## lastid

Αν θελήσεις να ασχοληθείς επαγγελματικά με τον προγραμματισμό μικροελεγκτών, να ξέρεις ότι οι περισσότερες εταιρείες χρησιμοποιούν C για κάποιους λόγους.
Η basic είναι καλή αλλά όχι τόσο διαδεδομένη σε ΟΛΟΥΣ τους μικροελεγκτές όλων των εταιρειών και όχι πάντα αποδοτική.
Η assembly είναι χρήσιμη να την ξέρει κανείς για να κατανοήσει τους μικροελεγκτές ή για να την ενσωματώσει σε μικρές κρίσιμες ρουτίνες, όμως η υλοποίηση ενός σύνθετου προγράμματος είναι εφιάλτης.
Η C από την άλλη, παρότι δεν είναι πανάκεια, μου φαίνεται η καλύτερη επιλογή.

----------


## billtech

κοιταξε η assebly ειναι η κορυφαια γλωσσα προγραμματισμου για επαγγελματιες σε εταιριες και βιομηχανιες. τωρα για ερασιτεχνικες κατασκευες η για απλες κατασκευες δεν χρειαζετε να κατσεις να μπλεκεις με assebly και 1002 σπαζοκαιφαλιες. πας σε μια γλωσσα υψηλου επιπεδου και προγραμματιζεις. εξαλλου σημερα οι compilers της C Basic ειναι τοσο εξελιγμενοι που δεν εχεις το προβλημα στη μνημη του επεξεργαστη.
εσυ ξερεις για τι χρηση θες να μαθεις προγραμματισμο εσυ αποφασιζεις ποιο ειναι το πιο χρησιμο για σενα. 
επισης κοιταξε και ποια απο ολες τις γλωσσες βρισκεις ποιο πολλη βοηθεια μιας και τωρα αρχιζεις.
απο μενα..καλη αρχη.

----------


## klik

Καλά τα linux και τα embedded linux συστήματα είναι σε assembly (εκτός αν τα θεωρείς ερασιτεχνικά). Ότι θέμε λέμε μου φαίνεται...
Ξέρεις και τη C και την assembly (μία είναι η assembly άραγε; ) billtech για να τις συγκρίνεις; 
ΥΓ. Η C δεν είναι υψηλού επιπέδου, η C++ είναι.

----------


## billtech

> Καλά τα linux και τα embedded linux συστήματα είναι σε assembly (εκτός αν τα θεωρείς ερασιτεχνικά). Ότι θέμε λέμε μου φαίνεται...



σε εμενα το λες?

----------


## plouf

μην μιλάμε χωρίς να ξέρουμε...

α) το Linuxειναι κατα κυριο λόγο σε C 
β) η C ΕΙΝΑΙ γλωσσα υψηλου επιπέδου
γ) οι περισσότερες βιομηχανίες ΔΕΝ χρησιμοποιουν assembly πλεον.. εκτός αν μιλαμε για απλο ρολόι κτλ... σε σε υψηλόυ επιπέδου γράφονται για να κερδίσουν χρόνο και χρησιμοποιούνται τεράστια frameworks κατα κανόνα... μιας και οι μνημες εχουν πεσει σε τιμή 
πολύ...  δεν υπάρχει λόγος να να ξαναακαλύπτουν το τροχό. το κάνειο ένας γραφει compiler και μετά αλλος γράφει βιβλιοθήκες και εσυ κερδίζεις χρόνο...

----------


## billtech

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

----------


## klik

Το linux (και τα embedded linux) φυσικά είναι σχεδόν αποκλειστικά σε C. Υπήρχε ένα ερωτηματικό εκεί (για τον billtech ήταν η ερώτηση που είπε ότι οι επαγγελματίες δουλεύουν assemby!)  αλλά χάθηκε... 




> μην μιλάμε χωρίς να ξέρουμε...
> 
> α) το Linuxειναι κατα κυριο λόγο σε C 
> β) η C ΕΙΝΑΙ γλωσσα υψηλου επιπέδου
> γ) οι περισσότερες βιομηχανίες ΔΕΝ χρησιμοποιουν assembly πλεον.. εκτός αν μιλαμε για απλο ρολόι κτλ... σε σε υψηλόυ επιπέδου γράφονται για να κερδίσουν χρόνο και χρησιμοποιούνται τεράστια frameworks κατα κανόνα... μιας και οι μνημες εχουν πεσει σε τιμή 
> πολύ...  δεν υπάρχει λόγος να να ξαναακαλύπτουν το τροχό. το κάνειο ένας γραφει compiler και μετά αλλος γράφει βιβλιοθήκες και εσυ κερδίζεις χρόνο...



Δεν βλέπω να λέμε τίποτα διαφορετικό σε αυτό.

Η C δεν είναι υψηλού επιπέδου, είναι αρκετά κοντά στον μικροελεγκτή.
Σε αφήνει να κάνεις ότι θέλεις (όπως και η assembly)...
Όλες οι άλλες είναι... (C++,pascal, basic, ...)

Billtech τα embeded linux χρησιμοποιούν μικροελεγκτές ή μικροεπεξεργαστές (ίσως και το router σου να έχει linux π.χ. oxygen)

----------


## billtech

εγω δεν υποστιριχω την assebly γιατι και εγω σε mikrobasic δουλευω.
οσο αφορα τις βιομηχανιες ειμαι σιγουρος 1000% για την ασσεμπλυ γτ το εχω ψαξει.
οι ρουτερ ειναι σε C γτ εχουν λειτουργικο μεσα.

----------


## plouf

> Το linux (και τα embedded linux) φυσικά είναι σχεδόν αποκλειστικά σε C. Υπήρχε ένα ερωτηματικό εκεί (για τον billtech ήταν η ερώτηση που είπε ότι οι επαγγελματίες δουλεύουν assemby!)  αλλά χάθηκε... 
> 
> Billtech τα embeded linux χρησιμοποιούν μικροελεγκτές ή μικροεπεξεργαστές (ίσως και το router σου να έχει linux π.χ. oxygen)



ok to ερωτηματικο μας μπερδεψε





> εγω δεν υποστιριχω την assebly γιατι και εγω σε mikrobasic δουλευω.
> οσο αφορα τις βιομηχανιες ειμαι σιγουρος 1000% για την ασσεμπλυ γτ το εχω ψαξει.
> οι ρουτερ ειναι σε C γτ εχουν λειτουργικο μεσα.



χρησιμοποιούσαν ειναι η σωστή λεξη..
ίσως κάποιοι να μην άλλαξαν ακόμα, αλλά όσο εξελίσετε όλο και ανεβαίνουν οι γλώσσες (level)
ειναι τεχνικό λαθος θα έλεγα για μια βιομηχανία νακαθυστερήσει μηνες την ολοκλήρωση ενος project για να το βγάλει σε assembly αντί να το κάνει σε C/Basic/Pascal/.... 
επίσης το να κάνεις σε assembly κώδικα ποιο "γρήγορο" και ποιό "μικρο" απο C/Basic προυποθέτει οτι ξέρεις να προγραμματίζεις ΚΑΛΥΤΕΡΑ απο αυτούς που γράφουν τους Compilers....

ενδεικτικό ειναι οτι τόσο το MPLAB (PIC) όσο και το AVRSTUDIO (AVR) έρχονται πλεον με C compiler ...
και σιγά σιγά και embedded libraries .. και μετα με σύνολα απο libraries (= framework)

το θέμα υπολογιστές / mcu που λες διαχωρίζει αυτό που λέμε... κάποτε με MCU έλενχες 2-3 πράγματα και άνοιγες ένα - 2 ρελε... 
τώρα άντε κάτσε γράψε σε assembly δυκτιακά πράγματα η τηλεπικοινωνίες ή ανάλυση ήχου/κωδικοποιήση/συμπίεση (μέσα σε κινητα αυτό κανουν) 


πιστεύω οτι το ποιο σωστό ειναι αυτο (που ξαναειπώθηκε) για έναν νέο

μαθαίνεις assembly και κάνεις απλά πραγματα για να κατανοη΄σεις την λειτουργία.. 
δηλαδή αναβείς LED (το περιφημο ΚΙΤ κ.α) 

και μετά διαλέγεις τη γλώσσα που σε βολεύει ...

----------


## klik

Μην ξεχνάμε επιπλέον ότι αν πας σε assembly, έχεις δεθεί με μια κατηγορία μικροελεγκτών και δεν είσαι ευέλικτος.
Μάνα είναι μόνο μία ...  assembly υπάρχουν πολλές :Biggrin:

----------


## billtech

Χρηστο χρησιμοποιουν ακομα..και ξαναλεω βιομηχανιες.που εχουν προγραμματιστες που ολη μερα και ολη νυχτα ειναι πανω σε αυτα.
που εχουν κομματια ετοιμα και τα αντιγραφουν....αρα για αυτους δεν περνει χρονο για να γινει ενας προγραμματισμος.
σε πραγματα περιπολοκα του τυπου που εχει και λογισμικο απο πισω ναι εκει πανε σε C και αν τους περνει καποια κομματια του κωδικα παλι γινονται σε assebly.

επισης καλο ειναι να ξερεις και assebly(εγω δεν ξερω αν και μου χρειαστικε) ετσι ωστε οταν εχει καποιο προβλημα ο κωδικας να πας να δεις σε ασεεμπλυ που ειναι το πρροβλημα. πραγμα πολυ χρησιμο.
δεν υποστιριζω ασσεμπλυ γτ την βαριεμε αλλα ελα που δεν πηρα μια δουλεια γτ ηθελε προγραμματισμο σε ασσεμπλυ? και πολλες αλλες εταιριες σε ασσεπλυ θελουν. δυστηχως.

τωρα το παιδι αν ειναι για δικη του χρηση, για μικρα πραματα μια χαρα ειναι και η C και η Basic.

----------


## lordi

Η C με την ακριβή έννοια του όρου είναι υψηλού επιπέδου. Παρ' όλα αυτά είναι η χαμηλότερου επιπέδου, υψηλού επιπέδου γλώσσα! :Tongue2: !! Όσο για embedded linux η C είναι must! Δεν νομίζω να θέλει κανείς να δει ή να γράψει κώδικα για τον πυρήνα του linux σε assembly! Επιπλέον ακόμα και κώδικας embedded εφαρμογών είναι τις περισσότερες φορές σε C! Σε assembly γίνονται πολύ μικρά κομμάτια αν η απόδοση που επιθυμείς δεν είναι δυνατόν να επιτευχθεί με C και έναν compiler για την αρχιτεκτονική σου!

Συμβουλή μου είναι να ασχοληθείς με assembly στην αρχή του συγκεκριμένου μC που θες να χρησιμοποιήσεις για να αποκτήσεις μια καλύτερη εικόνα για την εσωτερική του αρχιτεκτονική και το πώς μπορείς να τον χρησιμοποιήσεις πιο σωστά και στην συνέχεια να κάνεις την μετάβαση σε C. Ούτως ή άλλως όταν μιλάμε για μC πολλές φορές η C που γράφουμε είναι λίγο πολύ καμουφλαρισμένη assembly (στα σημεία που υπάρχει αντιστοιχία ένα προς ένα των εντολών C και assembly κλπ.)!

Βούτα και κολύμπα με λίγα λόγια!!! Είναι η μόνη λύση! :Smile: !!! Καλά μπάνια!!!

----------


## ptisi110

Ξεκίνα για assebply και γενικά για την δομή του PIC από εδώ: http://www.electronics-lab.com/pic-in-greek/

και μετά για basic από εδώ: http://www.hlektronika.gr/forum/showthread.php?t=43400

Καλό διάβασμα..  :Smile:

----------


## Mihos

*ΠΡΟΣΟΧΗ:* Ακολουθεί μεγάλο και άκρως ενημερωτικό και ξερολίστικο post :Biggrin: .

Εγώ θα συμφωνήσω κυρίως με lastid, klik και lordi. Δεν κρύβω ότι δεν έχω ποτέ μου ασχοληθεί με Basic για μικροελεγκτές, έχω όμως μία μικρή εμπειρία από C,C++ και assembly διαφόρων αρχιτεκτονικών. Δεν υπάρχει απόλυτη απάντηση στο ερώτημα. Κάθε γλώσσα έχει τα κακά της και τα καλά της.

*Assembly*:

Υπερ:

1)Ότι καλύτερο για μάθεις την αρχιτεκτονική των επεξεργαστών (για εκπαιδευτικούς σκοπούς δλδ.). Επιπλέον σε βοηθά να κατανοήσεις θέματα που μπορεί να σου προκύψουν σε μία γλώσσα υψηλότερου επιπέδου επειδή έχεις μία ιδέα τι γίνεται πίσω από τον κώδικα υψηλού επιπέδου. Κατανοείς πράγματα όπως το πως γίνεται μία κλίση συνάρτησης, πως περνάν οι παράμετροι, πως βοηθά στα προηγούμενα η στοίβα του επεξεργαστή, τι είναι το stack overflow, τι γίνεται όταν μία παράμετρος στέλνεται by reference και τι όταν στέλνεται by value, τι είναι τα segments του προγράμματος τι είναι το segmentation fault και άλλα πράγματα που αν δεν έχεις μία ιδέα από assembly δεν είναι εύκολο να τα κατανοήσεις.

2)Μπορείς να γράψεις ταχύτερο κώδικα αν έχεις μία εξοικίωση και εμπειρία. (Δεν αποκλείεται αν δεν είσαι και πολύ έμπειρος ο compiler να παράγει καλύτερο κώδικα από εσένα).

Κατά:
1)Δύσκολο debugging.
2)Δύσκολη η ανάπτυξη μεγάλων προγραμμάτων.
3)Δύσκολη η συντήρηση και επέκταση κώδικα.
4)*Καμία μεταφερσημότητα (αν γράψεις κάτι για pic θα παίζει μόνο σε pic).*

*C:*

Υπερ:
1)Είναι αρκετά ευέλικτη και αρκετά κοντά στο επίπεδο της assembly. Σου δίνει ευελιξία να κάνεις κόλπα και “hackιες” παίζοντας με τις διευθύνσης της μνήμης με τα bytes κτλ... Ο προγραμματιστής έχει μεγάλη ελευθερία κινήσεων. Αυτό βέβαια δεν είναι πάντα καλό...
2)Είναι μικρή και σημαζεμένη γλώσσα. Η σύνταξη της δεν είναι αχανής και αυτό τη κάνει έυκολη στην απομνημόνευση. (Αυτό δεν σημαίνει ότι τι κάνει έυκολη σαν γλώσσα).
3)Έχει δανήσει τη σύνταξη των βασικών δομών ελέγχου σε πολλές και σημαντικές γλώσσες. Έτσι μαθένοντας τη σύνταξή της θα έχεις ένα μικρό ατού αν πάς να μάθεις άλλες γλώσσες όπως Java,C++,PHP (δεν μιλάω για γλώσσες προωρισμένες για embedded συστήματα, αλλά και γενικότερα).
4)Λόγω του σχετικά χαμηλού επιπέδου της και της παντελούς έλλειψης ελέγχου σφαλμάτων σε runtime οι compilers συνήθως παράγουν γρήγορο και μικρό τελικό κώδικα. Θα μπορούσαμε να πούμε ότι είναι "η πιο γρήγορη γλώσσα" μετά την assembly (αν μπορεί ειπωθεί κάτι τέτοιο).
5)Μιας και *δεν* είναι assembly ο κώδικας που γράφεις μπορεί να χρησιμοποιηθεί και σε άλλες αρχιτεκτονικές (αν δεν χρησιμοποιείς εξειδικευμένες βιβλιοθήκες). Μεταφερσιμότητα δλδ.


 Κατα:
 1)Έλλειψη αυστηρού ελέγχου σημασιολογικών λαθών και λαθών τύπων. Αυτό σημαίνει οτι ένας άπειρος προγραμματιστής είναι εκτεθημένος σε λάθη για τα οποία δεν θα τον ενημερώσει ο compiler.
 2)Παντελής έλλειψη ελέγχου runtime λαθών. Αυτό σημαίνει επίσης ότι ο προγραμματισής είναι εκτεθημένος σε λάθη. Πχ. Αν το πρόγραμμα μας πάει να διαβάσει ένα στοιχείο ενός πίνακα εκτός των ορίων του πίνακα, τότε θα δημιουργηθεί ένα γενικό “segmentation fault” όπως λέγεται. Κάτι δηλαδή που δεν μας δίνει καμία πληροφορία για το που είναι το λάθος μας (πρέπει να είμαστε πολύ προσεκτικοί). Βέβαια σε αυτό βοηθάν λίγο οι debuggers.


*C++:*

 Υπερ:
    1)Έχει τα υπέρ της C εκτός της ταχύτητας και του μεγέθους των προγραμμάτων.
    2)Έχει σχετικά αυστηρότερο έλεγχο λαθών από τη C. Υποστηρίζει επίσης exceptions (ένα εργαλείο που βοηθά πολύ τον προγραμματιστή στη διαχείριση λαθών).  
    3)Παρέχει δομές και λειτουργίες για τη συγγραφή προγραμμάτων με αντικειμενοστρεφή μέθοδο. Αυτό βοηθάει στην ανάπτυξη πολύ μεγάλων εφαρμογών, όπου ο αντικειμενοστρεφής προγραμματισμός μας βοηθά να δομήσουμε πιο οργανομένα την εφαρμογή μας.
   4)Παρέχει μία βιβλιοθήκη με αρκετές έτοιμες υλοποιημένες δομές (λίστες, διανύσματα, ουρές προτεραιότητας, σωρούς κτλ...) και έτοιμους αλγορίθμους (ταξινόμησης, ανάζήτησης κτλ...). Βλέπε STL.

 Κατά:
     1)Υστερεί σημαντικά σε ταχύτητα σε σχέση με την C.
     2)Τα παραγόμενα προγράμματα είναι σχετικά μεγάλα σε μέγεθος. Δεν συστήνεται όταν θέλουμε να χωρέσουμε όσο περισότερα μπορούμε σε μία flash των 4kB πχ.
     3)Πολλά από τα “features” της είναι κατα τη γνώμη μου κακοσχεδιασμένα με αποτέλεσμα να είναι πηγή λαθών και να μπερδέυουν πολλές φορες τον προγραμματιστή παρά να τον βοηθάν (Βλέπε πολλαπλή κληρονομικότητα, member pointers και άλλα).

Εν κατακλείδι, κατά τη γνώμη μου η C θα κάνει τη δουλειά τις περισσότερες φορές μια χαρά. Θα έλεγα ότι συνδιάζει την ευελιξία και τον έλεγχο που σου δίνει η assembly ενώ παρέχει  μεταφερσιμότητα και μία σχετική διαχειρισομότητα που σου δίνει μία γλώσσα πιο υψηλού επιπέδου. Θεορώ επίσης ότι απαραίτητο είναι ένας προγραμματιστής μικροελεγκτών να έχει μάθει και την assembly μίας σημαντικής αρχιτεκτονικής που χρησιμοποιεί γιατι αυτό θα τον κάνει σε κάθε περίπτωση καλύτερο προγραμματιστή. Τέλος η C++ θα μπορούσε να χρησιμοποιηθεί για πολύ μεγάλα project όπου οι απόλυτη ταχύτητα και η μνήμη δεν αποτελούν περιορισμούς (όχι ότι η C δεν μπορεί).

Όσο για τη βιομηχανία embedded συστημάτων, έχω την εντύπωση ότι η C κατέχει το μεγαλύτερο ποσοστό.

----------

draco1 (16-05-16)

----------


## Acinonyx

Κάθε γλώσσα είναι για συγκεκριμένη δουλειά. Δεν υπάρχει λόγος να τις συγκρίνουμε. Στους μικροελεγκτές, που είναι και το αντικείμενο αυτού του forum, γενικά χρησιμοποιούμε assembly σε προγράμματα όπου ο χρόνος επεξεργασίας είναι κρίσιμος (π.χ. ανάλυση σημάτων σε πραγματικό χρόνο). Είναι γεγονός ότι τα προγράμματα σε assembly είναι συνήθως μικρότερα από αυτά που παράγει ένας μεταγλωττιστής/βελτιστοποιητής C οπότε μπορούμε να πούμε ότι προτιμάται όπου γενικά υπάρχει έλλειψη πόρων, σε επεξεργαστική ισχύ και μνήμη προγράμματος..

----------


## sv4lqcnik

Αγαπητοί συνφορουμίτες    :Applause:  :Applause:  :Applause: 
Ευχαρστώ για το ενδιαφέρον και τις συμβουλές σας . 
Πρίν αποσυρθώ για την πρώτη ''ώρα του μαθήματος'' θα ήθελα να μου πείτε που θα βρώ το software της C εντολές κλπ , για να προετειμάσω την ύλη και για τις επόμενες ώρες του μαθήματος και πάντα με την άδειάσας να επανέρχωμαι με ερωτήσεις και απορείες ανα τακτά χρονικά διαστήματα και αυτό γιατί στήν εποχή που ζούμε δεν ειναι να αφήνω ευκαιρείες για κανένα μεροκάματο γιατί δεν υπάρχουν και πολλά διαθέσιμα για τα πρός το ζείν. Και η οικογένεια πρέπει να ζήσει.
Για την ώρα σας ευαριστώ και πάλι . :Bye:  :Bye:

----------


## plouf

η microchip παρέχει 2 c compilers free τελείως
http://www.microchip.com/stellent/id...e=wwwCompilers

προτίμησε τη HiTech LITE γιατί υποστηρίζει περισόττερα ακόμα μικρούς MCU και free 100%. (software+manual)
http://www.microchip.com/stellent/id...cName=en542849

καλο (απαραίτητο) βεβαια και το MPLAB IDE

----------


## lastid

Μπορεί ο Νίκος να έδωσε το σήμα για να προχωρήσει πλέον η συζήτηση στο επόμενο στάδιο, ας μου επιτραπεί όμως να προσθέσω κάτι σημαντικό.
Για 15+ χρόνια ήμουν υπέρμαχος της assembly στους μικροελεγκτές, για όλα τα πλεονεκτήματα που αυτή είπαμε πως έχει. Με τον καιρό και την εμπειρία όμως βεβαιώθηκα πως σε μία εφαρμογή υπάρχουν δύο αντικρουόμενες μεταβλητές. Αντικρουόμενες γιατί συνήθως όταν βελτιώνουμε την μία, χειροτερεύουμε την άλλη. Αυτές οι μεταβλητές είναι α) ο χρόνος εκτέλεσης ενός προγράμματος από τον μικροελεγκτή και β) ο χρόνος ανάπτυξής του από τον αναλυτή / προγραμματιστή.
Όταν ο μικροελεγκτής είναι καλός, μικραίνουν και οι δύο. Όταν ο προγραμματιστής είναι καλός, πάλι μικραίνουν και οι δύο. Όμως φαίνεται να υπάρχει ένα όριο, μία παγκόσμια σταθερά, πέρα από το οποίο δεν μπορούν να μικρύνουν και τα δύο όσο θέλουμε.
Όταν ήμουν νέος και φρέσκος, ο ενθουσιασμός μου δεν με άφηνε να εκτιμήσω καθαρά τον ΔΙΚΟ μου χρόνο. Κοίταζα μόνο τον χρόνο του microcontroller. Πιστεύω πως αυτό που λέμε εμπειρία, είναι αυτό που μας κάνει να παρακολουθούμε περισσότερα πράγματα ταυτόχρονα, αντί να εστιάζουμε σε ένα μόνο. Γι αυτό και πιστεύω πως η C δίνει το βέλτιστο. Και οι περισσότερες εταιρείες του εξωτερικού πιστεύουν το ίδιο.
Προσωπικά και επειδή έχω ψάξει αρκετά το θέμα, νομίζω πως αν κάποιος γράφει σε μία καλή C και έχει πλήρεις γνώσεις του αντικειμένου, παράγει κώδικα ο οποίος λίγο απέχει από την assembly, τόσο λίγο που αξίζει με χίλια να το προτιμούμε.
Σχετικά τώρα με την αναζήτηση της C, να προσθέσω ότι και ο CCS C compiler είναι από τους καλύτερους που έχω δοκιμάσει.

----------


## solarcon

C++ φίλε...

----------


## Mihos

> C++ φίλε...



Κώστα έχεις κάποιο επιχείρημα; Όλοι οι προηγούμενοι αιτιολογήσαμε αναλυτικά τις απόψεις μας...

----------


## plouf

επίσης υπάρχει . . .c++ για PIC ???

----------


## navar

> επίσης υπάρχει . . .c++ για PIC ???



 αυτήν την απορία την έχω και εγώ !
τί να την κάνεις την C++ η την C# όταν μιλάμε για μΕ ?

----------


## klik

> αυτήν την απορία την έχω και εγώ !
> τί να την κάνεις την C++ η την C# όταν μιλάμε για μΕ ?



Σε μεγάλα προγράμματα είναι χρήσιμη η c++ (αλλά τρομερά πιό αργή και μνημοβόρα από τη C), προσφέρει πολύ καλύτερη οργάνωση κώδικα (με χρήση "αντικειμένων"). 
Υπάρχουν διάφορες υλοποιήσεις C++ για μικροελεγκτές (π.χ. 8051 σειράς) με "τόνους" μνήμης.
Για PIC 16F/18F δεν ξέρω να υπάρχει ή και να υπάρχει δεν το βλέπω λειτουργικό...(περιορισμοί ταχύτητας/μνήμης)

----------


## solarcon

Τι να πω για την C++; Είναι τόσο ανώτερη γλώσσα προγραμματισμού. Αν ήταν γυναίκα θα την είχα παντρευτεί. Είναι ψυχρή και δεν συγχωράει λάθη και παραλείψεις αλλά κρύβει ολόκληρη τη γοητεία του προγραμματισμού.,,

  Πλέον μπορείς να κάνεις τα πάντα με αυτή τη γλώσσα. Από βασικό προγραμματισμό μέχρι επεξεργασία σήματος και εικόνας, μέχρι βάσεις δεδομένων, Σ.Α.Ε., οικονομικές αναλύσεις, θεωρίες συνόλων και ΝΑΙ και PIC προγραμματισμό.

  Εμένα μου πήρε τέσσερα χρόνια από τη ζωή μου να μάθω σε ικανοποιητικό επίπεδο τα βασικά της + την επεξεργασία εικόνας ( DFT, IDFT, histogram equalization,image enhancement _κ.τ.λ. )_ με αντικείμενο τις ιατρικές εφαρμογές.

  Βασικά από ό,τι θυμάμαι, για PIC προγραμματισμό έχει ένα ρεπερτόριο τεσσάρων βασικών εντολών. Αυτές είναι οι*iomanip.h,  fstream.h, strstream.h, stdiostream.h
* 
  Σε γενικές γραμμές, μια και μιλάμε για αντικειμενοστροφή προγραμματισμό, η class hierarchy ξεκινάεί

*ios**istream-                                                ostream**iostream*

    Αν κάνω κάτι λάθος, να με συγχωρήσετε γιατί έχω να ασχοληθώ καιρό. Πιστεύω όποιος μάθει προγραμματισμό σε C++ δικαιούται να ονομάζει τον εαυτό του προγραμματιστή. Μετά μπορεί να μάθει τα πάντα. Προσοχή όμως !!! Το μονοπάτι είναι δύσβατο.

  Αυτή είναι η άποψή μου και σε καμία περίπτωση δεν θεωρώ ντε και καλά ότι είναι η σωστή. Απλώς όφειλα να διευκρινίσω κάποια πράγματα….

----------


## klik

[offtopic]
Ο δημιουργός της C++ είναι ο Bjarne Stroustrup.

Και ευτυχώς, ξέρει τι του γίνεται με το "τερατούργημα" που έφτιαξε:

"In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg."

 :Lol: 

[/offtopic]

Αν θέλουμε να κάνουμε εφαρμογές σε PC/MAC/... διαλέγουμε ότι θέλουμε (Haskel,C#,F#,C++ κλπ).

Για να κάνουμε πολύπλοκα περιβάλλοντα σε μικροελγκτες με άπειρη μνήμη, μπορούμε για δικιά μας ευκολία μπορούμε αν θέλουμε (και άν βρούμε compiler) να δουλέψουμε και με C++.
Άν βρείτε καμιά καλή υλοποιήση της C++ (και όχι τσαπατσοδουλειές με streams) , πέστε μου και μένα που την δουλεύω τη C++ (στα PC) από τότε που βγήκε!  :Biggrin: 

*Για μικροελεγκτές και οποιονδήποτε απλό ή όχι αυτοματισμό, δηλαδή στο 99% των περιπτώσεων, μπορούμε άνετα να δουλέψουμε με C και να μην σπάμε τα νεύρα μας.* 

Για τη basic τι να πω, θα αφήσω τον μεγάλο δάσκαλο να μιλήσει:
*It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.*  :Lol:

----------


## navar

> Για τη basic τι να πω, θα αφήσω τον μεγάλο δάσκαλο να μιλήσει:
> *It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.*



 ολόσωστος ο klik , είναι πολύ χύμα η basic , με καμία έννοια σωστής δομής , με δυσκολία σε ερμηνεία σε ήδη υπάρχον κώδικα !
σίγουρα για κάποιον που θέλει να αρχίσει να μαθαίνει , η C είναι μονόδρομος , αν θέλει να μάθει σωστά !

----------


## lastid

Όταν ο Dijkstra έλεγε αυτά για την Basic, είχε δίκιο. Θυμόσαστε π.χ. την αρίθμηση γραμμών 10,20,30,..? Και η Basic όμως έχει εξελιχθεί σε τέτοιο βαθμό που είναι αδικία να μην της το αναγνωρίσουμε.
Πάντως οι περισσότεροι συμφωνούμε νομίζω ότι η C++ πέφτει λίγο βαριά σε έναν 8-bito μικροελεγκτή με μερικά Κ μνήμης - και δεν βρίσκεται κι εύκολα.
Offtopic: Solarcon, Εγώ ερωτεύτηκα την PHP που είναι ακριβώς το αντίθετο: Μου συγχωράει τα πάντα και δεν χρειάζεται να της γράφω δύο σελίδες ραβασάκια για να μου ψήσει μόνο έναν καφέ.

----------


## cycler

> Εγώ ερωτεύτηκα την PHP που είναι ακριβώς το αντίθετο: Μου συγχωράει τα πάντα και δεν χρειάζεται να της γράφω δύο σελίδες ραβασάκια για να μου ψήσει μόνο έναν καφέ.



 :Lol: 
+1!

Χρησιμοποιώ CCS C, τη βρήκα πιο βολική από τη HI-TEC C.
Με BASIC ασχολήθηκα μόνο στον ΖΧ Spectrum... :Smile:

----------


## sv4lqcnik

Καλοί μου άνθρωποι συνφορουμίτες επιτρέψτε μου να σας επαναφέρω λίγο στην πραγματικότητα του πρωτάρη .
Μην αναφέρεστε τοσο απότομα σε εξελιγμένους compiler's,γιατι κυκλοφορούν και εμφράγματα , σωστά ;; Να τα λέτε ολα με τρόπο ,να τα φέρνετε λιγα λιγα στην επιφάνεια, γιατι θα μπλοκάρει ο μ/ε του καθε πρωτάρη και δεν θα καταλάβει - δεν θα αφομοιώσει τίποτα απο αυτα που προσπαθεί να διαβάσει     :Hammer:   :Hammer:   :Hammer: με το συμπάθειο φυσικά.

Συμπληρωματική σημείωση η microchip μάλων αρχισε τις περικοπές. βρηκα φράχτη στη micro C lite , θα κανω μια προσπάθεια να παω σε αλη γειτονιά να ψάξω ::όποιος προλάβει η micro η εγώ.

----------


## klik

> ...Συμπληρωματική σημείωση η microchip μάλων αρχισε τις περικοπές. βρηκα φράχτη στη micro C lite , θα κανω μια προσπάθεια να παω σε αλη γειτονιά να ψάξω ::όποιος προλάβει η micro η εγώ.



όχι βρε μην τρελαίνεσαι: C compiler
Ο hitech c lite είναι δωρεάν, όπως και ο microchip mcc18 eval.
Εσύ κοίταξες σε άλλο μαγαζάκι (mikroe.com)  :Biggrin: 

Ακόμα και όλα τα τζάμπα να τελειώσουν από τις εταιρίες αυτές, υπάρχει και ο sdcc που είναι open source και παίζει μια χαρά με codeblocks, αλλά όπως είπα: μην τρελαίνεσαι. Παίξε με mcc18 ή hitech-c

----------


## GeorgeVita

> ... επιτρέψτε μου να σας επαναφέρω λίγο στην πραγματικότητα του πρωτάρη ...



Γειά σου Νίκο. Αν έχεις ήδη ψάξει στο site της microchip και έχεις μια ιδέα για τις οικογένειες PIC10, PIC12, PIC16, PIC18, PIC24F, PIC24H, PIC32 και dsPIC καλό είναι να φανταστείς και να μας περιγράψεις μια εφαρμογή.



Υπάρχει περίπτωση οι εφαρμογές που σκέφτεσαι ή το αποτέλεσμα της γνώσης που θέλεις να 'δείξουν' το μέγεθος και την πολυπλοκότητα του μC ή των έτοιμων πλακετών (τύπου arduino, embedded boards, κλπ).

Είναι διαφορετικό να 'οργανωθούμε' για να σχεδιάσουμε ένα ηλεκτρονικό ζάρι (PIC10 με 7 LED) από ότι να κάνουμε image processing.

[off topic] Θα ήθελα να δω εφαρμογή για PIC10 των 6pins γραμμένη σε C++ [/off topic] 

Οι συνηθισμένες εκπαιδευτικές εφαρμογές ασχολούνται με οδήγηση LED έως απλών LCD, παίρνουν είσοδο από μπουτόν-ποτενσιόμετρο-τάση, ίσως συνδέονται με RS232 ή USB και περιλαμβάνουν χρονισμούς και λογικές συναρτήσεις.

Οποιοδήποτε εκπαιδευτικό εγχειρίδιο συμπεριλαμβανομένων των 'tutorials' που ενσωματώνουν το MPLAB, οι compilers καθώς και αρκετές σελίδες στο internet θα σε βοηθήσουν. Απλά ξεκίνα!

Κατά τη γνώμη μου είναι να απαραίτητο να εξοικειωθείς με τα εργαλεία της microchip (MPLAB) και να έχεις ένα programmer. Ενα πακέτο τύπου PICKIT3 τα έχει όλα. Εκεί θα ακολουθήσεις τα tutorials και μετά θα προσπαθήσεις να υλοποιήσεις την πρώτη σου εφαρμογή.

G

----------


## sv4lqcnik

Καλα μου φιλαρακια γειασας 

καλο το pickit3 το εχω κατα νου , αλα πρεπει πρωτα να μαζεψω τα δολαρια που θελει για να αποκτηθει. Τωρα με το να ριξω ενα σεναριο για να το υλοποιησουμε ,αυτο ειναι ευκολο ειναι σαν να παω να γραψω με σκονακι ,καλο ειναι πιστευω πρωτα να εχω μια ιδεα για το πως μπορω να κανω ζαφτι τον μ/ε και τα μυνηματα λαθων που θα φαω στη μαπα γιατι καθε μερα κακα τα ψεματα δεν μπορεις να τα πρηζεις στον καθε καλο συνανθρωπο που θελει να βοηθησει '' να μην κανουμε καταχρηση της καλοσυνης '' γιαυτο πρεπει πρωτα να κατανοησω τα βασικα και μετα με ολο το σεβασμο να ζητησω να τελειοποιησω την καθε ιδεα με την δικη σας εμπειρια στους μ/ε και να προοθησουμε εναν μπουσουλα για τον καθε πρωταρη σαν και μενα. Ευχαριστω και τον klik για την διορθωση '' τελικα χανεσε χωρις να την ανθιστης  :Smile:  :Smile:  ''

με φιλια και εκτιμηση
ο στραβακας

----------


## solarcon

> [offtopic]
> Ο δημιουργός της C++ είναι ο Bjarne Stroustrup.
> 
> Και ευτυχώς, ξέρει τι του γίνεται με το "τερατούργημα" που έφτιαξε:
> 
> "In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg."
> 
> 
> 
> ...



 Φαίνεσαι έμπειρος προγραμματιστής με αυτά που γράφεις. Απορρίπτεις με σχετική ευκολία το συγκεκριμένο ρεπερτόριο εντολών της C++. Από τις περιγραφές σου φωτογραφίζεις αυτή τη γλώσσα προγραμματισμού ως αναξιόπιστη και μεγάλο χάσιμο χρόνου να ασχολείται κάποιος με αυτή….

  Ποια είναι ακριβώς η ενασχόληση σου με τον προγραμματισμό ; Εργάζεσαι σε κάποια εταιρεία ; Θέλω να σε ρωτήσω για κάποιες απορίες που έχω.

----------


## klik

> ...Απορρίπτεις με σχετική ευκολία το συγκεκριμένο ρεπερτόριο εντολών της C++...Από τις περιγραφές σου φωτογραφίζεις αυτή τη γλώσσα προγραμματισμού ως αναξιόπιστη και μεγάλο χάσιμο χρόνου να ασχολείται κάποιος με αυτή...



Την απορρίπτω για τη συγκεκριμένη χρήση, αφού *το νήμα αυτό αφορά μικροελεγκτές* που θα χρησιμοποιήσει κάποιος αρχάριος ή έστω μια επιχείρηση που θέλει να φτιάξει αυτοματισμούς. Δεν γνωρίζω να υπάρχει και καμιά normal υλοποίηση c++ μια τέτοιους μικροελεγκτές με exceptions,stl κλπ. Αν βρείς κάποια, θα με ενδιέφερε να τη δω.
Οπότε άποψη μου είναι ότι η C++ είναι εκτός θέματος στους φτηνούς μικροελεγκτές.

Για υπολογιστές με πολύ μνήμη (π.χ. embedded linux, pc κλπ) και όχι κρίσιμα (χρονικά) κομμάτια κώδικα, τη συνιστώ (δες τι είπα για τα PC).

Οι άλλες ερωτήσεις σε άλλο νήμα ή σε πμ.

----------


## solarcon

Μάλιστα. Όχι ρωτάω γιατί προηγουμένος είχες πει ότι 



> Υπάρχουν διάφορες υλοποιήσεις C++ για μικροελεγκτές (π.χ. 8051 σειράς) με "τόνους" μνήμης.
> Για PIC 16F/18F δεν ξέρω να υπάρχει ή και να υπάρχει δεν το βλέπω λειτουργικό...(περιορισμοί ταχύτητας/μνήμης)



 και μετά λες ότι 



> Την απορρίπτω για τη συγκεκριμένη χρήση, αφού *το νήμα αυτό αφορά μικροελεγκτές* που θα χρησιμοποιήσει κάποιος αρχάριος ή έστω μια επιχείρηση που θέλει να φτιάξει αυτοματισμούς



. 

Επίσης σε ρώτησα αν εργάζεσαι κάπου και δεν μου απάντησες...Να θεωρήσω προφανώς ότι αναφέρομαι σε άλλον ένα χομπίστα με αναλαμπές διαδικτυακού Guru των μικροελεγκτών ?????????

Να σε θεωρήσω υπερβολικό που καταδικάζεις το ρεπερτόριο εντολών της C++ για μικροελεγκτές. Τέλος πάντων εχώ έχω διαμορφώσει την άποψή μου...

----------


## Mihos

Κώστα σε παρακαλώ μπορείς να μου πεις τι είναι αυτά που γράφεις εδώ, γιατί ψηλομπερδέυτηκα...





> Βασικά από ό,τι θυμάμαι, για PIC προγραμματισμό έχει ένα ρεπερτόριο τεσσάρων βασικών εντολών. Αυτές είναι οιiomanip.h, fstream.h, strstream.h, stdiostream.h
> 
> Σε γενικές γραμμές, μια και μιλάμε για αντικειμενοστροφή προγραμματισμό, η class hierarchy ξεκινάεί
> 
> iosistream- ostreamiostream



Τι σχέση έχουν τώρα τα header files (η μάλλον "ρεπερτόρια εντολών" :Blink: ) με τη κουβέντα και τι σχέση έχουν οι εξωτικοί αλγόριθμοι επεξεργασίας σημάτων και εικόνας που λες ότι κατέχεις με τη κουβέντα :Confused1:  Τώρα φταίω να υποθέσω ότι πέταξες ένα σωρό παράξενες ορολογίες για να μας εντυπωσιάσεις? Θα ήθελα σε παρακαλώ να μου πεις που εργάζεσαι για να δω αν αυτά που λές είναι αξιόπιστα :Lol: 

Το πράγμα είναι απλό. Η C++ δεν ενδεικνειται για προγραμματισμό μικροελεγκτών που έχουν περιορισμένη μνήμη γιατί τα παραγόμενα προγράμματα είναι στις περισσότερες φορές απαγορευτικά μεγάλα.

Κατά τη γνώμη μου η C++ έχει πολλά προβλήματα και για τον προγραμματισμό PC. Έχει πολλά σχεδιαστικά λάθη που τη μπερδεύουν άσκοπα.

Τέλος πάντων... Για να ασχοληθούμε και λίγο επί της ουσίας με τα ερωτήματα του παιδιού, εγώ θα πρότεινα για αρχή και για να εξοικειωθεί με την C που κατέληξε, να παίξει και με έναν compiler για PC. Είναι πιο εύκολο στο PC να δεις αν το πρόγραμμα σου κάνει αυτό που νομίζεις ότι κάνει και να το διορθώσεις, να το ξαναδοκιμάσεις κτλ... 

Υπάρχουν αρκετοί C compilers για windows (να είναι καλά το google). Εγώ χρησιμοποιούσα κάποτε το MinGW (είναι κάποια ports gnu εργαλείων του linux  σε windows). Νομίζω μάλιστα ότι το CodeBlocks χρησιμοποιεί MinGW.

Επομένως φίλε μου εγώ προτείνω να κατεβάσεις το codeblocks και να αρχίσεις να γράφεις απλά προγράμματα για PC (Πχ. να εμφανίζουν ένα μήνυμα, να κάνουν μία αριθμητική πράξη κτλ... και μετά όταν νιώσεις πιο εξοικειωμένος να προχωρήσεις στου μικροελεγκτές.

----------


## klik

> ...



 είναι ξεκάθαρο τι είπα:
τυπικοί μικροελεγκτές: c
μικροελεγκτές με πολύ μνήμη ή μικροεπεξεργαστές: Haskel,C#,F#,C++,...





> Επίσης σε ρώτησα αν εργάζεσαι κάπου και δεν μου απάντησες...



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

Είσαι εκτός θέματος από το πρώτο σου μήνυμα!

----------


## solarcon

> Τι σχέση έχουν τώρα τα header files (η μάλλον "ρεπερτόρια εντολών") με τη κουβέντα και τι σχέση έχουν οι εξωτικοί αλγόριθμοι επεξεργασίας σημάτων και εικόνας που λες ότι κατέχεις με τη κουβέντα  Τώρα φταίω να υποθέσω ότι πέταξες ένα σωρό παράξενες ορολογίες για να  μας εντυπωσιάσεις? Θα ήθελα σε παρακαλώ να μου πεις που εργάζεσαι για να  δω αν αυτά που λές είναι αξιόπιστα



Μιχαλάκη τι κάνω τώρα αφού τα δουλέυω αυτά ; Τι να κάνω να μην τα ξέρω ; Εσύ τώρα τι ζόρι τραβάς ; Εγώ έγραψα την γνώμη μου για τη C++ που έχω φάει κάποια χρόνια από τη ζωή μου και την έχω μάθει. Εσύ από ότι φαίνεται δεν την έχεις μάθει. Και εγώ τι να κάνω ; να κάθομαι να διαβάζω βλακείες του τύπου 



> Τι σχέση έχουν τώρα τα header files (η μάλλον "ρεπερτόρια εντολών"



 ;

Δεν κατάλαβα δεν μπορώ να γράψω την γνώμη μου για κάποια πράγματα; επειδή εσύ δεν μπορείς να μάθεις την C++ θα μου χώνεις εμένα γκάζια; Για χαλάρωσε λίγο ρε μεγάλε



> Κατά τη γνώμη μου η C++ έχει πολλά προβλήματα και για τον προγραμματισμό  PC. Έχει πολλά σχεδιαστικά λάθη που τη μπερδεύουν άσκοπα.







> Θα ήθελα σε παρακαλώ να μου πεις που εργάζεσαι για να δω αν αυτά που λές είναι αξιόπιστα



Ότι ώρα θες φιλαράκο...Εργάζομαι στη Ευρωκλινική Αθηνών στο τμήμα Βιοίατρικής Τεχνολογίας και Διαχείρισης Ιατροτεχνολογικού Εξοπλισμού. Πέρνα από εκει να σε δω και εσένα τι θα μου πεις. Να δεις και εσύ τι τραβάω και εγώ εκεί. να δούμε τότε ...θα με ειρωνευτείς ξανά ;;;;

----------


## klik

> ...
> Δεν κατάλαβα δεν μπορώ να γράψω την γνώμη μου για κάποια πράγματα; επειδή εσύ δεν μπορείς να μάθεις την C++ θα μου χώνεις εμένα γκάζια; Για χαλάρωσε λίγο ρε μεγάλε
> ...Να δεις και εσύ τι τραβάω και εγώ εκεί. να δούμε τότε ...θα με ειρωνευτείς ξανά ;;;;



Τα off topic σου συνεχίζονται.
Γιατί δεν καθοδηγείς τον δημιουργό του νήματος 
(θυμίζω τον τίτλο: "_Προγραμματισμος PIC με C/C++ η basic (microbasic)_") 
στο να προγραμματίσει τους *PIC* μικροελεγκτές με *C++*;
Είμαι πρόθυμος να ακούσω μια άλλη γνώμη αρκεί να είναι τεκμηριωμένη και εφαρμόσιμη.

----------


## Acinonyx

> Ακόμα και όλα τα τζάμπα να τελειώσουν από τις εταιρίες αυτές, *υπάρχει και ο sdcc που είναι open source και παίζει μια χαρά* με codeblocks,



Το επιβεβαιώνω 100%. Αν και έχει ιδιαιτερότητες, είναι απολύτως λειτουργικός.

----------


## Acinonyx

> Βασικά από ό,τι θυμάμαι, για PIC προγραμματισμό έχει ένα ρεπερτόριο τεσσάρων βασικών εντολών. Αυτές είναι οι*iomanip.h,  fstream.h, strstream.h, stdiostream.h
> *



Από αυτά που γράφεις, φαίνεται ότι δεν έχεις καμία εμπειρία σε άλλες γλώσσες προγραμματισμού. Επειδή έμαθες την C++ και μόνο αυτή, την έχεις θεοποιήσει. Αυτό το λέω γιατί, θεωρώντας ότι δε θα χρησιμοποιήσεις αντικειμενοστρεφή προγραμματισμό σε έναν PIC, οι δύο γλώσσες (C vs C++) δεν έχουν ιδιαίτερες διαφορές.

Όπως έγραψα και παραπάνω, η κάθε γλώσσα απευθύνεται σε συγκεκριμένο αντικείμενο. Τι θέλω να πω: Μπορείς να γράψεις ένα GUI σε assembly αλλά θα σου φάει μήνες. Σε C++ θα σου έπαιρνε λίγες μέρες. Αντίστοιχα, (πιθανόν) να μπορείς να γράψεις ένα πρόγραμμα για μικροελεγκτή σε C++ με αντικείμενα. Θα γίνει όμως μεγάλο και δυσανάγνωστο γιατί θα έχεις χρησιμοποιήσει μια γλώσσα που δεν είναι σχεδιασμένη να αντιμετωπίζει αυτές τις ανάγκες.

Πάντως, και εγώ έχω περιέργεια πως προγραμμάτισες τον PIC με C++... Ελπίζω μόνο να μην είναι με inline assembly κώδικα. :P

----------


## Mihos

Για ρίξτε μία ματιά εδώ. Ένα ενδιαφέρον πείραμα που ίσως δικαιώσει εν μέρη τον solarcon... Άνοιξα καινούργιο θέμα για να μη χαλάμε αυτό...

----------


## sv4lqcnik

ΑΓΑΠΗΤΟΙ ΣΥΝΦΟΡΟΥΜΙΤΕΣ Ο ΣΤΡΑΒΑΚΑΣ ΞΑΝΑΧΤΥΠΑ
(ΟΔΗΓΟΣ ΑΠΟ ΠΡΩΤΑΡΗ ΣΕ ΠΡΩΤΑΡΗΔΕΣ)

ΜΕΤΑ ΑΠΟ ΟΛΙΓΟΗΜΕΡΗ ΑΠΟΧΗ ΑΠΟ ΤΟ ΦΟΡΟΥΜ και  για ένα μικρό διάλλειμα  :Thumbup:  :hahahha:  :Tongue2:  :Lol:  από το διάβασμα έπρεπε να μπω και να ευχαριστήσω πρώτα όλους όσους μου έδωσαν τα φώτα τους και μετά να αποθέσω λίγα από τα μέχρι τώρα συμπεράσματα μου .  
 Φίλοι μου αν κάποιος ξεκινά τώρα να γνωριστεί προγραμματιστικά με τους μικροελεγκτές καλό θα είναι (δική μου γνώμη πάντα η απόφαση δική του) να:
πάρει την απόφαση και να βάλει μπρος για λίγο ποιο δύσκολα αλλά  βολικότερα από την Basic αναγνώσματα  και εννοώ φυσικά C με παραπομπή για αρχή σε Ccs C (για συντομία) να είναι καλά ο lastid που μουριξε το μπαλάκι και κατέβασα το demo , φιλικό με παραδείγματα και καλή βοήθεια <σε τραβάει από μόνο του να μπεις στα βαθειά > κάθε αρχή και δύσκολη βέβαια . όσο για την mBasic είναι πιο εύκολη στο γράψιμο αλλά γράφεις γράφεις και τελειωμό δεν έχεις (είχαν δίκιο όσοι μου το είπαν εδώ στο φόρουμ) τώρα με C μπορεί να φαίνονται βουνά και κινεζικά αλλά είναι καλυτέρα ( όταν λέω κινέζικα μη φανταστείτε δράκους ε πρωτάρηδες σε σας το λέω μην τρομάξετε απλά μερικές διαφορές στην σύνταξη των εντολών είναι τίποτα άλλο) απλά όταν είσαι μισοχωμενος στην Basic είναι κάπως να πας σε άλλο περιβάλλον προγραμματισμού . Σαν να μαθαίνεις γαλλικά και πας στα κινέζικα ένα πράμα ( εμένα έτσι μου φάνηκε ) αλλά πιστεύω να πάω καλά μέχρι το τέλος . 
Σ.Σ. στα πιο πολλά blogs  αν όχι σε όλα οι καλύτερες εφαρμογές με PIC είναι ογραμένες με C  τα συμπεράσματα δικά σας . Και τώρα πάλι το κεφάλι μέσα . θέλω να πιστεύω στο επόμενο χρονικό διάστημα να μπορέσω να ποστάρω και παραδείγματα δικά μου προγραμματιστικά και πρακτικά παραδείγματα  από το Α όπως και στα πρώτα βήματα του σχολείου . 
Προς το παρόν γεια σας

----------

