# Συζήτηση Κυκλωμάτων > Ψηφιακά Κυκλώματα > Μικροελεγκτές >  >  Αρχή με τον Atmega8 -  μαθήματα μικροελεγκτών

## master3763

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

Στην αρχή όταν ξεκινάει κανείς την ενασχόληση του με τους μικροελεκτές του δημιουργείται το ερώτημα..  Ποιον mc να διαλέξει από ένα μεγάλο  πλήθος  που υπάρχει  στην αγορά. Η απάντηση φυσικά είναι εκείνον που ταιριάζει με αυτό που θέλει να κάνει…  Για κάποιον  που αρχίζει  τώρα να μαθαίνει  θα πρότεινα τον Atmega8  της  ATMEL.  Είναι αρκετά  γρήγορος και διαθέτει αρκετές  λειτουργίες  για να αρχίσει  κάποιος να μαθαίνει  και να πειραματίζεται.

Για τον προγραμματισμό του MC θα χρειαστούμε

Έναν υπολογιστήΈναν προγραμματιστήΛογισμικό προγραμματισμού για υπολογιστήΚαι τον μικροελεγκτή 
Τον προγραμματιστή για να μην παιδευόμαστε μπορείτε να τον αγοράσετε από το e-bay σε πολύ καλή τιμή των 4 ευρώ. Και τον μικροελεγκτή με 2 ευρώ περίου.

Κατεβάζουμε το πρόγραμμα CodeVision στον υπολογιστή μας από εδώ και το εγκαθιστούμε .

Συνδέσουμε τον προγραμματιστή με μία από τις θύρες USB και κάνουμε εγκατάσταση του driver του προγραμματιστή. Και ήμαστε έτυμοι να προγραμματίσουμε τον μικροελεγκτή μας

Πηγή : http://jonhs.orgfree.com/microcontrollers_turials.html

----------

herctrap (15-03-12), 

NHREAS (14-03-12)

----------


## gas_liosia

Μπράβο από μένα για την προθυμία σου για ένα τέτοιο θέμα. Πιστεύω και εγώ πως ενδιαφέρει πολύ κόσμο.
Άν θες μπορώ να προτείνω και εγώ έναν πολύ απλό προγραμματιστή παράλληλης ο οποίος όμως αναγνωρίζεται από την CodeVision και δεν χρειάζεται να φορτώνουμε το hex με το AVRstudio. Τουλάχιστον για desktop υπολογιστή εξυπηρετεί πολύ να κατεβαίνει το hex κατευθείαν μετά το build του κώδικα στην CodeVision.

----------


## FILMAN

Να σας ευχαριστήσω κι εγώ ως αρχάριος στους μ/ε για αυτήν την πρωτοβουλία. Νομίζω όμως ότι το μεγάλο πρόβλημα δεν είναι στο πώς φορτώνουμε το πρόγραμμα στον μ/ε, αλλά το πώς φτάνουμε ως εκεί! Δηλαδή πώς γράφουμε το πρόγραμμα!

----------


## master3763

Μην βιάζεσαι φίλε *FILMAN ,*   Θα φτάσω κ εκεί  ) Όλα με την σειρά τους. Για αρχή θα ήθελα να ξέρω αν μέχρι εδώ υπάρχει κάποια απορία η παρατήρηση που θα θέλατε να κάνετε ;

----------


## FILMAN

Κοίτα, εγώ έχω ένα STK500 και το AVRStudio, αλλά δεν νομίζω να υπάρχει πρόβλημα. Το hex είναι hex. Δεν έχει σημασία πώς θα το περάσω στον μ/ε, έτσι δεν είναι; Από περιέργεια, να σε ρωτήσω, ποιον τρόπο ανάπτυξης του προγράμματος σκέφτεσαι να παρουσιάσεις; Με assembly, BASCOM AVR, C, ή κάτι άλλο;

----------


## rep

ειμαι και εγω εδω να συμπληρωσω με καποια παραδeiγματα σε bascom.μπουτον-lcd-πληκτρολογια -encoder-οθονες γραφικων κλπ.

----------


## diskjohn

Πολύ καλή κίνηση συγχαρητήρια το καλύτερο είναι να κατανοήσουμε την αρχή λειτουργίας ,και εάν μπορεί ο Κωνσταντίνος να ανεβάσει τον σειριακό προγραμματιστή που λέει και πάλι μπράβο master3763 δεν ξέρουμε το όνομα σου

----------


## master3763

> Κοίτα, εγώ έχω ένα STK500 και το AVRStudio, αλλά δεν νομίζω να υπάρχει πρόβλημα



Όχι δεν υπάρχει πρόβλημα με τον  STK500 .
Στο επόμενο μάθημα θα σας δείξω πώς με το πρόγραμμα CodeVision  γράφουμε κώδικα σε C++ για να αναβοσβήσουμε ένα λαμπάκι σε κάποιο pin του MC.





> δεν ξέρουμε το όνομα σου



Και για να γνωριστούμε κιόλας Γιάννης από Αλεξανδρούπολη  )

----------


## FILMAN

> θα σας δείξω πώς ...  γράφουμε κώδικα σε C++



Ωχ, το φοβόμουνα αυτό. Ποτέ δεν ασχολήθηκα με C...

----------


## rep

Γειασου Γιαννη.ωραιο το θεμα που ανοιξες.θα μας επιτρεψεις οσοι ξερουμε απο bascom να γραφουμε παραλληλα για οσους θελουν να ασχοληθουν με την bascom.

----------


## Thanos10

Φιλιππα αν δεις το βιβλιο για την γλωσσα C++ θα καταλαβεις (το εχω) το STK500 μπορεις να κανεις αρκετα παραγματα αλλα οχι για ολους τους AVR ειναι λιγο ξεπερασμενο ποια,τωρα το θεμα και βεβαια δεν ειναι να προγραμματισεις εναν μ.ε αλλα να γραψεις τον κωδικα.

----------


## edgar

μια μικρη σειρα απο tutorial για οσους ενδιαφερονται

http://hackaday.com/2010/10/23/avr-p...-introduction/
http://hackaday.com/2010/10/25/avr-p...-the-hardware/
http://hackaday.com/2010/11/05/avr-p...ompiling-code/
http://hackaday.com/2010/11/19/avr-p...ting-code-etc/

----------


## rep

Θανο ειναι πολυ ευκολος και καλυτερος ο τροπος προγραμματισου επανω στην πλακετα με ISP.

----------


## FILMAN

> Φιλιππα αν δεις το βιβλιο για την γλωσσα C++ θα καταλαβεις (το εχω)



Τι εννοείς, ότι είναι εύκολο, ή δύσκολο;




> το STK500 μπορεις να κανεις αρκετα παραγματα αλλα  οχι για ολους τους AVR ειναι λιγο ξεπερασμενο ποια



Γιατί, δεν μπορείς να το χρησιμοποιήσεις για να προγραμματίσεις οποιονδήποτε AVR στην πλακέτα σου μέσω ISP (δεν ξέρω, ρωτάω);




> τωρα το θεμα και  βεβαια δεν ειναι να προγραμματισεις εναν μ.ε αλλα να γραψεις τον  κωδικα.



Εμ βέβαια! Τα υπόλοιπα είναι εύκολα!

----------


## edgar

> Αρχικό μήνυμα από Thanos10
> 
> τωρα το θεμα και  βεβαια δεν ειναι να προγραμματισεις εναν μ.ε αλλα να γραψεις τον  κωδικα.
> 
> 
> 
> Εμ βέβαια! Τα υπόλοιπα είναι εύκολα!



δυσκολο δεν ειναι να γραψεις κωδικα γενικα και αοριστα
Το δυσκολο ειναι να καταλαβεις την συγκεκριμενη αρχιτεκτονικη του επεξεργαστη που δουλευεις, τα περιφερειακα του και πως να τα κουμανταρεις

----------


## FILMAN

Κοίτα, το να γράψω ένα πρόγραμμα που να αναβοσβήνει ένα LED είναι εύκολο. Πώς θα γράψω ένα πρόγραμμα που να κάνει λήψη ενός συγκεκριμένου κωδικού από ένα τηλεχειριστήριο RF στα 433.92MHz (ο δέκτης RF υπάρχει); Ε, πώς; Δεν ξέρω!

----------


## Thanos10

Οσο για το βιβλιο θελω να πω οτι ειναι ογκωδη,για το stk500 δεν ειπα οτι δεν μπορεις να προγραμματισεις απλα δεν υποστηριζει ολους τους AVR σιγουρα μπορεις μεσω ISP.
Παντος οταν θελει καποιος κατι πολυ μπορει να τα καταφερει και ας ειναι δυσκολο.

----------


## Thanos10

> Κοίτα, το να γράψω ένα πρόγραμμα που να αναβοσβήνει ένα LED είναι εύκολο. Πώς θα γράψω ένα πρόγραμμα που να κάνει λήψη ενός συγκεκριμένου κωδικού από ένα τηλεχειριστήριο RF στα 433.92MHz (ο δέκτης RF υπάρχει); Ε, πώς; Δεν ξέρω!



Φιλιππα βουτας στα βαθεια σιγα σιγα πρωτα αναβεις ενα LED και μετα τα αλλα.

----------


## FILMAN

> Οσο για το βιβλιο θελω να πω οτι ειναι ογκωδη



Μια και είχα κάποτε καλές σχέσεις με την BASIC, είπα να κατεβάσω τον BASCOM AVR γιατί οι σοβαρές εφαρμογές δεν βλέπω να παλεύονται με την assembly. Το εγχειρίδιο χρήσης είναι καμιά 1000δα ελίδες. Η μόνη περίπτωση να το διαβάσω είναι να το τυπώσω. Αλλά για να το τυπώσω θα δώσω καμιά 200ριά ευρά σε μελάνια!

----------


## plouf

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

μπορει να "μην εχει τη χαρα" όπως λένε οι σκληροπυρινικοι.. αλλα αν πας για να δημιουργήσεις μια εφαρμογή κερδίζεις σε χρόνο που θα τον αξιοποιήσεις αλλού..

παράδειγμα της mikroe.com οι μεταγλωτιστές που έχει αρκετές βιβλιοθήκες, αλλα και Modules με wifi - xbee - bluettoh κτλ κτλ

----------


## FILMAN

> Φιλιππα βουτας στα βαθεια σιγα σιγα πρωτα αναβεις ενα LED και μετα τα αλλα.



Τι να το κάνω να ανάψω ένα LED; Αυτό το έχω κάνει από καιρό. Ο σκοπός δεν είναι να ασχοληθώ με μ/ε για να αναβοσβήνω LED. Άμα ήταν αυτό το πρόβλημα δεν θα έβαζα μ/ε, θα έβαζα 555. Ο σκοπός είναι να κάνω αυτά που δεν γίνονται με κλασσικά ολοκληρωμένα. Πώς τα κάνουμε αυτά;

----------


## edgar

> Κοίτα, το να γράψω ένα πρόγραμμα που να αναβοσβήνει ένα LED είναι εύκολο. Πώς θα γράψω ένα πρόγραμμα που να κάνει λήψη ενός συγκεκριμένου κωδικού από ένα τηλεχειριστήριο RF στα 433.92MHz (ο δέκτης RF υπάρχει); Ε, πώς; Δεν ξέρω!



Ερχεσαι στα λογια μου!Γι'αυτο λοιπον διαβαζουμε το datasheet του επεξεργαστη μας να καταλαβουμε πως δουλευει η usart σε αυτον και πραττουμε αναλογως!

----------


## plouf

> Μια και είχα κάποτε καλές σχέσεις με την BASIC, είπα να κατεβάσω τον* BASCOM AVR* γιατί οι σοβαρές εφαρμογές δεν βλέπω να παλεύονται με την assembly. Το εγχειρίδιο χρήσης είναι καμιά 1000δα ελίδες. Η μόνη περίπτωση να το διαβάσω είναι να το τυπώσω. Αλλά για να το τυπώσω θα δώσω καμιά 200ριά ευρά σε μελάνια!



απεριοριστη αξια σε αυτό που είπα... έτοιμο κώδικα.. όσο για την ενχειρίδιο
δεν το τυπώνεις όλο ... μονο αυτο που λέει "fundamentals" τις εντολές τις κοιτάν όταν τις χριεάζεσαι

πχ θες ματριχ πληκτρολογιο κοιτας αυτες .. τι ς άλλες αστες..

----------


## Thanos10

> δυσκολο δεν ειναι να γραψεις κωδικα γενικα και αοριστα
> Το δυσκολο ειναι να καταλαβεις την συγκεκριμενη αρχιτεκτονικη του επεξεργαστη που δουλευεις, τα περιφερειακα του και πως να τα κουμανταρεις



Ετσι ειναι τα πραγματα αλλα τα ειπαμε ποιο γενικα.

----------


## FILMAN

> εδω ερχεται η αξία της υψηλής γλώσσας με πολλές βιβλιοθήκες.... 
> ειναι κουτό πλέον να γράφεις κώδικα για τέτοια πράγματα.. τα γράφουν αυτοί που γράφουν τις βιβλιοθήκες και εσυ γράφεις το πρόγραμμα.
> 
> μπορει να "μην εχει τη χαρα" όπως λένε οι σκληροπυρινικοι.. αλλα αν πας για να δημιουργήσεις μια εφαρμογή κερδίζεις σε χρόνο που θα τον αξιοποιήσεις αλλού..
> 
> παράδειγμα της mikroe.com οι μεταγλωτιστές που έχει αρκετές βιβλιοθήκες, αλλα και Modules με wifi - xbee - bluettoh κτλ κτλ



Χμ... Να ρωτήσω κάτι εδώ... Αυτά τα κομμάτια μπορώ να τα συνδυάσω όπως εγώ θέλω; Θέλω να πω, αν δυο διαφορετικά τέτοια κομμάτια χρησιμοποιούν π.χ. τους ίδιους καταχωρητές δεν θα κολλήσει το πρόγραμμα; Και αν δεν υπάρχει κάποιο έτοιμο τέτοιο κομμάτι που να κάνει αυτό που θέλω τί γίνεται;

----------


## plouf

αν με τα κοματια ενοιες τα modules
τότε τα Modules den γραφουν σε κανενα καταχωρητη, εσυ τους μιλάς μέσω καποιας επικοινωνίας , rs232, i2c κτλ, και το δικό σου πρόγραμμα αποθηκαυει τα δεδομένα εκει που θές,
στην περίπτωηση της hilgh level γλωσσας δεν σε νοιάζει καν.
δηλώνεις μια μεταβλητη στην αρχή και ο compiler βρίσκει τον χώρο εκει που ξέρει..

τώρα αν δεν υπάρχει .. χλωμό γιατι υπάρχουν απο διαφορους κατασκευαστες , 
παρόλα αυτά κα΄νεις ότι κάνεις κια αν δεν υπάρχει ολοκληρωμένο πχ σε ενα σχεδιο, το σχεδιαζεις εσύ...
μπορεί να είναι σε software υλοποιήση, δύσκολο, η σε hardware (πύλες κτλ) και να στέλνει με τον τρόπο που σε βολεύει εσενα στον μΕ τα δεδομένα

----------


## FILMAN

> Ερχεσαι στα λογια μου!Γι'αυτο λοιπον διαβαζουμε το datasheet του επεξεργαστη μας να καταλαβουμε πως δουλευει η usart σε αυτον και πραττουμε αναλογως!



Και πώς προσαρμόζεται το UART σε διαφορετικούς κώδικες διαφορετικών χειριστηρίων; Π.χ. στους υπολογιστές θα πρέπει να ορίσεις τις παραμέτρους επικοινωνίας. Στην περίπτωση του μ/ε τι κάνεις αν δεν ξέρεις τι εκπέμπει το χειριστήριο; Με άλλα λόγια, πώς γράφεις ένα πρόγραμμα που να μαθαίνει στον μ/ε να αναγνωρίζει τον κώδικα του συγκεκριμένου χειριστηρίου;

----------


## FILMAN

> αν με τα κοματια ενοιες τα modules
> τότε τα Modules den γραφουν σε κανενα καταχωρητη, εσυ τους μιλάς μέσω καποιας επικοινωνίας , rs232, i2c κτλ, και το δικό σου πρόγραμμα αποθηκαυει τα δεδομένα εκει που θές,
> στην περίπτωηση της hilgh level γλωσσας δεν σε νοιάζει καν.
> 
> δηλώχεις μαι μεταβλητη στην αρχή και ο compiler βρίσκει τον χώρο εκει που ξέρει..



Εννοώ κομμάτια προγράμματος που να κάνουν μια δουλειά, δηλαδή ρουτίνες.

----------


## plouf

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

ΑΝ το ένα ΚΑΙ το άλλο ΤΟΤΕ κάνε αυτό

----------


## FILMAN

Άρα πάλι εγώ πρέπει να βγάλω το φίδι απ' την τρύπα!

----------


## plouf

προφανώς και δεν υπαρχεi εντολή του τύπου FtiajeThnEfarmoghPouExwStoMualoMou()

αλλα ειδικα σε highlevel γλώσσες ειναι καθαρα θέμα δομημένης σκέψης.. ούτε hardware oute registers ουτε τιποτα

----------


## minusplus

> πώς γράφεις ένα πρόγραμμα που να μαθαίνει στον μ/ε να αναγνωρίζει τον κώδικα του συγκεκριμένου χειριστηρίου;



Φίλιππε, άν γνωρίζεις τη συχνότητα εκπομπής του χειριστηρίου, μπορείς να δημιουργήσεις την ίδια συχνότητα λήψης στον μ/ε.
Αποθηκεύεις τα bit σε ένα πίνακα και με την ίδια συχνότητα τα στέλνεις.

----------


## master3763

> Άν θες μπορώ να προτείνω και εγώ έναν πολύ απλό προγραμματιστή παράλληλης ο οποίος όμως αναγνωρίζεται από την CodeVision και δεν χρειάζεται να φορτώνουμε το hex με το AVRstudio. Τουλάχιστον για desktop υπολογιστή εξυπηρετεί πολύ να κατεβαίνει το hex κατευθείαν μετά το build του κώδικα στην CodeVision.



Γεια σου φίλε Κώστα !
Ναι  αν μπορείς πες μας για τον προγραμματιστή .  Μ ενδιαφέρει κ εμένα και πιστεύω  και τους φίλους του φόρουμ. Σ ευχαριστώ  για την υποστήριξη σου.  
Από αύριο θα ανεβάσω  το δεύτερο μάθημα με τον προγραμματισμό του MC με CodeVision σε γλώσσα C++ .  Ως τότε λίγη  υπομονή  ))

----------


## FILMAN

> Φίλιππε, άν γνωρίζεις τη συχνότητα εκπομπής του χειριστηρίου, μπορείς να δημιουργήσεις την ίδια συχνότητα λήψης στον μ/ε.
> Αποθηκεύεις τα bit σε ένα πίνακα και με την ίδια συχνότητα τα στέλνεις.



Δεν ξέρω, δεν μου φαίνεται και πολύ εύκολο...

----------


## ΘΥΜΙΟΣ

Ουτε και εμενα μου φαινονται ευκαλα ολα αυτα .
Εχω ασχοληθει πολλες φορες με μικροεπεξεργαστες AVR και PIC .λιγο με MPLAB και AVR STUDIO και BASCOM δυσκολα πραγματα ,κυριως πετυχα να κανω μικροαλλαγες σε υπαρχοντα προγραμματα.
Δεν συζηταω τωρα για αναβοσβημα led ,αυτα ειναι ευκολα.
Ετσι αρκεστηκα να περνω ετοιμα hex και να το περναω στον αντιστοιχο επεξεργαστη.
Το μονο που δεν βρηκα χρονο να ασχοληθω ειναι το FLOWCODE.
Εκει το περιβαλον ειναι γραφικο και μαλλον φαινεται αρκετα απλο μια και δεν γραφεις κωδικα.Επειδη ομως βαρεθηκα να ψαχνω το αναβαλω συνεχως.

----------


## teo_GR

Να πω κάτι πριν το δεύτερο μάθημα?
  Υπάρχουν άτομα όπως ο Φίλιππος που έχει μια μικρή ιδέα και μια βάση στους ΜΕ αλλά είναι και πολύ καλός γενικά στα ηλεκτρονικά, οπότε δεν θα δυσκολευτεί ιδιαίτερα.
  Με εμάς τους αρχάριους που παλεύουμε να μάθουμε λίγο από ηλεκτροτεχνία και δεν ξέρουμε τίποτα από ΜΕ τι γίνετε έχουμε καμία ελπίδα? Γιατί εγώ παράδειγμα δεν ξέρω τι είναι το HEX ούτε ποια είναι η δομή του ΜΕ οπότε για να μπω στο πνεύμα θέλω να εξηγηθούν και αυτές οι για τους υπόλοιπους απλές ορολογίες.
  Αν το θέμα έχει σαν προϋπόθεση βασικές γνώσεις ΜΕ και αρχής λειτουργίας αυτών τότε 
  Απλά αγνοήστε το μήνυμα μου.

----------


## nikknikk4

*master3763*  Γιάννη ωραία ιδεα  μπράβο

*teo_GR * Βασιλη ριξε παράλληλα μια ματια  

pic in greek
http://www.electronics-lab.com/pic-in-greek/

----------


## somone

Κατά τη γνώμη μου υπάρχουν 2-3 πράγματα που πρέπει να μάθει κάποιος αν θέλει να φτάσει σε κάποιο επίπεδο με τους uC. Καταρχήν πρέπει να υπάρχει μιατουλάχιστον βασική γνώση αρχιτεκτονικής υπολογιστών. Ειδικά στους μικρότερους 8bit uC ακόμακαι με τη C ο προγραμματισμός είναι αρκετά low level οπότεκανείς πρέπει τουλάχιστον να ξέρει για τη μνήμη για τους διαύλους με τους οποίους επικοινωνεί ο «επεξεργαστής» με αυτή τη μνήμη, για τους καταχωρητές κλπ. Μαζί με αυτό έρχονται και οι βασικές γνώσεις ψηφιακών κυκλωμάτων και του δυαδικού συστήματος ώστε εντέλει να είναι κανείς σε θέση να καταλαβαίνει πάνω κάτω πως λειτουργεί ο uC και άρα να καταλαβαίνει πως εκτελεί ο uC αυτά που γράφει πχ στην C.  Και βέβαια πρέπει επίσης να μελετήσει κανείς και τα datasheet του συγκεκριμένου μοντέλου uC που θα χρησιμοποιήσει ώστε να δει τις δυνατότητές του, τα περιφερικά που έχει και πώς θατα χρησιμοποιήσει. 

Αφού κατανοήσουμε λοιπόν το hardware πρέπεινα αποκτήσουμε και μια εξοικείωση με τη γλώσσα προγραμματισμού (που κατά τη γνώμη μου πρέπει να είναι η C ή για μεγαλύτερους uC η C++).  Και νομίζω ότι ηεξοικείωση αυτή δεν έχει τόσο να κάνει με την ανάπτυξη ιδιαίτερων προγραμματιστικών δεξιοτήτων όσο με την κατανόηση του πως λειτουργεί ομηχανισμός της ίδιας της γλώσσας. Θέλω να πω δηλαδή ότι περισσότερη σημασία έχει να μάθει κάποιος για το πώς διαχειρίζεται την μνήμη η C, τι είναι πχ η heap και η stack, πώς θα κάνω την C να βάλει μια μεταβλητή στη συγκεκριμένη θέση, τι είναι οι volatile μεταβλητές κλπ.
Καταλαβαίνω ότι όλα αυτά φαίνονται βουνό αλλά δεν χρειάζεταινα γίνουν σε μια μέρα. Ξεκινάμε σιγά σιγά από τα βασικά και προχωράμε διαβάζοντας και εφαρμόζοντας.

----------


## gas_liosia

> Γεια σου φίλε Κώστα !
> Ναι  αν μπορείς πες μας για τον προγραμματιστή .  Μ ενδιαφέρει κ εμένα και πιστεύω  και τους φίλους του φόρουμ. Σ ευχαριστώ  για την υποστήριξη σου.  
> Από αύριο θα ανεβάσω  το δεύτερο μάθημα με τον προγραμματισμό του MC με CodeVision σε γλώσσα C++ .  Ως τότε λίγη  υπομονή  ))



Γεια σου και εσένα Γιάννη!
Ο προγραμματιστής είναι αυτός εδώ: http://www.embeddedtronics.com/avrprog.html
και είσαι συμβατός με την CodeVision. Απλά ρυθμίζουμε τον προγραμματιστή στο LP και τσεκάρουμε και το program the chip after build.

Γενικά να πω:
Σίγουρα πρώτα απ' όλα ο πραγραμματιστής και το λογισμικό είναι απαραίτητα γιατί χωρίς αυτά δεν κάνουμε τίποτα. Η CodeVision απ'οτι θυμάμαι έχει Student Version, οπότε την κατεβάζουμε από την επίσημη ιστοσελίδα.
Τώρα, όποιος δεν έχει αναπτυξιακό (πχ STK500 όπως ο Φίλιππος), μπορεί να χρησιμοποιηθεί και breadboard για αρχή, αλλιώς αν θέλει κάποιος κατασκευάζει ένα απλό έως ικανοποιητικό αναπτυξιακό.
Επίσης, δεν χρειάζονται τόσο γνώσεις ηλεκτρονικών όσο βασικό προγραμματισμό. Ακόμα και με if-else θα μπορούσε κανείς να φτιάξει μια ικανοποιητική εφαρμογή με mcu.
Παρακάτω ίσως δυσκολέψουν τα πράγματα αλλά όλα γίνονται. Θα μπορούσαμε να αναφερθούμε αργότερα και για επικοινωνία με LabView μέσω σειριακής που είναι πολύ ενδιαφέρον πρόγραμμα και στην συγκεκριμένη περίπτωση δεν απαιτείται κάρτα daq.

----------


## dimpet

Με το Codevision και το συγκεκριμμένο προγραμματιστή αλλάζεται fuse bit κανονικά το έχεται δοκιμάσει ????? Το λέω γιατί στο συγκεκριμμένο θέμα ο compiler αυτός υστερεί. Εγώ έχω απο 6αετίας το stk500 και το συγκεκριμμένο τον έχω δουλέψει αλλά δε κατάφερα να αλλάξω fuse bits και τα δούλευα απο το studio . Το studio 6 που έχει και compiler για c ενσωματωμένο θεωρώ οτι είναι έτη φωτός μπροστά από το codevision.

----------


## gas_liosia

> Με το Codevision και το συγκεκριμμένο προγραμματιστή αλλάζεται fuse bit κανονικά το έχεται δοκιμάσει ????? Το λέω γιατί στο συγκεκριμμένο θέμα ο compiler αυτός υστερεί. Εγώ έχω απο 6αετίας το stk500 και το συγκεκριμμένο τον έχω δουλέψει αλλά δε κατάφερα να αλλάξω fuse bits και τα δούλευα απο το studio . Το studio 6 που έχει και compiler για c ενσωματωμένο θεωρώ οτι είναι έτη φωτός μπροστά από το codevision.



Να σου πω την αλήθεια όλως τυχαίως με CodeVision δεν έχω δοκιμάσει παρά με AVRstudio παλιότερα. Γενικά δεν μου χρειάζεται να επέμβω στα fuse bits.
Τι πρόβλημα αντιμετώπισες;

----------


## dimpet

Και άμα θες να αλλάξεις χρονισμό πως τον αλλάζεις ???? Μη μου πεις οτι τον αφήνεις default και δουλευεις συνέχεια με internal . Για παράδειγμα παρ'ολο που τσεκάρω πάντα ποια CKSEL bit θέλω να αλλάξω και κάνοντας programm ---> all αυτός με γράφει κανονικά ενώ το πρόγραμμα το κατεβάζει.

----------


## gas_liosia

> Και άμα θες να αλλάξεις χρονισμό πως τον αλλάζεις ???? Μη μου πεις οτι τον αφήνεις default και δουλευεις συνέχεια με internal . Για παράδειγμα παρ'ολο που τσεκάρω πάντα ποια CKSEL bit θέλω να αλλάξω και κάνοντας programm ---> all αυτός με γράφει κανονικά ενώ το πρόγραμμα το κατεβάζει.



Δεν ξέρω αν σε έπιασα 100% σε αυτά που λες. Μέχρι τώρα ότι εφαρμογή έχω κάνει δεν είχα τρελές απαιτήσεις σε χρόνους. Πάντα δούλευα με συγκεκριμένο κρύσταλλο εξωτερικό και ότι χρόνους ήθελα τους ρύθμιζα με timers. Δεν ξέρω αν εννοείς κάτι τέτοιο ή αναφέρεσαι σε συγκεκριμένες εφαρμογές.

----------


## gas_liosia

Γιάννη, μια μικρή καλοπροαίρετη παρατήρηση να κάνω στο παράδειγμά σου χωρίς να σημαίνει ότι είσαι λάθος. Απ' ότι είδα το led το τροφοδοτείς μέσω του μικροελεγκτή με "λογικό 1". Γενικά καλό είναι τα led να είναι pullup και απλά να γειώνονται μέσω του μικροελεγκτή διότι έχει τη δυνατότητα να γειώνει περισσότερο ρεύμα απ' ότι μπορεί να προσφέρει, και γενικά καλό είναι να μην τραβάμε ρεύμα από τον mcu. Οπότε σε αυτήν την περίπτωση θα έπρεπε το led να συνδέεται στα 5Vdc αντί στη γείωση, και στη δήλωση του *PORTD=0xFF;* (pullup), και ο έλεγχος γίνεται αντίστροφα. Με *PORTD.0=0;* (ανάβει), και με *PORTD.0=1;* (σβήνει)
Όπως και να έχει και τα δύο δουλεύουνε, απλά ο τρόπος που προτείνω ίσως να μπερδεύει λίγο λόγω της αντίστροφης λογικής αλλά αυτός συνηθίζεται.

----------


## FILMAN

Άντε, πότε θα μπούμε στο ψητό;

----------

