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

## navar

Καλή μου αρχή και καλώς σας βρήκα.
  Είναι το πρώτο μου post αν και έχω τρείς  - τέσσερις μέρες που διαβάζω μανιωδώς το forum .
  Οι γνώσεις μου στα ηλεκτρονικά είναι βασικές και στην πληροφορική καλούτσικες (άνετα πιάνω κολλητήρι και κάνω επισκευή σε ένα τροφοδοτικό η σε ένα απλά κυκλωματάκια, κατέχω τις περισσότερες έννοιες ανταλλακτικών και μονάδων μετρήσεως . από υπολογιστές  άνετα γράφω κάποιες αράδες κώδικα σε κάποια δομημένη γλώσσα c , c++ , c#, java και κάποιες φορές και σε visual basic ).
  Το υπέρτατο αντικείμενο σε αυτά τα δυο (pc /electronics) είναι οι μ/ε.
  Ακούγοντας από γνωστούς και φίλους άρχισα να καταλαβαίνω πως οι επεξεργαστές τις Atmel  είναι πιο εύχρηστοι και προγραμματίζονται πιο εύκολα με κάποια high level γλώσσα !
  Διάβασα πάρα πολλά στο forum σχετικά με τα πάντα, αλλά όλα σκόρπια !!!
  Μήπως θα ήταν πιο σωστό (για εμάς τους αρχαρίους) να γίνει ένα sticky θεματάκι «κατασκευή κυκλώματος από το Α ως το Ω» και εκεί να προταθεί βιβλιογραφία ( στα ελληνικά αν είναι δυνατών για να γλυτώσουμε τις ζόρικες ορολογίες ), κάποια οικονομική πλακέτα ανάπτυξης κυκλωμάτων, κάποια παραδείγματα κώδικα και προγραμματισμού , τον τρόπο μεταφοράς του hex πάνω στο chip, τον τρόπο οδήγησης ενός lcd display, οδήγηση διαφόρων περιφερειακών κλπ κλπ .

  ΥΓ: διάβασα πρόσφατα το θέμα για το eagle και εκεί που μου έβγαινε το λάδι να κάνω κάτι πολύ απλό , τώρα όλα είναι παιχνιδάκι !!!!!!!!!!
  ΥΓ2: σύγνώμη για πιθανά λάθη στην σύνταξη και στα ονόματα !  πχ Atmel = AVR ;;;;

----------


## tasosmos

Δεν μπορουν να γινει ενα tutorial τοσο δομημενο οσο πχ για το eagle που λες.

Ο λογος ειναι απλος. Το eagle ειναι ενα προγραμμα με συγκεκριμενες λειτουργιες, συγκεκριμενα χαρακτηριστικα και για καθε πλακετα που φτιαχνεις η πορεια εργασιας ειναι ακριβως η ιδια, ουσιαστικα δεν αλλαζει τιποτα στην μεθοδολογια.

Οι AVR απο την αλλη ειναι μια οικογενεια μΕ με διαφορετικα χαρακτηριστικα και δυνατοτητες το καθε μοντελο. 
Πχ αρχιζουν απο 8 πιν κ πανε μεχρι 100+, οι μικροι εχουν ελαχιστα περιφερειακα ενω οι μεγαλοι μπορουν να εχουν πολλα περισσοτερα. Τα fuses δεν ειναι τα ιδια σε ολους κι επισης το σεταρισμα καταχωρητων κτλ μπορει να εχει μικρες η πολυ μεγαλες διαφορες μεταξυ μοντελων.

Επισης απο προγραμματιστες υπαρχουν δεκαδες υλοποιησεις με την καθεμια να εχει τα δικα της θεματα. Ο καθενας υποστηριζεται απο διαφορετικα προγραμματα και μπορει να ειναι συμβατος με μερικα μονο μοντελα(αυτο κυριως ειναι θεμα software).

Για αναπτυξιακα επισης το ιδιο, o καθενας μπορει να φτιαξει το δικο του προσαρμοσμενο στις αναγκες του ή να αγορασει ενα που να τον καλυπτει καλυτερα.

Eν ολιγοις οι πληροφοριες ειναι σκορπιες επειδη το θεμα καθαυτο ειναι σκορπιο,αδομητο.
Αν καποιος σου δωσει ενα κειμενο και σου λεει κανεις ακριβως αυτο αυτο κι αυτο κ τελος τοτε δεν θα ειναι απολυτα γενικο κ σωστο. 
Για αλλο προγραμματιστη θα πρεπει να ακολουθησεις διαφορετικη διαδικασια. 
Αν θελεις αλλο ολοκληρωμενο πιθανον να μην σε καλυπτει το ιδιο αναπτυξιακο.
Αν πας σε αλλο compiler ακομα και της ιδιας γλωσσας θα εχει διαφορες σε ονομασιες κ συνταξη, αν και οι περισσοτεροι ειναι βασισμενοι σε ansi C δεν ειναι ιδιοι.
Aν εχεις αλλες γνωσεις (πχ δεν ξερεις C και ξερεις basic) τοτε προφανως και δεν θα σε καλυπτει γιατι θα πρεπει να χρησιμοποιησεις τελειως διαφορετικο compiler.


Ολα αυτα δεν σημαινουν βεβαια οτι ειναι δυσκολο να ασχοληθεις ή να αρχισεις να μαθαινεις πραγματα για το αντικειμενο, απλα δεν μπορεις να μαθεις μια διαδικασια απεξω κ να την κανεις παντου κ παντα. 
Πρεπει να κατσεις να πειραματιστεις απο μονος σου και να διαβασεις οτι βρισκεις μπροστα σου.

Ενδεικτικα καποια links που μπορεις να βρεις πολλες πληροφοριες:

http://www.avrbeginners.net/
http://www.avrtutor.com
http://www.avrprojects.net/
http://www.ladyada.net/learn/avr/
http://www.hpinfotech.ro/html/cvavr_doc.htm (ενας compiler για C ο οποιος εχει evaluation εκδοση δωρεαν)
http://winavr.scienceprog.com/ (open source C compiler με tutorials)
http://www.avrfreaks.net/ (Εδω υπαρχουν λιγο πολυ τα παντα περι avr)

Aν μπορεις να διαθεσεις τα €€€ imo μια καλη επιλογη για αναπτυξιακο  ειναι το STK600. Ειναι μεν ακριβο αλλα ειναι συγχρονο, υποστηριζει τα  παντα με το καταλληλο socket board, usb και δεν υπαρχουν προβληματα  ασυμβατοτητας κτλ.

YΓ: η Atmel ειναι η εταιρια που κατασκευαζει τους AVR. Παραγει και διαφορα αλλα ολοκληρωμενα καθως και αλλους μΕ πχ 8051 συμβατους ή arm συμβατους ενω υπαρχουν και AVR 32bit.
Τυπικα παντως οταν λες AVR εννοεις τους 8bit σειρες 90S, tiny, mega.

----------


## herctrap

και γω τωρα ξεκινισα


δεν ειχα ιδεα απο c και μΕ

ξεκινησα με την λεξη *arduino*

γραψτο στο το youtube και θα βρεις πολλα και ωραια project


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


μετα πας στο arduino.cc


και διαβαζεις ποσο ευκολο ειναι να το προγραμματισεις


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


το επομενο πρωι χωρις να εχει ερθει ακομα απο κινα προγραμματιζεις για ωρες

την επομενη μερα εχεις γραψει 7 σελιδες

πιστευεις οτι μολις θα ερθει θα δουλευουν ολα ρολοι

οποτε λες κατσε να παρω αλλα 5 να τα εχω 

καπου θα χρειαστουν


αυτα


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

for(i=1; i<=10; i++)

και οχι

for(i=1; i=10; i++)

που εγραφα εγω

----------


## ALAMAN

Μπορεί το θέμα προγραμματισμού μικροελεγκτών να διαφέρει πολύ από τα προγράμματα σχεδίασης και κατασκευής πλακετών (eagle) αλλά δεν σημαίνει ότι δεν υπάρχει κάποια μεθοδολογία για τα απλά προγράμματα.
Κάθε μικροελεγκτής μπορεί να έχει διαφορετικά περιφερειακά, άλλος λιγότερα, άλλος περισσότερα. 
Προφανώς ο φίλος navar εννοεί να γίνει ένα θέμα οπού σ' αυτό να υπάρχουν κάποιες εντολές προγραμματισμού μιας συγκεκριμένης γλώσσας, πχ assembly ή C.
Όπως για παράδειγμα θα μπορούσε να γίνει ένα θέμα στο οποίο θα αναλύεται το πώς μπορεί ένας μικροεπεξεργαστής να επικοινωνεί με τις θύρες εισόδου-εξόδου λαμβάνοντας, επεξεργάζοντας και στέλνοντας δεδομένα.
Προηγουμένως θα μπορούσε να αναλύεται ο τρόπος με τον οποίο δηλώνονται οι θύρες και πως ελέγχονται.
Μετά θα μπορούσαν να υπάρχουν διάφορα προγράμματα τα οποία στη συνέχεια θα απλοποιούνται αξιοποιώντας περισσότερο κάποια ειδικά περιφερειακά του μΕ όπως ο ADC.
Ένα απλό πρόγραμμα αλλά και ένα περισσότερο σύνθετο καθένας μπορεί να υλοποιήσει με διαφορετικό τρόπο.
Οι μικροεπεξεργαστές θέλουνε φαντασία και κάποιες γνώσεις.
Πιστεύω ότι μπορούμε να διατυπώσουμε τουλάχιστον τις γνώσεις που απαιτούνται. Τα υπόλοιπα για τους μικροεπεξεργαστές αποτελούν τον συνδυασμό αυτών των γνώσεων.

----------


## navar

Καταλαβαίνω τι ακριβός μου λες tasosmos.
   Δεν γίνεται να έχεις tutorial για ένα αντικείμενο που τείνει στο άπειρο !!!!!
  Θα μπορούσαμε όμως να αναλύσουμε κάποια υλοποίηση με ένα AVR Atmega8 ATmega16 ATmega32. Δηλαδή για μοντέλα AVR χρησιμοποιούνται συχνά και καλύπτουν της περισσότερες ανάγκες ενός χομπίστα . θα μπορούσαμε να θέσουμε ένα project που να χρειάζεται lcd και κάποια καλούδια γύρω γύρω (περιφερειακά). Ας πούμε relay, buttons , leds, ένα θερμόμετρο η κάποιων άλλο sensor.
  Θα μπορούσε έτσι να ξεκινήσει ένα tutorial που θα πήγαινε βήμα βήμα κάθε βδομάδα. Με αναλυτικά το τι χρειάστηκε , τι δοκιμές έγιναν στον κώδικα , πώς οδηγήθηκαν τα περιφερειακά , πώς οδηγήθηκε η οθόνη κλπ κλπ. (όσο για το κόστος θα μπορούσα να το αναλάβω στον βωμό τις εκμάθησης).
  Και όλο αυτό να είναι ένας μπούσουλάς για κάποιον που θέλει να ασχοληθεί και να κάνει κάτι δικό του.
  Μπορούσαμε να το ξεκινήσουμε πολύ οικονομικά προτείνοντας προγραμματίστρια που υπάρχουν ακόμα και εδώ μέσα σαν κατασκευές ! κάνοντας τα πρώτα πειράματα σε διάτρητη, ξεκινώντας από 2  led και φτάνοντας σε led display ή ακόμα και σε lcd 2 ή 4 γραμμών !
  Καταλαβαίνω τις δυσκολίες του όλου εγχειρήματος αλλά δεν μιλάμε να κάνουμε κάτι εμπορικό η κάτι ιδιαιτέρα ειδικευμένο αλλά κάτι που να προσφέρει τις αρχές λειτουργίας γενικά ( βασικά βήματα μιας κατασκευής ! από το 0) , άλλωστε αυτό δεν είναι αυτό που μας εξιτάρει όλους μας ??? η κατασκευή και η σύλληψη της ιδέας !!!!!!


  Υγ1:  ο arduinos σίγουρα δεν είναι συγκινείς του «πιγκουίνος» αλλά τι ακριβώς κάνει 
  (ψυλλιάζομαι ότι είναι μια πλακέτα με ATmegaXX και μπορείς εκεί να κάνεις μια κατασκευόυλα και μετά να την μεταφέρεις σε καινούργιο κύκλωμα που φτιάχνεις από το 0)
  Υγ2: για να γίνω πιο κατανοητός στο τι λέω . όταν κάνεις μαθήματα προγραμματισμού .. σου μαθαίνουν το πώς ξεκινάς ,πώς συντάσσεις , πώς ελέγχεις , πώς αποφασίζεις ,μπλα μπλα , πως τελειώνεις. Τις βιβλιοθήκες για το τι θές να κάνεις θα τις βρεις μόνος σου…. Απλά θα έχεις μάθει πώς να χρησιμοποιείς αυτά που ύστερα θα βρεις μόνος σου. Άλλωστε θέλω να πιστεύω πώς αν μάθεις να γράφεις σε μία γλώσσα δεν θα είναι δύσκολο να μεταπηδήσεις σε μία άλλη… λίγο API πολύ google και το έλυσες… 
  Για αυτό μιλάω για βασικές αρχές και μεθοδολογία !!!!! και τι καλύτερο από αυτό από ένα λειτουργικό παράδειγμα βήμα βήμα !!!

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

----------


## ALAMAN

Αυτό ακριβώς εννοούσα κι εγώ.
Απλά προγράμματα με μικρούς μικροεπεξεργαστές. Όλα αυτά είναι ικανά να σου προσφέρουν γνώση ώστε να μπορέσεις μόνος σου να φτιάξεις κάτι μεγαλύτερο!
Σε κάθε εφαρμογή που χρησιμοποιεί μικροελεγκτή υπάρχει είσοδος και έξοδος δεδομένων είτε σε ψηφιακή είτε σε αναλογική μορφή.
Ώς αρχή θα μπορούσαμε να φτιάξουμε ένα πρόγραμμα με 1byte είσοδο και 1byte έξοδο που θα υλοποιούνται με διακόπτες και LED. Με το πάτημα ενός button θα ενεργοποιείται και το αντίστοιχο LED.
Στη συνέχεια θα μπορούσαμε να επεξεργαστούμε το κομμάτι του software βάζοντας μια μικρή υπορουτίνα σε κάθε button έτσι ώστε κάθε button να επηρεάζει την λειτουργία των LED. πχ με το πρώτο button ανάβουν διαδοχικά τα led από αριστερά προς τα δεξιά, με το δεύτερο button ανάβουν διαδοχικά αλλά αντίστροφα, με το τρίτο κάτι άλλο...κλπ
Στη συνέχεια θα μπορούσαμε να οδηγήσουμε display 7 τμημάτων και να απεικονίζουμε τον αντίστοιχο αριθμό από το button που πατήθηκε.
Όλα αυτά τα μικρά προγράμματα θα μπορούσαν να βοηθήσουν κάποιον που θα θέλει να φτιάξει κάτι δικό του και ίσως μεγαλύτερο.
Εγώ ως αρχή προτείνω την γλώσσα C και τον μικροελεγκτή ATmega32 ο οποίος έχει και ADC και PWM και είναι αρκετός για πάρα πολλές δυνατότητες.
Και φυσικά δεν χρειάζεται κάποιο ακριβό αναπτυξιακό.
Ένας απλός προγραμματιστής και ένα ράστερ αρκεί!

----------


## tasosmos

Γιωργο "Αlaman" εκει ακριβως ειναι το προβλημα, οτι οι εντολες δεν ειναι οι ιδιες ακριβως για καθε compiler ακομα κι αν εισαι στην ιδια γλωσσα και δεν ειναι ευκολο για εναν αρχαριο να τις τροποποιησει για να ταιριαζουν στον δικο του compiler. 

Για παραδειγμα στην C που ειναι η κυριοτερη γλωσσα υψηλου επιπεδου για AVR (ειναι σχεδιασμενοι εξαρχης για να συνεργαζονται με αυτην) ολοι οι compilers λιγο πολυ ειναι βασισμενοι στην ansi C αλλα εχουν διαφορες μεταξυ τους. 
Αν γραψω εγω το απλουστερο προγραμμα 1+1=2 στο codevision που χρησιμοποιω δεν θα τρεχει ουτε στο gcc ουτε στο iar κατευθειαν.
Η μονη γλωσσα που ειναι απολυτα καθιερωμενη ειναι η assembly μιας που υπαρχει μονο το avr studio κ μερικα συμβατα αλλα και παλι εκει εχεις το προβλημα με τα διαφορετικα μοντελα μΕ (επισης ειναι αρκετα δυσκολο κ χρονοβορο να φτιαξεις συνθετα προγραμματα με αυτη).
Ο καθενας εχει διαφορετικα τους καταχωρητες πχ για το ADC και για την uart και αυτες οι διαφορες ειναι πιο εντονες οταν συγκρινεις παλιο μοντελο με νεοτερο. 
Αν φτιαξεις ενα προγραμμα για 90S8535 (δεν εννοω προγραμμα του στυλ αναβοσβησε ενα λεντακι αλλα κατι πιο συνθετο προφανως) και πας να το αντιγραψεις αυτουσιο σε εναν mega324 δεν θα παιξει παρολο που εχουν ιδιο pinout.

Για να γινει καποιο tutorial θα πρεπει να υπαρξουν ως δεδομενα τουλαχιστον ποιος compiler χρησιμοποιειται και ποιο συγκεκριμενο μοντελο avr. Επισης μαλλον ειναι απαραιτητο να υπαρξει και μια βαση για το hardware. 
Μπορουμε πχ να εχουμε λεντακια στην πορτα Α κι οι δυο. Εγω με θετικη λογικη κι ο αλλος με αρνητικη λογικη, τοτε προφανως θα εχει αναποδα αποτελεσματα οταν το τρεχει.
Επισης καποια πραγματα θα πρεπει να θεωρηθουν δεδομενα (?) πχ οτι ο αναγνωστης ξερει C και την λειτουργια ενος τρανζιστορ?

Οπως καταλαβαινεις ειναι πολυ πιο συνθετο το προβλημα απ'οτι φαινεται σε πρωτη ματια.

Τεσπα αν δεις στα λινκ που εδωσα παραπανω εχει πολλα παραδειγματα κωδικα και υλοποιησεις hardware οποτε αρκει να εχεις ορεξη για διαβασμα και τα υπολοιπα θα ερθουν μονα τους. 
Οσον αφορα το θεμα γλωσσας προσωπικα θεωρω τα Αγγλικα ως εξισου βασικη γνωση με τα μαθηματικα και την φυσικη αν θες να ασχοληθεις με οτιδηποτε ηλεκτρονικο.

----------


## navar

Να το συγκεκριμενοποιήσουμε λοιπόν !!!!!
  Ας ξεκινήσουμε με ένα «arduino» , και λίγα leds και buttons. Ως πρώτο κεφάλαιο και μετά συνεχίζουμε με lcd ,σένσορες και ότι άλλο μας κατέβει !!!!!
  Λογικά το πιγκουίνο δουλεύει με c οπότε και εκεί θα έχουμε μία καλή βάση και ως αναγκαίο βήμα … σε κάθε ολοκληρωμένο project που θα βγαίνει στο arduino θα μπαίνουμε και στην διαδικασία να υλοποιούμε την πλακέτα ( είτε σε διάτρητη είτε σε τυπωμένο ανάλογα το βαθμό δυσκολίας ) !!!
  Έτσι κάθε φορά θα έχουμε τα βασικά βήματα μίας ολοκληρωμένης κατασκευής από το 0 !!!!!!
  1)υλοποίηση ηλεκτρονικού κυκλώματος με την βοήθεια  ράστερ και  με το arduino
  2)γράψιμο κώδικα
  3) δοκιμή λειτουργίας 
  *4)σχεδιασμό θεωρητικού κυκλώματος σε eagle
  *5) σχεδιασμό τυπωμένου σε eagle

  6) προγραμματισμό μικροελενκτη 
  7) μοντάρισμα πλακέτας
  **βήματα όπου χρειάζονται !!!

----------


## ALAMAN

Φίλε Τάσο συμφωνώ σε όλα αυτά αλλά τουλάχιστον μπορούμε να παίξουμε με κάτι συγκεκριμένο. Δεν είπα να διατυπώσουμε σε ένα θέμα 200+ σελίδων όλες τις δυνατότητες όλων των μικροελεγκτών της οικογένειας AVR.
Αλλά τουλάχιστον διαλέγοντας έναν compiler, έναν μικροελεγκτή, και μια γλώσσα να μπορέσουμε να αναλύσουμε κάποια πράγματα στην πράξη.
Όπως διδάσκεται και στα σχολεία το θέμα του "προγραμματισμού μικροελεγκτών".
Εγώ προτείνω για compiler το CodeVisionAVR που είναι για C και τον μικροελεγκτή ATmega32 που έχει πολλά περιφερειακά.

----------


## tasosmos

To arduino δεν ειναι ακριβως C κι εχει αρκετα μεγαλες διαφορες απο τους κανονικους compilers. 
Επισης ειναι λιγοτερο ευελικτο. Απαιτειται να υπαρχει bootloader (ενα μερος της μνημης ειναι δεσμευμενο) και δεν ξερω αν υποστηριζονται αλλοι avr εκτος απο τους 28πινους megaxx8 και καναδυο αλλους που εχει στα στανταρ.

Τελος υπαρχει ηδη αρκετα αναλυτικο tutorial γι αυτο: http://arduino.cc/en/Tutorial/HomePage

Alaman στις σχολες ομως υπαρχει μια κοινη βαση, ολοι εχουν διδαχτει (και κατα πασα πιθανοτητα εχουν περασει μιας που τυπικα τα αντιστοιχα μαθηματα μΕ ειναι στα τελευταια εξαμηνα) προγραμματισμο, αναλογικα κ ψηφιακα πχ.
Επισης υπαρχει παντα δεδομενο ενα αναπτυξιακο και ενας compiler.

----------


## ALAMAN

Για αρχή θα μπορούσαμε να γράψουμε ένα απλό πρόγραμμα σε C στον codevision για αυτό το κύκλωμα.

----------


## navar

Λοιπόν ξεκινάμε με ATmega328 που έχει μπόλικες δυνατότητες και δέχεται μπόλικα περιφερειακά από ότι κατάλαβα.
  Μη ξέρωντας από εκδόσεις compilers θα ακούσω τον alaman( thanks για τό support) και θα συνεχίσω με codevisionAVR (από C την παλεύω !).
  Επίσης καλο θα ήταν για να μειώσουμε το κόστος για να έχει ακόμα μεγαλύτερο ενδιαφέρον για κάποιον χομπίστα/αρχάριο να βρούμε ένα φτήνο προγραμματιστήρη η ακόμα καλύτερα αν έχουμε σχέδια να το φτιάξουμε μόνοι μας …
  Οπότε θα δεχόμουν με μεγάλη χαρα σχέδια η λινκς για το προγραμματηστήρη και οδηγίες για το πού βρίσκουμε την codevision…

----------


## edgar

μια μικρη διορθωση απο μενα (και καλη αρχη)

ο atmega328 ειναι την γενιας των atmega8 δηλαδη 28pin μΕ οπου ουσιαστικα εχεις 23 i/o ports

o atmega32 ειναι 40pin και προφανως εχει περισσοτερα να προσφερει απο τον 28αρη (περισσοτερα i/o , adc κλπ)

αν δεν καταλαβα καλα διορθωστε με

 το λεω επειδη αναφερθηκε πιο πανω

----------


## tasosmos

O mega328 ειναι πιο καινουργιος απο τον mega32 και προσφερει καποια επιπλεον πραγματα τα οποια ομως σε εναν αρχαριο δεν χρειαζονται. Επισης το πιθανοτερο ειναι οτι θα δυσκολευτεις να τον βρεις στην εγχωρια αγορα.
Ο mega32 ειναι 40πινος δλδ εχει 4 πορτες ολοκληρες και ειναι στη σειρα τα πινακια της καθε πορτας γεγονος που βολευει πολυ. Στους megaxx8 εχεις 1 ή 2 πορτες ολοκληρες και τα πινακια ειναι χυμα.

Το codevision σε δωρεαν evaluation μορφη μπορεις να το κατεβασεις απευθειας απο το σαιτ του. http://www.hpinfotech.ro/html/download.htm

Οσον αφορα για προγραμματιστη υπαρχουν παρα πολλες επιλογες. 
Η απολυτως απλουστερη αν εχεις παραλληλη θυρα ειναι http://www.hlektronika.gr/forum/showthread.php?t=44174 αλλα δεν παρεχει καμια προστασια.
Καλυτερα να φτιαξεις αυτο: http://www.lancos.com/e2p/betterSTK200.gif

Αν θες usb συνδεση ενα σχεδιο δοκιμασμενο ειναι αυτο: http://www.hlektronika.gr/forum/showthread.php?t=48258 αλλα θα χρειαστει να προγραμματισεις καπως την 1η φορα τον μικροελεγκτη. Μπορεις πχ να χρησιμοποιησεις το παραπανω με τις αντιστασεις.

Φυσικα αν ψαξεις στο νετ υπαρχουν δεκαδες αλλα σχεδια για κατασκευη ή ετοιμοι προγραμματιστες.

----------


## ALAMAN

Ο ATmega32 είναι πολύ καλός.
Έχει ADC, PWM και 4 θύρες i/o.
Για έναν αρχάριο είναι κάτι παραπάνω από αρκετός.
Εγώ έχω είδη προγραμματιστή (STK500).
Χρησιμοποιώντας μετατροπέα USB σε σειριακή μπορώ να τον συνδέσω και να προγραμματίσω χωρίς κανένα πρόβλημα.
Το κύκλωμα που ανέβασα πιο πάνω πιστεύω πως αρκεί για τις πρώτες δοκιμές.
Ως αρχή, ας κάνουμε μια μικρή παρουσίαση του codevisionavr.

----------


## ALAMAN

*Χωρίς να αναφέρομαι σε διαφήμιση*, μια πολύ λεπτομερή παρουσίαση του CodeVisionAVR υπάρχει στο περιοδικό electronic circuits όπου εξηγούνται με απλά και κατανοητά βήματα την αρχή ενός νέου project για τη συγγραφή ενός προγράμματος με τη χρήση του wizard. Με μερικά κλικ έχουμε έτοιμο ένα μέρος του κώδικα για τις αρχικοποιήσεις των θυρών εισόδου-εξόδου, τον μικροελεγκτή που χρησιμοποιείται, τη συχνότητα χρονισμού και πολλά άλλα διάφορα.
Για όσους δεν γνωρίζουν, το άρθρο υπάρχει στο πρώτο τεύχος.
http://electroniccircuits.gr/files/eksofyllo_texos1.jpg
"Προγραμματισμός μικροελεγκτών με γλώσσα C++".

Το αναφέρω γιατί εμένα με βοήθησε πολύ στο να χρησιμοποιώ τον compiler και να γράφω σε αυτόν απλά προγράμματα.
Αλλά για κάτι πιο σύνθετο, όπως ADC, PWM, LCD κλπ χρειάζεται περισσότερο ψάξιμο.

----------


## shoco

Να γραψω και εγω τη γνωμη μου. Το CodeVisionAVR δεν ειναι ακριβως C compiler, χρησιμοποιει ενα μεγαλο μερος της C αλλα δεν βασιζεται στο επισημο προτυπο της C και συγκεκριμενα το ANSI. Αντιθετως ο IAR και το WinAVR (GCC) βασιζονται στο επισημο προτυπο της C. Εγω ξεκινησα με το CodeVisionAVR το οποιο ειναι πολυ ευκολο, αλλα στη συνεχεια δυσκολευτηκα πολυ με τον περιορισμο σε κωδικα που εχει η freeware εκδοση καθως και στη πολυ μικρη υποστηριξη που εχει στο διαδικτυο. Συμπερασματικα κατεληξα στο WinAVR το οποιο εχει τεραστια υποστηριξη ειναι καθαρος C compiler και εχει και ενημερωμενες βιβλιοθηκες και πανω απο ολα ειναι ΔΩΡΕΑΝ. Με λιγα λογια, οποιος ξερει C ξερει και WinAVR, οποτε προσπαθηστε να ξεκινησετε με WinAVR και δε θα χασετε. Οσον αφορα για βοηθεια, εγω μπορω να προσφερω μιας και ετσι θα μαθω περισσοτερα και εγω.

Θοδωρης

----------


## ALAMAN

Κι εγώ ως αρχάριος ξεκίνησα να προγραμματίζω σε C χρησιμοποιόντας τον codevision. Γιαυτό πρότεινα και αυτό.
Από εκεί και πέρα, αν η πλειοψηφία θεωρεί τον WinAVR καλύτερο, τότε ας χρησιμοποιηθεί ο WinAVR.  :Biggrin: 
Πρόσφατα πήγα να τον δοκιμάσω αλλά δεν κατάφερα τίποτα, μου φάνηκε δύσκολος.  :Unsure:

----------


## shoco

Σε τι σου φανηκε δυσκολος; Μηπως μπορω να βοηθησω;

----------


## ALAMAN

Το όλο σύνολο μου φάνηκε δύσκολο.
Το πως αρχίζει ένα νέο project, πώς γίνονται οι αρχικοποιήσεις θυρών εισόδου-εξόδου κλπ...
Ενώ στον codevision πατώντας ένα File->New->Project βγαίνει ο wizard και σου βγάζει τον κώδικα που θες με μερικά κλικ.

----------


## shoco

Χωρις να εχεις μαθει κατι και χωρις να εχεις τη γνωση να το διαχειριστεις. Αλλωστε ποιο ειναι το νοημα αμα δουλευεις με code wizard τη στιγμη που το μονο που κανει ειναι η αρχικοποιηση. Το ποιο σημαντικο ειναι η επαφη με το datasheet του μΕ, και με το code wizard δεν την εχεις. Εκτος αν κανω λαθος μαζι σου...αλλα με πολλους αλλους, ομως δεν κανω.

----------


## ALAMAN

Ναι συμφωνώ με αυτά που λες.
Το wizard δεν σε βοηθάει και σε πολλά όσον αφορά την εξοικείωση στον προγραμματισμό.
Αλλά τουλάχιστον για κάποιον αρχάριο δεν είναι και λίγο. Μετά την αρχικοποίηση για έναν απλό μικροελεγκτή με είσοδο και έξοδο εμένα μου βγάζει περίπου 30 γραμμές κώδικα. Δεν είναι και λίγο να αρχικοποιήσεις όλο τον μικροελεγκτή από μόνος σου ειδικά όταν δεν έχεις ιδέα από το αντικείμενο.

----------


## navar

Ημέρα 1η
  Πήρα όλες τις μεγάλες αποφάσεις  :P :P.
  Επισκεύασα πρωί πρωί το σταθμό κόλλησης /αποκόλλησης !(είχε καψει μετασχηματιστή).
  Βρήκα ένα νεκρό scanner και με συνοπτικές διαδικασίες το ξεκίλιασα και ψάχνω uv λάμπες(θα μας χρειαστεί και αυτό στην συνέχεια ) !.
  Κατέβασα το codevisionAVR και τώρα κατεβάζω το WinAVR..(σίγουρα θα ξεκινήσουμε με codevision μιας και στην αρχή ακόμα και η αρχικοποίηση δύσκολη θα είναι !!! και μετά βλέπουμε που είμαστε και τι μπορούμε να κάνουμε.)
  Πείρα και την απόφαση να φτίαξω και το προγραμματηστήρι !
http://www.hlektronika.gr/forum/showthread.php?t=48258 (ένα ευχαριστώ στον tasosmos)
  αλλά για να δουλέψει αυτήν η κατασκευή θα χρειαστεί να κάνουμε και αυτό ! 
http://www.hlektronika.gr/forum/showthread.php?t=44174 (ευκολάκι φαίνεται ευχαριστώ mousakias ) απλά για να ρίξουμε των κώδικα στο προγραμματιστήρη !
  επίσης μιας και βρίσκομαι στην επαρχία(Τρίκαλα) θα πρέπει να παραγείλουμε και από κάπου τα υλικά που δεν βρίσκουμε εύκολα εδώ .Για αρχή θα χρειαστούμε έναν ATmega8(καλύτερα να πάρω 2-3 γιατί όλο και κάποια αποτυχία θα έχουμε) για την πρώτη κατασκευή (το προγραματηστήρη !) και λέω να πάρω και μερικά μΕ για πειραματισμό !
  προσανατολίζομαι σε αυτά !
  1)      http://www.acdcshop.gr/integratedcir...28-p-1973.html
  2)      http://www.acdcshop.gr/integratedcir...28-p-1992.html
  δυστυχώς δεν εντόπισα εκεί τον ATmega328 αν υπάρχουν παρατηρήσεις η προτροπές για άλλο site η άλλους μΕ είναι ευπρόσδεκτες !!!

edit: μήπως να πάρω και μία βαση σάν αυτήν εδώ http://www.acdcshop.gr/testsocketsoi...49.html?page=2 για το προγραμματηστήρη ??? (αν και λίγο δηλητήριο μου φάνηκε ,άσε που δεν είμαι σίγουρος ότι μου κάνει ! και εκέι ευπρόσδεκτες προτάσεις για κάποια IC βάση που θα κάνει την ζωή μου πιο εύκολη !)

----------


## tasosmos

Αν εννοεις για τον εσωτερικο του προγραμματιστη usbasp δεν κανει ο mega8L (λινκ 1) ! παει μεχρι 8ΜΗz ενω το usb χρειαζεται 12ΜΗz συχνοτητα λειτουργιας.

Για τον προγραμματιστη χρειαζεσαι εναν τετοιο: http://www.acdcshop.gr/integratedcir...28-p-1971.html

Μπορεις φυσικα να τον χρησιμοποιησεις για καποιο project μετα τον 8L αν εννοεις αυτο.
Ο mega168 ειναι ολοιδιος πυρηνας με τον mega328 με μονη διαφορα οτι εχει την μιση μνημη. Ακομα και τα 16Κ ομως ειναι υπεραρκετα για τα περισσοτερα απλα project αρκει φυσικα να κανεις κ μια λογικη διαχειριση του χωρου.

Το καταλληλο σοκετ για τους mega8, megaxx8 (28πινοι) ειναι αυτο http://www.acdcshop.gr/precisionsock...mm-p-4821.html

Αν θες μπορεις να παρεις μια zif σαν αυτη http://www.infocenter.gr/eshop/images/electronic αλλα κ με την απλη μια χαρα θα κανεις την δουλεια σου. /universalzifdip40socket.jpg

----------


## navar

καλημέρα !!!!
Σήμερα επέλεξα να ασχοληθώ με τα ηλεκτρονικά !!!
τις τελευταίες δύο μέρες κατάφερα να φτιάξω θάλαμο εμφάνισης (απο ένα παλιό scanner με ιδέες που είδα εδώ).
με αρκετή ταλαιπωρία και κόπο κατάφερα να εμφανίσω και αποχαλκώσω μια πλακέτα άψογα (κουράστηκα να πετύχω τον χρόνο στις λάμπες,και να πετύχω το διάλυμα για την εμφάνιση, η αποχάλκωση ήταν εύκολη) χρησιμοποιήσα υλικά που ήξερα (tuboflo για εμφάνιση,peridrol και υδροχλωρικό για αποχάλκωση). 
έτσι έχω λοιπόν έτοιμη την πλακέτα για το προγραμματιστήρη και προχωράμε κανονικά (αν και δεν βρίσκω πουθενά στα ελληνικά site μΕ κανέναν τις σειράς ATmega8,Atmega168,Atmega32 :Cool: .
οπότε έχω τις εξής απορίες:
1) ψωνίζεται κάπου απο ελλάδα αυτούς τους μΕ ;;;
2) μπορώ για το προγραμματηστήρη να χρησιμοποιήσω κάποιον άλλον εκτός του Atmega8 και παράλληλα να δουλεύει ο κώδικας χωρίς αλλαγές ???

----------


## tasosmos

mega8 ειναι σιγουρο οτι θα βρεις με λιγο ψαξιμο, οποιος φερνει avr 99% θα εχει.

Σε μαγαζια στην Αθηνα βρισκεις σχετικα ευκολα mega8,48,88,168. Αν εχεις καποιον γνωστο μπορει να στο στειλει με ταχυδρομειο or sth.
Επισης απο ελληνικα σαιτ αυτο που ειπαμε παραπανω τους εχει ολους εκτος απο τον 328.

Ο μονος που μπορεις να χρησιμοποιησεις για τον προγραμματιστη χωρις να κανεις αλλαγες εσυ στο firmware ειναι o mega48, αλλα κυκλοφορει λιγοτερο απο τον mega8 κ ειναι πιο ακριβος.



Τελος υποψιν οτι ο mega8 εχει παλιοτερο πυρηνα απο τους mega48,88,168,328 οι οποιοι ειναι κατα καποιο τροπο αναβαθμιση του. 
Βεβαια στις περισσοτερες εφαρμογες δεν εχει ιδιαιτερη διαφορα, πρεπει να κανεις κατι ψαγμενο για να χρειαστεις τα επιπλεον των xx8.

----------


## navar

δηλαδή αυτός μου κάνει http://www.acdcshop.gr/integratedcir...68.html?page=2 ?

στο site που αναφέραμε με ενημέρωσαν για πρόβλημα διαθεσιμότητας
με τους atmega8, atmega168, atmega328 με χρόνο παραλαβής εξωφρενικό !!!!

----------


## tasosmos

Ναι, κανει.

Παντως θα λεγα καλυτερα να το ψαξεις λιγο παραπανω. Ειναι ακριβα 4+ € για τον mega48 και υποθετω θα χρεωνουν και μεταφορικα οποτε δεν σε συμφερει.

----------


## navar

> Ναι, κανει.
> 
> Παντως θα λεγα καλυτερα να το ψαξεις λιγο παραπανω. Ειναι ακριβα 4+ € για τον mega48 και υποθετω θα χρεωνουν και μεταφορικα οποτε δεν σε συμφερει.



μην σε αγχώνει αυτό. έτσι κι αλλιώς έχω κάνει παραγγελία από αυτό το site ας πάρω ένα για αρχή για το προγραματηστήρη κ βλέπουμε μετά.!!!
Σε ευχαριστώ για την βοήθεια σε όλα !!!!

----------


## ALAMAN

Με ποιόν compiler και ποια γλώσσα θα δουλέψετε;

----------


## navar

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

edit : απο γλώσσες προγραμματισμού δεν έχω πρόβλημα ( πληροφορικάριος είμαι) καλά θα τα πήγαινα και σε C και σε basic απλά θεωρώ πολύ πιο αξιόλογη την δομή της C και ποιο ευανάγνωστο των κώδικα όλων των δομημένων γλωσσών !!!

----------


## ALAMAN

Ωραία. Πότε θα ξεκινήσει το πρώτο πρόγραμμα;

----------


## navar

> Ωραία. Πότε θα ξεκινήσει το πρώτο πρόγραμμα;



  σήμερα τέλειωσε η πλακετούλα για το προγραμματηστήρη. μόλις έρθει ενας μΕ ( atmega8 ή atmega48 ) για να μπεί επάνω ξεκινάμε !!!!
τα υπόλοιπα είναι όλα στην θέση τους, στον πάγκο και περιμένουν !!!
σταθμός κόλλησης , ράστερ , ενα αρχαίο λάπτοπ μόνο κ μόνο για να γράφω των κώδικα( και να ακούω Μάλαμα και θανάση), leds , buttons , led displays .lcd display(ειναι 4 γραμμων 18 επαφών και δεν έχω ψάξει ακόμα να βρω τι driver εχει ).
για αρχή νομίζω έχουμε μπόλικα περιφερειακά για να υλοποιήσουμε κάποιεσ ιδέες

----------


## navar

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

http://trulydisplays.com/character/s...N-10W-Spec.pdf

----------


## navar

το Σάββατο καταυθάνουν οι atmega και ξεκινάωωωω !!!!!(σαν χαζοχαρούμενο πιτσιρίκι που περιμένει παιχνιδάκια νιώθω !!!!!)   :Tongue2:  :Tongue2:

----------


## ALAMAN

Με τί θα ξεκινήσεις τελικά;

----------


## navar

ηρθαν οι atmel !!!!
προγραμμάτισα τον πρώτο απο codevision με την απλή μέθοδο της lpt1
είναι ο μΕ που φοράει επάνω το προγραμματιστήρη usb τους tasosmos !!!!
έχω ενα μικρο προβληματάκι με τους usb drivers και τα win7 !!!! (θα δοκιμάσω το απόγευμα και με xp) αλλα που θα πάει θα το λύσω !!!!!!

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

καλή μου αρχή !!!!!

----------


## ALAMAN

Ωραία!
Ποιός θα είναι ο πρώτος στόχος;

----------


## navar

> Ωραία!
> Ποιός θα είναι ο πρώτος στόχος;




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

ας πούμε θα ξεκινήσουμε με 2 led και ένα button !!!! (1 είσοδος , 2 έξοδοι !!!)

edit : τωρα που πήρε ο  Hamilton την pole position στον Καναδά , σου φτιάχνω ότι θές !!!!!!

----------


## ALAMAN

Εγώ δεν γνωρίζω από αρχικοποίηση.
Καλό θα ήταν για την αρχικοποίηση να μην χρησιμοποιηθεί wizard.
Το winavr δεν θα το χρησιμοποιήσεις;

----------


## navar

έφαγα μπόλικες μερούλες αναμονής μέχρι να έρθουν οι μΕ, και όταν ήρθαν ανακάλυψα ότι αν τους γράψεις με ISP μέθοδο (και η κατασκευή έχει κρύσταλλο) όταν κάνεις ένα λαθάκι μετά δεν μπορείς να τους ξαναγράψεις.
την λύση την έδωσε (όπως πολλές φορές ως τώρα) ο tasosmos !!!!

με μεγάλη χαρά και υπερηφάνεια !!!! έκανα το πρώτο μου σχηματικό και ακόμα καλύτερα έφτιαξα και το τυπωμένο !!! κουράστηκα πολύ ως amateur και τα βρήκα πολλές φορές μπαστούνια άλλα νομίζω πως τα πήγα πολύ καλά !!!

η κατασκευή δέν είναι τίποτα άλλο από ένα προγραμματηστήρι που βασίζεται σε αυτό http://www.hlektronika.gr/forum/showthread.php?t=44174.

απλά εγώ έβαλα 2 βάσεις 20pin και 28pin για τους δύο μΕ που με ενδιαφέρουν atmega8,atmega48 κλπ, και για τον Attiny2313.
επίσης πρόσθεσα ένα μικρό κυκλωματάκι με 555 που μου δίνει μία συχνότητα κάπου στα 900khz με duty cycle κοντα στο 50-51 %.
έχει μπεί και ένα jumper για να επιλέγω αν θέλω η όχι να εφαρμοστή ο παλμός στον μΕ. καθώς επίσης και δύο τεράστια pads για να μπούνε μπόρνες μιας και παίρνω τα 5v από τροφοδοτικό πάγκου.
5 μικρά wirepads έχουν προστεθεί ώστε να συνδεθεί καλώδιο που θα καταλήγει στην παράλληλη θύρα του υπολογιστή !!!

σαν πρώτη μου φορά σίγουρα έχω κάνει λαθάκια , ακούω συμβουλές και προτάσεις !!

ακολουθούν εικόνες και τα αρχεία του eagle !

----------


## navar

και συνεχίζω !

----------


## tasosmos

Αν σε βολευει να προγραμματιζεις με την παραλληλη καλυτερα φτιαξε αυτο: http://www.lancos.com/e2p/betterSTK200.gif ή καποιο παρομοιο. Να εχει δλδ τουλαχιστον ενα buffer για προστασια.

----------


## navar

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

----------


## navar

> Για αρχή θα μπορούσαμε να γράψουμε ένα απλό πρόγραμμα σε C στον codevision για αυτό το κύκλωμα.



-μετά απο 1000 και ποστ και πολλές ώρες ενασχόλησης , 
-μετά απο ένα σκασμό άκυρες ερωτήσεις και ελάχιστες έγκυρες, 
-μετά απο άπειρη (οο) βοήθεια του Τάσου (Tasosmos), 
-και μετά απο μπόλικο καυγά (αυτό το τελευταιο είναι άσχετο αλλα έτσι είπα να το βάλω !)

έχω έτοιμο των προγραμματιστή για τους AVR και λέω να ξεκινήσω αυτό που λέει το θέμα !

λοιπόν έχω ένα φρέσκο atmega8515 και νομίζω όλα τα απαραίτητα καλούδια (software) στημένα στο pc !!!

λέω να πιάσω αυτό το πρώτο κύκλωμα που είχε προτείνει ο ALAMAN ! φαίνεται εύκολο και υλοποιήσημο , led υπάρχουν όπως και κουμπάκια !

μικρές απορίες
-codevision ? ή winavr ? (το codevision είδα παρέχει ένα έτοιμο εργαλείο wizard για την αρχικοποίηση ).
-κώδικα απο την αρχή ή να βρούμε ενα παρόμοιο project και να κάνουμε τις μικρές αλλαγές ωστε να το προσαρμόσουμε στα μέτρα μας (η δεύτερη επιλογή μου φαίνεται καλύτερη , μιας και το να διαβάσεις έτοιμο κώδικα βοηθάει πολύ ωστε να καταλάβεις πιθανές μεθόδους και να δείς ορίσματα και κλήσεις συναρτήσεων κλπ κλπ)

τα κυκλώματα θα γίνουν πρώτα σε breadboard και όταν φτάσουμε να κάνουμε κάτι πολύ αξιόλογο το προχωράμε και σε τυπωμένο / πλακέτα !

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

περιμένω λοιπόν ,  απαντήσεις / προτροπές / ιδέες για όλα ! πρόγραμμα /κύκλωμα κλπ κλπ

----------


## Hary Dee

1. Το να ξεκινήσεις με έτοιμο κώδικα σίγουρα ακούγεται βολικό αλλά δεν είναι πάντα εύκολο στην κατανόηση (βέβαια σαν πληροφορικάριος θα είσαι πιο εξοικειωμένος με τη διαδικασία). Φυσικά και εγώ κάποιος έτσι προσπάθησα να ξεκινήσω...

2. Ο Alaman πρότεινε 3 ιδέες νομίζω. Εσύ θέλεις ανάλογα με το ποιοι διακόπτες είναι κλειστοί να ενεργοποιούνται τα αντίστοιχα LED; Βασικό: Μιλάμε για διακόπτες, έτσι; Όχι μπουτόν;

----------


## navar

> 1. Το να ξεκινήσεις με έτοιμο κώδικα σίγουρα ακούγεται βολικό αλλά δεν είναι πάντα εύκολο στην κατανόηση (βέβαια σαν πληροφορικάριος θα είσαι πιο εξοικειωμένος με τη διαδικασία). Φυσικά και εγώ κάποιος έτσι προσπάθησα να ξεκινήσω...
> 
> να φανταστείς κάναμε μάθημα δομή και ερμηνεία , και πάντα ένα παράδειγμα είναι πολί βολικό για αρχή ! και μόνο το οτι θα βάλεις το μυαλλό σου να σκεφτεί και να καταλάβει "γιατί το έγραψε αυτό εδώ ?" "τί θέλει να κάνει με αυτή την γραμμή ?" , άσε και το ότι σαν πρώτη φορά έχεις μεγαλύτερες πιθανότητες να δουλέψει ! επίσης έχοντας ενα έτοιμο κώδικα που είναι τσεκαρισμένο οτι δουλέυει , αλλάζεις μια μια γραμμή κάθε φορά , και αν δεν δουλέψει είσαι σίγουρος τι φταίει , κάνεις ενα βήμα πίσω και συνεχίζεις !
> 
> 2. Ο Alaman πρότεινε 3 ιδέες νομίζω. Εσύ θέλεις ανάλογα με το ποιοι διακόπτες είναι κλειστοί να ενεργοποιούνται τα αντίστοιχα LED; Βασικό: Μιλάμε για διακόπτες, έτσι; Όχι μπουτόν;



αυτό μου φάνηκε απλό και χρήσιμο ! χρήσιμο όχι οτι κάνει τίποτα ιδιαίτερο , αλλά έχει και input /output χωρίς να έχει ρολόγια οθόνες χρονόμετρα κλπ κλπ. σκοπός είναι να πιαστούμε και τα υπόλοιπα αλλα στην συνέχεια όχι τώρα !

----------


## Hary Dee

Πολύ καλό μου ακούγεται το μάθημα!

Έστω ότι οι είσοδοι είναι στην πόρτα Β και οι έξοδοι στην πόρτα D. Λοιπόν, σε assembly θα το έγραφα έτσι:



```
loop:		  ;Αρχή επανάληψης
in	r16,PortB ;Εισαγωγή του byte στον καταχωρητή temp
out	PortD,r16 ;Εξαγωγη του περιεχομένου του temp στην πόρτα D
rjmp	loop      ;Ξαναπήγαινε στην loop
```


όπου r16 είναι απλά ένας από τους 32 registers του avr.
Στην C φαντάζομαι ότι θα έχει έναν παρόμοιο τρόπο γραφής, αλλά μπορείς να βάλεις και assembly κώδικα αυτούσιο μέσα σε asm.{ } νομίζω ή κάπως έτσι τέλος πάντων...

Το πλάνο είναι απλό αλλά το έγραψα βιαστικά, μπορεί κάτι να μου ξεφεύγει...  :Rolleyes:

----------


## Silas

Καλημέρα σε όλους.

Κωνσταντίνε, έχοντας χρησιμοποιήσει μόνο το Winavr, θα σου πρότεινα αυτό. Είναι αρκετά εύκολο και στο νετ, βρήκα πολύ βοήθεια. 
Τώρα για το έτοιμο ή καινούριο κώδικα.. Να σου πω τι είχα δει εγώ ξεκινώντας. 
Το πρώτο πράγμα που προσπάθησα να κάνω ήταν ( όπως η πλειοψηφία ) να  αλλάζω καταστάσεις σε κάποιες εξόδους και ανάλογα με αυτές, να  αναβοσβήνουν κάποια led. Στην αρχή πήρα έτοιμο κώδικα, ο οποίος δούλευε  και σιγά σιγά γραμμή τη γραμμή προσπαθούσα να καταλάβω τι και γιατί  έκανε ότι έκανε. Μετά άρχισα να παίζω με μικρές αλλαγές στον κώδικα για  να δω τι επιπτώσεις έχει κάθε φορά η αλλαγή, αν είναι αυτό που περιμένω  και αν όχι γιατί. Αν και έχει τα καλά της σαν μέθοδος, έχει ένα βασικό  μειονέκτημα. Όσο παίρνεις έτοιμο κώδικα, μπαίνεις στο τρυπακι να  γράφεις, όπως γράφει αυτός που έγραψε τον κώδικα. Δηλαδή να  χρησιμοποιείς το συντακτικό του και την αρχιτεκτονική του. Μικρές αλλά  σημαντικές λεπτομέρειες τις περνάς στο ντούκου και όταν αργότερα πεις να  κάτσεις μόνος σου να γράψεις κάτι από την αρχή, δυσκολεύεσαι  μπερδεύεσαι και καταλήγεις να χρησιμοποιείς έτοιμα modules από δω και  από κει. 

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

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

----------


## shoco

navar αν θες στειλε το μαιλ σου για να σου στειλω κατι για winavr με το οποιο δουλευω και εγω.

----------


## navar

@*Hary Dee* 
μπα ελπίζω να καταφέρω να ξεφύγω απο assemply ! την βρίσκω δύσκολη και δυσανάγνωστη ! σίγουρα είναι η καλύτερη λύση για να βγεί ο κώδικας μικρός και να ξέρεις ανα πάσα στιγμή τι κάνει τι ! αλλα δεν νομίζω να την παλέψω !

@*Silas
*δέχομαι όσα λές και συμφωνώ απόλυτα ! αλλα για αρχή είναι καλή λύση ο έτοιμος κώδικας ωστε να παρείς ιδέες , δέν σκοπεύω να παραμείνω (και δεν το βρίσκω και σωστό) στην αντιγραφή modules και στην "συναρμολόγηση κομματιών κώδικα". αλλα για αρχή είναι μονόδρομος (για μένα τουλάχιστον)!
*
@**shoco*
σε ευχαριστώ πάρα πολύ !!! έχεις PM !!!


συμπερασματικά απο τα γραφώμενα μάλλον καταλήγουμε σε ένα πρώτο αποτέλεσμα ! WinAvr !!!

----------


## tasosmos

Βασικα το codevision ειναι αρκετα πιο ευκολο και γρηγοροτερο στην συγγραφη κωδικα ειδικα για αρχαριους, εχει wizard που κανει ολες τις βασικες αρχικοποιησεις κτλ.

Προσωπικα με αυτο αρχισα στην C για avr και ακομα αυτο χρησιμοποιω κυριως. Ο wizard σε απαλλασσει απο τα βαρετα μερη που πρεπει να καθεσαι με το datasheet στο χερι να βγαλεις ακρη (σε καθε μοντελο avr ειναι λιγο εως πολυ διαφορετικες οι αρχικοποιησεις).

Μπορεις να κατεβασεις την demo εκδοση να το δεις, ειναι υπεραρκετη για βασικα προγραμματακια.

----------


## navar

> Βασικα το codevision ειναι αρκετα πιο ευκολο και γρηγοροτερο στην συγγραφη κωδικα ειδικα για αρχαριους, εχει wizard που κανει ολες τις βασικες αρχικοποιησεις κτλ.
> 
> Προσωπικα με αυτο αρχισα στην C για avr και ακομα αυτο χρησιμοποιω κυριως. Ο wizard σε απαλλασσει απο τα βαρετα μερη που πρεπει να καθεσαι με το datasheet στο χερι να βγαλεις ακρη (σε καθε μοντελο avr ειναι λιγο εως πολυ διαφορετικες οι αρχικοποιησεις).
> 
> Μπορεις να κατεβασεις την demo εκδοση να το δεις, ειναι υπεραρκετη για βασικα προγραμματακια.



ε δάσκαλε εύκολο εύκολο δεν το λές , το έριξα μια ματιά χθές και είχε ενα σκασμό κουμπάκια :P :P :P
Τάσο έχεις τίποτα έτοιμο σε κώδικα με κανα κουμπάκι μπουτονάκι η κάτι πολύ ανάλογο σε atmega8515 πχ ???
και καμιά μίνι ανάλυση για fuses κλπ κλπ ?

----------


## tasosmos

Ε ενταξει δεν ειναι απαραιτητο να τα χρησιμοποιησεις ολα με την μια... :p
Σε πρωτη φαση τα μονα tabs που χρειαζεται να ασχοληθεις ειναι τα chip και ports. Τα υπολοιπα αργοτερα.


Για παραδειγματα δες τα ενσωματωμενα του codevision, εχει αρκετα και με επεξηγησεις. Δυστυχως τωρα δεν εχω πολυ χρονο για να σου γραψω κατι εγω.
Βασικα ειχα πετυχει και κατι καλουτσικα tutorials στα ελληνικα απο το τει πειραια νομιζω για το codevision αλλα τωρα δεν τα βρισκω.


Οσον αφορα fuses επισης σε πρωτη φαση αστα οπως ειναι θα λεγα. Aν ψαξεις θα βρεις διαφορα tutorial κτλ πχ:
http://www.ladyada.net/learn/avr/fuses.html
http://electrons.psychogenic.com/mod...HOWTOGuide.php
http://www.scienceprog.com/programmi...ator-settings/
http://www.avrfreaks.net/index.php?f...Freaks%20Tools

Επιπλεον υπαρχει αυτο: http://www.engbedded.com/fusecalc/ , βοηθαει αρκετα και αποφευγεις το ψαξιμο με τις ωρες στο datasheet.

----------


## Thanos10

> ε δάσκαλε εύκολο εύκολο δεν το λές , το έριξα μια ματιά χθές και είχε ενα σκασμό κουμπάκια :P :P :P
> Τάσο έχεις τίποτα έτοιμο σε κώδικα με κανα κουμπάκι μπουτονάκι η κάτι πολύ ανάλογο σε atmega8515 πχ ???
> και καμιά μίνι ανάλυση για fuses κλπ κλπ ?



Κωνσταντινε ο ΑΤmega8515 ειναι τερας ξερεις τι κανεις με αυτον πολλα.

----------


## tasosmos

Καλα ενταξει δεν τον λες και τερας, τουλαχιστον οχι με τα σημερινα δεδομενα...
Ουτε adc δεν εχει ενσωματωμενο.

----------


## navar

> Κωνσταντινε ο ΑΤmega8515 ειναι τερας ξερεις τι κανεις με αυτον πολλα.



 ναι κάτι έχω διαβάσει επι του θέματος ! 
δεν σκόπευα να ξεκινήσω με κάτι βαρβάτο αλλα μου τον έκανε προσφορά(3.5€ περίπου) ενας πωλητής στο ebay , μιας και ειχα παραγγελία πολλά parts και μου τον έστειλε μαζι με μια άλλη παραγγελία (οπότε free shiping)!
θάνο εσύ έχεις άποψη επι του θέματος ? η είσαι μόνο με τους Pic ???
(εχω και ενα σκασμο atinny2313 αλλα είναι γραμμένοι για μια παλιά εφαρμογή που δούλευα και δεν ξέρω τι fuses εχουν ενεργοποιημένα και αν θα καταφέρω να τους κάνω reset)

----------


## tasosmos

Κι απο εδω παραπλησια τιμη εχει, δεν ειναι πολυ ακριβος.

Οι tiny κατα πασα πιθανοτητα θα μπορουν να επαναχρησιμοποιηθουν επισης, δοκιμασες να τους συνδεσεις με το usbasp και δεν τους διαβαζε?

----------


## navar

> Οι tiny κατα πασα πιθανοτητα θα μπορουν να επαναχρησιμοποιηθουν επισης, δοκιμασες να τους συνδεσεις με το usbasp και δεν τους διαβαζε?



 μπά όχι ακόμα !!!! σιγά σιγά ! αν και τώρα που το λές , ευκαιρία είναι !!!!!!
επιστρέφω σε λίγο να ανοίξω λάπτοπ με τα χρ και να το συνδέσω !!!!

----------


## navar

Τάσο στο AvrAtudio4 ποίο προγραμματιστή επιλέγω για το UsbAsp ?

----------


## tasosmos

Δεν ειναι απευθειας συμβατο με το avr studio, ειχα βρει ενα bridge αλλα δεν επαιζε σωστα.

Δες στην παρουσιαση που ειχα κανει για προγραμματα ή απο το επισημο σαιτ του usbasp.

----------


## navar

να στήσω μήπως καλύτερα winavr η codevsion στο λαπτοπάκι ?

----------


## tasosmos

Δεν εχει σημασια απο το που θα προκυψει το hex, παλι ενα απο αυτα τα προγραμματα θα πρεπει να χρησιμοποιησεις για να το περασεις.


AVRDUDE supports USBasp since version 5.2.BASCOM-AVR supports USBasp since version 1.11.9.6.Khazama AVR Programmer is a Windows XP/Vista GUI application for USBasp and avrdude.eXtreme Burner - AVR is a Windows GUI Software for USBasp based USB AVR programmers.
Υπαρχουν κ μερικα ακομα αλλα τεσπα, το τελευταιο ειναι το πιο απλο νομιζω.

----------


## navar

> [*]AVRDUDE supports USBasp since version 5.2.[*]BASCOM-AVR supports USBasp since version 1.11.9.6.[*]Khazama AVR Programmer is a Windows XP/Vista GUI application for USBasp and avrdude.[*]eXtreme Burner - AVR is a Windows GUI Software for USBasp based USB AVR programmers.[/LIST]



 ναι άργησα λίγο να τα δώ !!! κατέβασα το 3 και το 4 μπας και καταφέρω να κάνω erase... σύντομα νεώτερα !

----------


## Thanos10

Και το 3 και το 4 ειναι πολυ καλα και απλα το ενα συπληρωνει το αλλο τα δουλευω και τα δυο με προγραμματιστη  usb στο λαπτοπ.

----------


## navar

πλήρης ! παταγώδες ! ολοκληρωτική ! ..................................................  ..................................................  ...........................................αποτυχί  α !  :Blushing:  :Blushing:  :Blushing: 

δεν μπορώ να διαβάσω ούτε signature !
αντε και τους 2313 δεν τους περίμενα αλλα ούτε και στον atmega8515 και αυτός είναι άγραφος ακόμα γμτ !

----------


## Thanos10

Για πες τι εχεις κανει.

----------


## navar

έχω φτιάξει αυτό 
http://www.hlektronika.gr/forum/show...l=1#post391468
το pc το αναγνωρίζει κανονικά ! του έβαλα drivers και όλα ok ! 
συνδέω τα Mosi/Miso/Sck/reset/gnd/vcc πάνω στον μΕ σύμφωνα με το datasheet !
δεν βάζω εξτρα τροφοδοσία αλλα απο τον προγραμματιστή κάνω το Dip4 on και βλέπω οτι στο ολοκληρωμένο έχω κανονικά τάση 5,03v !
ρυθμίζω το πρόγραμμα για atmega8515 και πατάω read signature !
και τρώω μούτζα ! δεν βρέθηκε λέει το target chip !

----------


## tasosmos

Επελεξες τον εκαστοτε avr που εχεις πανω απο το μενου του προγραμματος ε? Στο extreme burner πχ chip > attiny2313

Σου λεει οτι βρεθηκε το usbasp κτλ?

Επισης για τον καινουργιο 8515 τουλαχιστον θα πρεπει να βαλεις και το 1ο dip στο on για να κατεβει το isp clock, δουλευουν στο 1MHz απο default οι avr.

----------


## navar

> Επελεξες τον εκαστοτε avr που εχεις πανω απο το μενου του προγραμματος ε? Στο extreme burner πχ chip > attiny2313
> 
> ναι κανονικά ! αυτο είχα επιλέξει με τον 2313 και όταν άλλαξα, άλλαξα και την επιλογή !
> 
> Σου λεει οτι βρεθηκε το usbasp κτλ?
> 
> ναι λέει οτι βρέθηκε αλλα μετά ,κάτι λέει για power on και στο καπάκι power on failure
> 
> Επισης για τον καινουργιο 8515 τουλαχιστον θα πρεπει να βαλεις και το 1ο dip στο on για να κατεβει το isp clock, δουλευουν στο 1MHz απο default οι avr.



ναι δοκίμασα να έχω και το 1 και το 4 στο on ! αλλα τίποτα !
τα 2-3 δεν τα πείραξα αλλα τα έχω στο off ! μιας και αυτά είναι για το RX/TX οπότε εμένα δεν με πιάνουν απο ότι κατάλαβα !
ααααααααααα το jumper πρέπει να είναι ή όχι ? (εγώ δοκίμαζα χωρίς ) αν και αυτό απο ότι διάβασα αφορά firmware update !

----------


## tasosmos

power on failure? Τι ακριβως λεει? Τα λεντακια δειχνουν καθολου δραστηριοτητα?

drivers για το usbasp υποθετω εχεις περασει ετσι? στο δειχνει δλδ στις συσκευες του πισι κανονικα οταν το συνδεεις...

Τα διακοπτακια 2-3 ειναι παντελως αχρηστα προς το παρον τουλαχιστον. Το jumperακι που συνδεει το reset επισης δεν πρεπει να ειναι πανω, ειναι για να κανεις update στον mega8 που εχει το usbasp χρησιμοποιωντας καποιον αλλο προγραμματιστη.

Εχεις ελεγξει την πλακετα σου και ειναι σιγουρα ολα οκ? Μηπως εχεις καμια ψυχρη κολληση ή καποια λαθος συνδεση / βραχυκυκλωμα?

----------


## navar

> power on failure? Τι ακριβως λεει? Τα λεντακια δειχνουν καθολου δραστηριοτητα?
> 
> και βέβαια το πράσινο είναι πάντα αναμένο ! και το κόκκινο όταν προσπαθώ να κάνω read/write ανάβει ! 
> 
> drivers για το usbasp υποθετω εχεις περασει ετσι? στο δειχνει δλδ στις συσκευες του πισι κανονικα οταν το συνδεεις...
> 
> ναι το εντοπίζει , κάτι για liliput λέει , δέν θυμάμαι , απελπίστικα για απόψε και το παράτησα !
> 
>  Το jumperακι που συνδεει το reset επισης δεν πρεπει να ειναι πανω, ειναι για να κανεις update στον mega8 που εχει το usbasp χρησιμοποιωντας καποιον αλλο προγραμματιστη.
> ...



Τάσο αυτό το τελευταίο φοβάμαι και εγώ, θα το κοιτάξω άυριο όσο πιο αναλυτικά μπορώ ! με μπόλικη υπομονή !

----------


## navar

ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι ναι


η απόλυτη ευτυχία ! η απόλυτη δικαίωση ! μιλάμε για την απόλυτη υδονή !!! τι sex και χαζομάρες !!!! ο programmer δουλεύει !!!!!!!!  :Lol:  :Lol:  :Lol:  :Lol: 

διάβασα κανονικά και εκανα και erase σε atmega8515 και σε atinny2313 !!!!!

εντάξει έχουμε έτοιμο programmer πάμε παρακάτω λοιπόν ! να φτιάξουμε και τίποτα δικό μας !

διαθέσιμοι λοιπόν atinny2313 , atmega8515 , (και πιθανόν) atmega48

----------


## tasosmos

χαχαχα τι ηταν τελικα το προβλημα?

----------


## navar

> χαχαχα τι ηταν τελικα το προβλημα?



 μια κομμένη γραμμή στο mosi /miso / sck δεν θυμάμαι ποιο ακριβώς !!!
δοκίμασα να reset και τους 2 atmega48 αλλα μπά !
να δοκιμάσω να το δώσω συχνότητα απο κανένα 555 (1mhz) η να του βάλω κανένα κρύσταλο στα 4mhz?

----------


## tasosmos

Βαλε πρωτα εναν κρυσταλλο με 2 πυκνωτακια 22pF που ειναι πιο ευκολο κι αν δεν γινει τπτ δοκιμαζεις με την εξοδο του 555 στο xtal1, προσοχη να εχουν ιδια τροφοδοσια ο μΕ και το 555.

----------


## navar

> Βαλε πρωτα εναν κρυσταλλο με 2 πυκνωτακια 22pF που ειναι πιο ευκολο κι αν δεν γινει τπτ δοκιμαζεις με την εξοδο του 555 στο xtal1, προσοχη να εχουν ιδια τροφοδοσια ο μΕ και το 555.



έγινε !!!!!!!
τώρα που επιτέλους κάτι δούλεψε αναπτερώθηκε το ηθικό ! και έχει επανέλθει όρεξη και πάθος !!!!
το απόγευμα που θα επιστρέψω έχει εντατικά μαθήματα μΕ !!!!!

είστε όλοι εδώ μέσα μεγάλα *ΠΑΛΙΚΑΡΙΑ* και σας ευχαριστώ !

----------


## navar

λοιπόν μετά απο μπόλικο διάβασμα ταυβανέζικων κειμένων (όχι στα αγγλικά ήταν αλλα εμένα ταυβανέζικα μου φάνηκαν )
καταπιάστηκα με codevision !
έκανα καινούργιο project , ρύθμισα τις ports στον 2313 !
ρύθμισα clock , ρύθμισα timer1 , 
και έκανα μια πρώτη δοκιμή ρίχνοντας των(αυτόματα παραγώμενο) κώδικα στον μΕ ! 
όλα καλά και άγια ! μάλιστα ρύθμισα κάποιες port ως 1 κάι άλλες ως 0 και εκεί που έπρεπε τα led άναψαν !

έβαλα και μία είσοδο με ρύθμιση pullup ! για να βάλω και ένα push button και μετά να αλλάζω την κάτασταση των led πατώντας το !
απο ότι διάβασα αυτό γίνεται με interupts !

και φτάνω στο επίμαχο σημείο !!! πώς στον κόρακα δηλώνεις/ διαχειριζεσαι ένα interupt !!!
για να γίνω πιο κατανοητός ,ας πούμε στην java η σε κάποιες άλλες γλώσσες λές 

on click()
{
mpla mpla mpla mpla
}

εδώ τί κάνουμε ?? οεο????

(πρίν κράξετε , ήδη για μένα έχω ανέβει επίπεδο , μόλις άναψαν τα led κατουρήθηκα απο την χαρά μου !)

----------


## tasosmos

Για να αποφυγεις interrupts σε πρωτη φαση ειναι πιο ευκολο να το κανεις με dip switches αντι για μπουτον, δεν χρειαζεσαι απαραιτητα interrupts ουτως η αλλως αλλα τεσπα, τα dip ειναι οτι απλουστερο.

Πχ κατι σαν αυτο 

x=PINA;
if (x==0)
PORTB=0;
else
PORTB=1;


Παντως γενικα για οτιδηποτε χρειαζεσαι μπορεις να κοιτας την βοηθεια και τα παραδειγματα κωδικα που εχει το cv, ειναι αρκετα καλα θα λεγα...

----------


## navar

ναι αλλα αυτό το διαβάζει μόνο όταν ξεκινάει . έτσι δεν είναι ?
δηλαδή μπορώ να βάλω 4 dip switch και 4 led και να μεταβάλω τις εξόδους !!!
απλά θα κάνω κάθε φορά ενα reset ή θα κόβω την τροφοδοσία !

σωστά ?

και όλα αυτά μπαίνουν στην main() ?

----------


## ALAMAN

Το παράδειγμα που έγραψε ο tasosmos το γράφεις κάπου σε έναν βρόγχο
while(1) νομίζω λέγεται.
μέσα στα άγκιστρα γράφεις αυτό το παράδειγμα και θα εκτελείται επ' άπειρον, μέχρι να κοπεί η τροφοδοσία του μΕ.
while(1)
{
kodikas
}
Για να ισχύει όλο αυτό χρησιμοποιόντας dip διακόπτες πρέπει όλοι οι διακόπτες κάθε φορά να είναι 0 ή 1, γιατί στην if κάνεις έλεγχο όλης της πόρτας (8bit).
Μόλις φτιάξω τροφοδοτικό θα ασχοληθώ κι εγώ ξανά με μΕ.
Θέλω να μάθω πώς δουλεύει ο ADC και ο PWM.
Κάτι είχα προσπαθήσει στο παρελθόν αλλά το παράτησα γιατί δεν έβγαζα άκρη
Μετά μου κάηκε το τροφοδοτικό!  :Lol:

----------


## navar

εντάξει κατάλαβα !!!
οπότε και εκεί αν το βάλω μίας και ο βρόχος είναι ατέρμονας , με κάθε αλλαγή , θα αλλάξει και η κατάσταση !!!
αρα δεν θα χρειάζεται reset/restart για να αλλάξει !!!

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

----------


## Silas

Καλημερα σε ολους.

Κωσταντινε, απανταω χοντρικα/γενικα. Απο γουστο ασχοληθηκα και εγω,  οποτε μπορει να υπαρχουν πολλα λαθη/ανακριβειες σε αυτα που θα σου πω. 

Καθε μικροελεγκτης εχει καποια συγκεκριμενα ιντεραπτς τα οποια  δηλωνονται στο datasheet. Δηλαδη για παραδειγμα ενας μικροελεγκτης με  adc, μπορει καθε φορα που ολοκληρωνει μια μετατροπη απο analog σε  digital να παραγει ενα ιντεραπτ το οποιο ουσιαστικα σου λεει οτι, κοιτα  να δεις.. μολις εκανα μια μετατροπη. Εσυ τωρα για να διαχειριστεις αυτο  το ιντεραπτ πρεπει να γραψεις τον handler του ιντεραπτ. Ο χαντλερ ειναι  μια υπορουτινα, μεσα στην οποια εσυ γραφεις τι θες να γινει. 
Την υπορουτινα αυτη την οριζεις με συγκεκριμενο τροπο, αλλα δεν την  καλεις εσυ. Εκτελειται μονη της καθε φορα που σημειωνεται ιντεραπτ  εφοσον εχει ορισθει.
Tα handlers ( δεν γνωριζω εαν ισχυσει για ολους του μΕ της Atmel ) τα  οριζεις οπως μια συναρτηση αλλα με το ISR (ονομα περιφερειακου +  ιντεραπτ).ISR == interupt service routine. 
Δηλαδη εαν θες ιντεραπτ για τον adc οριζεις 

ISR ( ADC_vect )
{
bla bla bla
} 

Εαν εχεις αφησει τα ιντεραπτς ενεργοποιημενα και το συγκεκριμενο  ιντεραπτ του συγκεκριμενου module ενεργοποιημενο και εαν εχεις ορισει  τον handler, τοτε μολις ο μετατροπεας ολοκληρωσει μια μετρηση και  πραγματοποιησει ιντεραπτ το περιεχομενο της υπορουτινας ( μπλα μπλα μπλα  ) θα εκτελεστει αυτοματα απο μονο του. 

Αντιστοιχα εαν ηθελες να χρησιμοποιησεις ενα ιντεραπτ του usart, πχ το  transmit complete( ιντεραπτ καθε φορα που ολοκληρωνεται μεταδοση ενος  πακετου δεδομενων), θα το οριζες 

ISR ( USART_TXC_vect )
{
bla bla bla 
}


Τωρα για τα led. Δεν χρειαζεται reset η κλεισιμο. 

Μεσα στην main αφου αρχικοποιησεις τον μΕ σου, φτιαχνεις ενα infinite loop ( While (1) {do} ). 
Μεσα σε αυτο το loop, μπορεις να βαλεις τον μΕ να ελεγχει συνεχως τις  πορτες που θες και μολις βρει καποια κατασταση αλλαγμενη να πραττει  αναλογως.

----------


## navar

> Μεσα στην main αφου αρχικοποιησεις τον μΕ σου, φτιαχνεις ενα infinite loop ( While (1) {do} ). 
> Μεσα σε αυτο το loop, μπορεις να βαλεις τον μΕ να ελεγχει συνεχως τις  πορτες που θες και μολις βρει καποια κατασταση αλλαγμενη να πραττει  αναλογως.



Μιχάλη σε ευχαριστώ πάρα πολύ ! και ναί τώρα αρχίζω να καταλαβαίνω ακριβώς τι γίνεται ! κράτησα απο το μύνημα σου το κομμάτι που με νοιάζει για αρχή ! και ναί 

πλέον είναι έυκολο στην PortB να έχω 4 led ως output και 4 dip switch ώς input ! και με μία σύγκριση στον ατέρμονα βρόχο , μόλις αλλάζει η κατάσταση ενος απο τους 4 dip να αλλάζει και το ανάλογο led !

αυτό σαν πρώτο βήμα μου αρκεί ! είναι μια αρχή !

αυτό που ακόμα δεν έχω καταλάβει (δεν ξέρω αν έχει ειπωθεί και δεν το πείρα χαμπάρι ) είναι το εξής ! βάζοντας dip switch η κατάσταση τους διαβάζεται εύκολα με ένα σκανάρισμα πόρτας μέσα απο το ατέρμονα βρόχο while(1)!

τί κάνουμε όμως αν θέλουμε να μεταβάλουμε την οποιαδήποτε κατάσταση πατώντας ενα απλό push button ? εκεί η κατάσταση δεν είναι μόνιμη αλλά στιγμιαία !
, πώς ο μΕ αντιλαμβάνεται οτι το πατήσαμε ?
εκεί μάλλον δεν χρειάζεται κάποιο interupt ?


επίσης μιας και έχω ασχοληθεί με προγραμματισμό , ισχύουν οι κλασικές αρχές ?
δηλαδή εγώ δεν θέλω μέσα στην while(1) να γράψω ένα σκασμό κώδικα ! και μετά να χάνει η μάνα το παιδί και το παιδί την μάνα !
μήπως είναι πιο συνετό να κάνει μια καινούργιο συνάρτηση  ας πούμε check_state() να βάλω εκεί μέσα όλο τον κώδικα και να την καλώ απο την while(1) ?
αν υσχίει το παραπάνω να κάνω και μία ακόμα συνάρτηση που θα είναι ας πούμε apply_state () και εκεί μέσα να αλλάζω την κατάσταση τον leds ?
επίσης απο μία συνάρτηση μπορώ να επιστρέψω ορίσματα ? δηλαδή να βάλω μια flag αν έχουν γίνει αλλαγές στα Dip switch ,τότε να καλώ την apply_state() και να αλλάζω τα leds ?και έτσι να γλυτώνω πόρους μιας και σε κάθε κύκλο μηχανής δεν θα κάνω ανανέωση στα led ?

ξέρω μπορεί να είπα μπαρούφες αλλα αν μιλούσαμε για προγραμματισμό σε πιτσι ώ έτσι θα τοπ έκανα μιας και μαρέσει ο δομημένος κώδικας !

----------


## Silas

> τί κάνουμε όμως αν θέλουμε να μεταβάλουμε την οποιαδήποτε κατάσταση πατώντας ενα απλό push button ? εκεί η κατάσταση δεν είναι μόνιμη αλλά στιγμιαία !
> , πώς ο μΕ αντιλαμβάνεται οτι το πατήσαμε ?
> εκεί μάλλον δεν χρειάζεται κάποιο interupt ?



Οχι απαραιτητα αν και φανταζομαι θα μπορουσε να γινει με εξωτερικο. 
Ο μικροελεγκτης ειναι γρηγορος. Οσο εσυ πατας ( αυτο που για σενα ειναι φαινομενικα στιγμιαιο ) το κουμπι ο μικροελεγκτης προλαβαινει να το διαβασει. Μπορω με σιγουρια να σου πω οτι μεχρι και 100 μιλισεκοντ απο ελεγχο σε ελεγχο δουλευει. Προσωπικα βαζω το μΕ να ελεγχει καθε 10 μιλισεκ με μια συναρτηση ( ακριβως αυτο που λες με την check state ) για το εαν πατηθηκε κουμπι η οχι. Φυσικα αυτο μπορει να ειναι τελειως τσαπατσουλια, οποτε περιμενε απο καποιον που ειδικευετε, να σου πει ποιο ειναι το common practice. 
Κανε παντως την δοκιμη. Βαλε 4 μπουτον και ασε οπως εχει τον κωδικα. Να κανει δηλαδη poll συνεχως. Θα δεις οτι οσο γρηγορα και να πατας το κουμπι ο μΕ δεν θα χασει κατασταση.  



Φυσικα και δεν χρειαζεται να γραψεις ολο τον κωδικα μεσα στη main. Απο την main μπορεις απλα να καλεις τις συναρτησεις. Επισης δεν χρειαζεται ουτε καν στο ιδιο αρχειο να ειναι ολος ο κωδικας.  
Ενα αρχειο για τις μεταβλητες. (.c)
Ενα αρχειο για ολα τα ιντεραπτς. (.c)
Ενα αρχειο για καθε περιφεριακο που χειριζεσε. (.c)
Ενα αρχειο για τα defines καθε περιφερειακου. ( .h )

Καταλαβες τι θελω να πω.. Φυσικα χρειαζονται τα αναλογα includes και οι αναλογες extern vars. 


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



EDIT : Θυμαμαι και εγω πως εκανα την πρωτη φορα που καταφερα να αναψω τα led. Και που να δεις πως θα νιωσεις οταν αρχισεις να στελνεις επιτυχως, data απο τον μΕ στο πιτσι.

----------


## ALAMAN

> τί κάνουμε όμως αν θέλουμε να μεταβάλουμε την οποιαδήποτε κατάσταση πατώντας ενα απλό push button ? εκεί η κατάσταση δεν είναι μόνιμη αλλά στιγμιαία !
> , πώς ο μΕ αντιλαμβάνεται οτι το πατήσαμε ?
> εκεί μάλλον δεν χρειάζεται κάποιο interupt ?



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

Εντολή 1
Εντολή 2
Εντολή 3
x=1;
while(x==1) //Ο βρόγχος αυτός εκτελείται επ' άπειρον μέχρι να εκτελεστεί η εσωτερική while όταν πατηθεί το πλήκτρο.
{ while(PINA==1) //Περιμένει μέχρι να πατηθεί το πλήκτρο στο πιν0 (διακόπτης push-off)
{ x=0; }
}
Εντολή 4
Εντολή 5
Εντολή Ν

----------


## ALAMAN

Κάνε μια δοκιμή, βρες έναν μΕ με 3 θύρες.
Οι 2 να είναι 8bit και η 3η για να συνδέσεις το button για τον έλεγχο.
Χώρισε την θύρα εισόδου δια δυο.
Και σαυτήν με dip διακόπτες βάλε 2 4bit αριθμούς για πρόσθεση.
Και όρισε πχ για αποτέλεσμα 6-18 να περιμένει για να του δώσεις εσύ το ΟΚ για συνέχεια!
Και μόλις πάρει το ΟΚ να στείλει το αποτέλεσμα στα led και μετά να τα σβήσει σε χρόνο x.

----------


## ALAMAN

Εγώ σκέφτομαι να ασχοληθώ με τον ATMega32, πρέπει να έχω έναν μέσα σε κάνα συρτάρι...
Έχει μπόλικη μνήμη, 4 θύρες I/O, 4 κανάλια PWM, 8 κανάλια 10-bit ADC, αναλογικό συγκριτή. 
Πιστεύω αυτά αρκούν για πειράματα!
Με τη γλώσσα C πώς μπορούμε να έχουμε πρόσβαση στους καταχωρητές; Δηλαδή μπορώ ενώ γράφω ένα πρόγραμμα
να πειράξω τον καταχωρητή STATUS; ή κάποιον άλλον που είναι υπεύθυνος για τα interrupts κλπ;
Κάπως έτσι νομίζω ρυθμίζεται και ο ADC.

----------


## Hary Dee

Κωνσταντίνε καλησπέρα! Από χθες ψάχνω ένα παλαιότερο τόπικ όπου είχαμε κουβεντιάσει πάνω στο πώς συνήθως δουλεύουν τα keypads (για να μην ξαναγράφονται τα ίδια) αλλά τζίφος...  :Confused1: 
Τέσπα, επειδή έφτιαξα πρόσφατα ένα τέτοιο πρόγραμμα σε assembly, να σε πληροφορήσω ότι δεν είναι υποχρεωτικό να δουλέψεις με interrups. Η λογική που χρησιμοποίησα (στα πολύ γρήγορα) είναι ότι σκανάρεις ένα-ένα τα μπουτόν ανά στήλες (ή γραμμές) αν είναι πατημένα. Σε περίπτωση που βρεις ένα πατημένο, εκτελείς τις εντολές σου και πριν συνεχίσεις δίνεις μία μικρή καθυστέρηση. Αυτά στα γρήγορα... αν θες επιφυλάσσω πιο πλήρη περιγραφή!

----------


## Hary Dee

Το βρήκα! http://www.hlektronika.gr/forum/show...t=47693&page=1 από το 6 και πέρα αναφερόμαστε σε αυτό...

----------


## navar

ναι ναι ναι ναι ναι ναι ναι (πρέπει να την κόψω σιγά σιγά αυτήν την μανία με τα πολλά ναί)

όπως όλοι γνωρίζουμε !
0001 = 1
0010 = 2............
1000 = 8

αυτό ακριβώς προσπάθησα και κατάφερα να κάνω , να δίνω εναν αριθμό σε binary (μέσο DIP switches ) και να μου ανάβει τόσα led σε δεκαδικό !!!!!
για αρχή περιορίστικα στο 8 μιας και τόσα είναι τα pin της PORTB ! (ναί ξέρω εκμεταλλευόμενος την triple state με διόδους μπορώ να βάλω καμια 30αρία όπως απέδειξε ο GeorgeVita  )





εκτενέστερη ανάλυση άυριο , 
λέω να εκμεταλλευτώ την ασχετοσύνη μου και να γίνει ένα θέμα "step by step for dumies " (μιας και εγώ στην ίδια κατηγορία ανήκω ) και όποιος θέλει ακολουθεί  !!!!

----------


## Hary Dee

Κωνσταντίνε μπράβο και καλή αρχή! 
Σου προτείνω να βγάλεις τα LEDάκια και να βάλεις κάτι πιο συναρπαστικό όπως ένα 7 segment display. Εκεί μπορείς να αποτυπώσεις πιο ωραία και με μεγαλύτερη ποικιλία τα αποτελέσματα των ενεργειών που κάνεις. Και στην ουσία είναι απλά 7-8 LED...
Σχετικά με το πληκτρολόγιο, παρακάτω παραθέτω αυτό που είχα φτιάξει...DSC.jpg (κλικ για μεγένθυση)

----------


## navar

Χαράλαμπε σε ευχαριστώ πάρα πολύ !!!
και ναί έπεσες μέσα ! το επόμενο βήμα που έχω ως στόχο είναι να προχωρήσω λίγο παραπέρα αυτό το πρώτο project και η εμφάνιση να γίνεται σε 7segment !

για το πληκτρολόγιο και για όλα αυτά έχω δρόμο ακόμα !! για αρχή πειραματίζομαι με τα κουλουράκια (0) και τα σπαθάκια (1) μιας και στον χώρο τον μΕ είμαι 1η δημοτικού και μάλιστα στα πρώτα βήματα , εκεί που μαθαίνουν την αλφα-βήτα !

----------


## navar

λοιπόν πρώτος στόχος επιτεύθει !
πάμε παρακάτω !
η συνέχεια που έχω στο μυαλλό μου είναι να αντικατασταθούν τα led με ένα 7 segment display !

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

λοιπόν σκέφτομαι το εξής ρίχνω τις 7 επαφές κάθε μία σε ένα πίν !
και κάνω μία έτοιμη συνάρτηση που λέγετε.
Show_1()
{
pb6= 1
pb7 =1
}
μετά 
Show_2()
{
pb3 = 1
pb6 = 1
pb4 = 1
pb2 = 1
pb5 = 1
}
κάνω όλα τα νούμερα έτσι λοιπόν 0-9 και μετά ανάλογα τι θέλω να εμφανίσω απλά καλώ show_X()

*καλά το πάω περίπου ?*(αυτό με νοιάζει αν σκέφτομαι σωστά και όχι η σύνταξη των εντολών !)

και μια ερωτησούλα σαν bonus ! υπάρχει αντικειμενοστρέφεια σε αυτήν την  C ?

----------


## Hary Dee

Κώστα δεν ξέρω αν είναι σωστή η σύνταξή σου αλλά κάνεις ακριβώς ότι και στα LED. Δηλαδή αν έδινες πχ τάση στα LED x,y , τώρα δίνεις στις επιθυμητές επαφές του display (LED έχει και αυτό μέσα).

1 πράγμα μόνο μου έρχεται να παρατηρήσω. Τα 7 segment display έχουν 2 κατηγορίες: Κοινής Ανόδου & Κοινής Καθόδου. Δηλαδή στη μία περίπτωση πρέπει να δώσεις 0 για να ανάψουν ενώ στην άλλη πρέπει να δώσεις 1. Και φυσικά στη μία περίπτωση πρέπει να συνδέσεις τον κοινό πόλο στο + ενώ στην άλλη περίπτωση πρέπει να τον γειώσεις.

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

----------


## navar

ναι ναι δεν μιλάω για σύνταξη ! αυτό βρίσκεται ! , βασικά το τελειώνω σιγά σιγά και με 7segment !
ναι αυτό ήταν ευκολο σχετικά να το βρώ με τα κοινής καθόδου/ανόδου ! απλά έπρεπε να αλλάξω και λίγο των κώδικα μιας και πρίν για να ανάξει έδινα λογικό 1 και τώρα ήθελε λογικό 0 !
εντάξει ξέρω απο προγραμματισμό !θεωρητικά ρώτησα αν η μηχανή του codevision είναι C ή έχει και κάποια βελτίωσει και υποστηρίζει και αντικειμενοστρέφεια !

Χαράλαμπε ευχαριστώ πολύ !

----------


## navar

DAY2

τα ίδια με χθές , διαβάζω απο την portD κατάσταση σε binary !
απλά πλέον η εμφάνιση γίνεται σε 7 segment display !
το κατάφερα να μετράει απο 0-9 και για μεγαλύτερα νούμερα βγάζει E απο το Error !

το 7 segment είναι δύο ψηφίων κοινής καθόδου και τα pin και τον δύο είναι ενωμένα μεταξή τους !

απλά όταν δίνεις ρεύμα στο pin1 ανάβει το αριστερά , και στον pin2 το δεξιά !
λογικά το επόμενο βήμα είναι να ανάψω ταυτόχρονα και τα δύο και να μετρήσω ως το 99 !

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

ας υποθέσουμε οτι θέλω να εμφανίσω τον αριθμό 69 
θα πρέπει για κάποια milisecond να εμφανίζω το 6 στο πρώτο display και μετά να το σβήνω για ίσα milisecond.(με λογικό 1 στο pin1)
και όταν είναι σβησμένο να εμφανίζω το 9 και να δίνω λογικό 1 στο pin2 !
καλά το πάω λοιπόν ?

λογικά μιας και περνάει όλο το ρεύμα απο το pin1-2 (σήμερα του έδινα κατευθείαν απο την τροφοδοσία ) που θα κάνει την εναλλαγή θα βάλω και κάποιο τρανζίστορ σαν διακόπτη να αντέξει το φορτίο !

αυτό που μου λείπει είναι ενα κύκλωμα , με μία είσοδο και δύο εξόδους. στο οποίο όταν
input = 1 τότε output1 =1 & output2=0
input = 0 τότε output1 =0 & output2=1

έχω βέβαια και την επιλογή που είναι πιό απλή να χρησιμοποιήσω ένα άλλο pin απο κάποια άλλη port !

----------


## Hary Dee

Αυτή η τεχνική με τις εναλλαγές στα display υπάρχει. Ενδεικτικά μπορείς να δεις εδώ http://www.fpga4fun.com/Opto4.html . Βέβαια υπάρχουν και πολλά άλλα μέρη για να βρεις υλικό...

----------


## navar

για 100hz μιλάνε τα παλικάρια !
και αναμένο κάθε display για περίπου 1,25ms !
εντάξει τέθηκε ο επόμενος στόχος !
σήμερα βέβαια γίνεται χαμός απο δουλειά !
η DAY3 ίσως να αργήσει καμια μέρα, 2 , μπορεί και 3 !!!

----------


## navar

με τα timers kai την codevision τι παίζει ?
λέω εγώ τώρα αν ρυθμίσω τον πρώτο timer για 1 sec (δηλαδή 1hz ??????) 
και βάλω μέσα στην συνάρτηση που δημιουργείτε
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
κάνε κόλοτούμπες;
}

αυτό θα συμβαίνει κάθε ενα δευτερόλεπτο ?

----------


## tasosmos

Για απλα πραγματα ειναι ευκολοτερο να χρησιμοποιησεις τις συναρτησεις 
delay_ms(x); ή delay_us(x); , οπου x ακεραιος (τις γραφεις ακριβως ετσι). Πρεπει να δηλωσεις φυσικα στην αρχη την βιβλιοθηκη με #include <delay.h>

----------


## navar

> Για απλα πραγματα ειναι ευκολοτερο να χρησιμοποιησεις τις συναρτησεις 
> delay_ms(x); ή delay_us(x); , οπου x ακεραιος (τις γραφεις ακριβως ετσι). Πρεπει να δηλωσεις φυσικα στην αρχη την βιβλιοθηκη με #include <delay.h>



 αν όμως θέλω κάτι να εκτελείτε κάθε δευτερόλεπτο και ακριβώς 1 δευτερόλεπτπο?
να βάλω μέσα στην while delay_ms(1000) αυτό όμως δεν θα ρίξει όλο τον κύκλο τις while στο 1 sec ?

----------


## navar

λοιπόν ? καμία έμπνευση ? περί χρονομέτρων ?
να χρησιμοποιήσω τους timers και τα interupts τους ???
η την μέθοδο με τα delay ? ( αν και την φοβάμαι οτι αμα την βάλω μέσα στην while θα μου παγώνει όλη την while )

----------


## mariosm

Κωσταντινε οι εντολες delay wait κλπ σταματανε το προγραμμα και δεν κανει τιποτα αλλο περιμενοντας να περασει ο χρονος που εχεις ρυθμισει. Στο δικο σου θεμα που εχεις και σαρωση display απαραιτητα timer με χρηση overflow interrupt.

----------


## navar

σε ευχαριστώ πολύ Mάριε  :Smile: 
αυτός ακριβώς ήταν και ο δικός μου προβληματισμός με το πάγωμα εκτέλεσης !

----------


## alexisk10

Είπα να μην κάνω άλλο ποστ αφού είναι από το Α μέχρι το Ω κ θα ήταν ωραίο να υπάρχουν όλες η αποριες για τους avr μαζι.
Τελοσπαντων, έχω μια απορία, αν και έχω εδώ και ένα μηνά το usbasp και μC's attiny2313 αλλά λόγω σχολής και δουλειάς δεν μπόρεσα να ξεκινήσω, επανέρχομαι η απορία μου είναι η εξής : Έχω κάνει ένα πρόγραμμα που αναβοσβήνει ένα LED με CodeVision και το έκανα download στον attiny2313 με eXtreme Burner - AVR κ δουλεύει άψογα  :Smile:  , το κύκλωμα είναι χωρίς crystal ocsillator για να το δουλεύω με crystal ocsillator  τι πρέπει να κάνω?

και κάτι άλλο μήπως χρησιμοποιεί καπoiος flowcode for AVR?

----------


## tasosmos

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

Τεσπα: 
Βαζεις εναν κρυσταλλο και 2 πυκνωτες ταλαντωσης οπως εδω: http://www.micahcarrick.com/files/at..._2/crystal.png  C1=C2=22pF ή παραπλησιοι.
Γυρνας τα fuses για χρηση κρυσταλλου. Δες αυτο το σαιτ για ευκολια: http://www.engbedded.com/fusecalc

----------


## navar

> και κάτι άλλο μήπως χρησιμοποιεί καπoiος flowcode for AVR?



 στην παραπάνω απορία με τον κρύσταλλο σου απάντησε ο τάσος !
flowcode τί εννοείς ?

----------


## tasosmos

Προγραμμα ειναι, http://www.matrixmultimedia.com/Flowcode3a-X.php και κανει αυτο ακριβως που λεει δλδ προγραμματιζεις χρησιμοποιωντας διαγραμμα ροης αντι κωδικα. 
Συμφωνα με την διαφημιση τουλαχιστον... Παρολο που υπαρχει αρκετο καιρο δεν το εχω δοκιμασει καν. 

Αν εχεις λιγη εμπειρια με C ή basic νομιζω ειναι ανουσιο να εγκλωβιζεσαι σε κατι τετοιο.

----------


## navar

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

----------


## alexisk10

Έχω πολλούς 50pf κεραμικούς και κρυστάλλους 4ΜΗz θα τους δοκιμάσω. Η flowcode όπως είπε και ο Tασος προγραμματισμός με διαγράμματα ροής. Το δοκίμασα έκανα ένα πρόγραμμα με led στο simulation  όλα λειτουργούν σωστά αλλά όταν κάνω download το hex στο μC δεν παίζει έτσι την άφησα και έπιασα την codevision.

----------


## tasosmos

50p ειναι μεγαλοι για τους συνηθισμενους κρυσταλλους. Ειναι πιθανον να μην ταλαντωνει σωστα. Οταν λεω κοντινες τιμες εννοω 15-27p.

----------


## alexisk10

Οταν τους χρειαστω θα το ψαξω καλυτερα. Τωρα εχω μια ερωτηση προσπαθω να κανω ενα προγραμμα με push button οταν το παταω να αναβουν τα Led και οταν το 3ανα παταω να σβηνουν

Εχω κανει  αυτο¨

while (1)      {
      DDRD = 0X7F;
      DDRB = 0X00;      
      if  ( PORTB.1 == 1 ); //pin1 of port b equal to 1
        PORTD.1 = 0;  //led off
        delay_ms(500); 
        PORTD.1 = 1;   //led on 
        PORTD.3 = 0;
        delay_ms(500); 
        PORTD.3 = 1; 
        PORTD.2 = 0;
        delay_ms(500); 
        PORTD.2 = 1; 
        PORTD.4 = 0;
        delay_ms(500);
        PORTD.4 = 1;   
        PORTD.2 = 0;
        delay_ms(500); 
        PORTD.2 = 1;  
        PORTD.3 = 0;
        delay_ms(500); 
        PORTD.3 = 1;
      else
        PORTD.1 = 0;
        PORTD.3 = 0;
        PORTD.2 = 0;
        PORTD.4 = 0;    
      }
}
 αλλα μου βγαζει  Error: no matching if δεν ειναι
if (κατι) 
else 
(κατι) ?

και τι κανω παρακατω για να ξαναπαταω να σβηνουν τα LED?

----------


## tasosmos

Δεν ειναι σωστο συντακτικα το προγραμμα σου και οπως το εχεις γραψει δεν κανει αυτο που λες οτι θες να κανεις εσυ.
Υπαρχει πολυ απλουστερος τροπος, διαβασε την βοηθεια του codevision και τα παραδειγματα που εχει.

----------


## ALAMAN

Δοκίμασε να κάνεις έλεγχο του πίν της εξόδου.
while (TRUE) {
while (PINB.0 == 1) { ; } //Διακόπτης σε σταθερή κατάσταση (δεν εκτελεί τίποτα)
while (PINB.0 == 0) { ; } //Πάτημα του διακόπτη (δεν εκτελεί τίποτα)

while (PINB.0 == 1) {  //αφήνεις τον διακόπτη...
if (PORTD.0 == 1) //Έλεγχος της εξόδου. Αν είναι 1
PORTD.0 = 0; //Το κάνει 0
else //Αλλιώς
PORTD.0 = 1; } } //Το γυρνάει στο 1.

Στη σύνταξη σίγουρα θα έχει λάθος. Δες μόνο τον τρόπο και δοκίμασε αν είναι σωστός

----------


## rep

γινεται και ετσι με bascom.




$regfile = "m8515.dat"

Config Porta = Input
Config Portc = Output
Dim B As Byte

Portc = 255




Do
If Pina.0 = 0 Then Toggle Portc.0
If Pina.1 = 0 Then Toggle Portc.1
If Pina.2 = 0 Then Toggle Portc.2
If Pina.3 = 0 Then Toggle Portc.3
If Pina.4 = 0 Then Toggle Portc.4
If Pina.5 = 0 Then Toggle Portc.5
If Pina.6 = 0 Then Toggle Portc.6
If Pina.7 = 0 Then Toggle Portc.7
Waitms 300
Loop

End

----------


## rep

ασχετο με το θεμα του Αλεξη...υπαρχει ευκολος τροπος να κανεις μια γραμμη κατεπιλογη σε μια lcd να διχνει αρνητικα????

----------


## tasosmos

Οταν λες να δειχνει αρνητικα? 
Να σχηματιζεται το περιγραμμα των χαρακτηρων απο τις κουκκιδες αντι για τους ιδιους τους χαρακτηρες? 
Δεν νομιζω οτι υπαρχει τροπος εκτος απο το να φτιαξεις custom χαρακτηρες.

----------


## rep

φτιαχνω ενα πολυφορτιστη με lcd και rotary encoder και θελω να αλλασει η γραμμη στο μενου απο κανονικη σε αρνητικη, το εχω δει στο internet καποια στιγμη χωρις να εξηγει ο καλυτεχνης πως το εκανε.

----------


## herctrap

μου πειρε λιγο να τα διαβασω

λοιπον θελω να ξεκινησω και γω 

μεχρι τωρα η μονη επαφη με uC ηταν μεσω του arduinou

με την μονη διαφορα οτι μπορουσα να αλλαξω τα fuses μεσω του avrdude και ανεβαζα το hex παλι μεσω του avrdude (χωρις τον bootloader)

εχω μπολικα mega328P 
usbtinyisp - το οποιο χρησιμοποιω 
usbasap - το οποιο δεν χρησιμοποιω
avrstudio ετοιμο
winavr ετοιμο

αυτα

τι πρεπει να κανω καθηγητα τωρα?

----------


## shoco

Ενα πολυ καλο tutorial για winavr

http://www.8051projects.net/e107_fil...r_tutorial.pdf

----------


## navar

επίσης ρίξε μια ματιά και στην codevision !
έχει πολύ εύκολες αρχικοποιήσεις και γλυτώνεις ένα σκασμό κώδικα και πολλά πιθανά λάθη !

----------


## herctrap

ναι αλλα ας το παμε σωστα αυτη την φορα και τσαμπα επισης

βρηκα τσαμπα εκτυπωτη οποτε θα εκτυπωσω το αποπανω για αρχη

----------


## navar

> ναι αλλα ας το παμε σωστα αυτη την φορα και τσαμπα επισης
> 
> βρηκα τσαμπα εκτυπωτη οποτε θα εκτυπωσω το αποπανω για αρχη



 γιατί ποιος είπε οτι η codevision στοιχίζει ?
δεν έχεις θείο να στην φέρει εσύ ?

----------


## herctrap

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

----------


## tasosmos

Δεν χρειαζεσαι... μπαρμπαδες.
Μπορεις να κατεβασεις δωρεαν την evaluation εκδοση απο το επισημο σαιτ να δεις το περιβαλλον του ελευθερα. Δεν εχει περιορισμο χρονου και σε αφηνει να φτιαξεις προγραμματα μεχρι 3-4ΚΒ.

----------


## alexisk10

Υπαρχει καποιο tutorial που να αναφερεται αποκληστικα στην codevision?

----------


## nikknikk4

http://www.youtube.com/watch?v=mlbksudts3E

.

----------


## pameZD

Προσπάθησα  και εγώ να μπω  στους μικροελεκτες   αφού βρήκα  αυτό το   post Α-Ω ….
Επειδή δεν έχω ασχοληθεί ποτέ με μΕ  τελικά δεν κατάλαβα και πολλά  και ψιλό απογοητεύτηκα.
Αν θέλει κάποιος  που έχει εντρυφήσει ποια  με το θέμα και ειδικά ο navar  ας  το μαζέψει λίγο   με edit στο πρώτο post   αλλά  αναλυτικά όσο  γίνεται  ώστε και  ένας  παντελώς  άσχετος να καταλάβει.
*Fuses -  compiler -  pinout - ADC - PWM -* *ιντεραπτ** - handler – while- defines- (**καταχωρητή** STATUS)*
Βρήκα  τα πιο πάνω  που δεν κατάλαβα και καλά τι είναι .
NAVAR   ΘΥΜΗΣΟΥ  … «_Μήπως θα ήταν πιο σωστό (για εμάς τους αρχαρίους) να γίνει ένα sticky θεματάκι «κατασκευή κυκλώματος από το Α ως το Ω» και εκεί να προταθεί βιβλιογραφία ( στα ελληνικά αν είναι δυνατών για να γλυτώσουμε τις ζόρικες ορολογίες ), κάποια οικονομική πλακέτα ανάπτυξης κυκλωμάτων, κάποια παραδείγματα κώδικα και προγραμματισμού , τον τρόπο μεταφοράς του hex πάνω στο chip, τον τρόπο οδήγησης ενός lcd display, οδήγηση διαφόρων περιφερειακών κλπ κλπ_ .»

----------


## navar

> Προσπάθησα  και εγώ να μπω  στους μικροελεκτες   αφού βρήκα  αυτό το   post Α-Ω ….
> Επειδή δεν έχω ασχοληθεί ποτέ με μΕ  τελικά δεν κατάλαβα και πολλά  και ψιλό απογοητεύτηκα.
> Αν θέλει κάποιος  που έχει εντρυφήσει ποια  με το θέμα και ειδικά ο navar  ας  το μαζέψει λίγο   με edit στο πρώτο post   αλλά  αναλυτικά όσο  γίνεται  ώστε και  ένας  παντελώς  άσχετος να καταλάβει.
> 
> χαχαχαχχαχα και ποιός σου είπε οτι ο Navar έχει εντρυφήσει !
> η αλήθεια είναι πως όταν έκανα το θέμα όλοι έπεσαν πάνω μου να μου πούνε οτι δεν γίνεται να γίνει ενα θέμα Α-Ω για μΕ και κατασκευές μιας και το θέμα είναι τεράστιο , δεν μπορείς να το καλύψεις τόσο εύκολα !
> έτσι και εγώ μετά απο πολλές προσπάθειες κατάφερα κάποια λίγα πράγματα , αλλα λόγο έλειψης χρόνου έμεινα στάσιμος στις δύο κατασκευές που ανέβασα και σε βιντεακια !
> 
> αν θέλεις να πάς στα δικά μου βήματα ξεκίνα με την αγορά / κατασκευή ενός programmer και εδώ είμαστε να βοηθήσουμε ! 
> ...



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

----------


## Hary Dee

> Προσπάθησα  και εγώ να μπω  στους μικροελεκτες   αφού βρήκα  αυτό το   post Α-Ω ….
> Επειδή δεν έχω ασχοληθεί ποτέ με μΕ  τελικά δεν κατάλαβα και πολλά  και ψιλό απογοητεύτηκα.
> Αν θέλει κάποιος  που έχει εντρυφήσει ποια  με το θέμα και ειδικά ο navar  ας  το μαζέψει λίγο   με edit στο πρώτο post   αλλά  αναλυτικά όσο  γίνεται  ώστε και  ένας  παντελώς  άσχετος να καταλάβει.
> *Fuses -  compiler -  pinout - ADC - PWM -* *ιντεραπτ** - handler – while- defines- (**καταχωρητή** STATUS)*
> [FONT=Calibri]Βρήκα  τα πιο πάνω  που δεν κατάλαβα και καλά τι είναι .[/COLOR]



Έκτωρα το ποστ σου *δείχνει* ότι δεν σε πιέζει κάτι να βιαστείς. Οπότε εγώ θα σου πρότεινα να κάνεις σωστή δουλειά (άρα *λίγο* πιο χρονοβόρα) ξεκινώντας με ένα βιβλίο. 
Προσωπικά το μόνο βιβλίο το οποίο με βοήθησε να προχωρήσω βήμα-βήμα σταθερά, ήταν το "J.Morton - AVR-An Introductory Course". Το βιβλίο βέβαια μιλάει με γλώσσα assembly, αλλά νομίζω ότι για κάποιον που δεν έχει καμία επαφή είναι ένας "φιλικός" τρόπος να καταλάβει τι παίζει με τους μΕ. Φιλικός εννοώ ότι σε βοηθάει να καταλάβεις λίγο τη δομή του επεξεργαστή, γιατί σαν υλοποίηση εφαρμογών εννοείται ότι μόνο φιλικός δεν είναι!
Αν πάλι θέλεις να ξεκινήσεις κατ' ευθείαν με μια πιο πλούσια-άνετη κλπ γλώσσα, μπορείς να κοιτάξεις την υπογραφή μου. :Wink: 

ΥΓ: Αν πάντως θέλεις να ρίξεις μια ματιά στο 1ο βιβλίο pm me.

----------


## herctrap

τι κωδικο βαζουμε για το C & AVR ?????

δεν ειμαι VIP

----------


## Hary Dee

> τι κωδικο βαζουμε για το C & AVR ?????
> 
> δεν ειμαι VIP



Χμ.. ναι, δεν το έχω βάλει σε καλό σημείο τελικά  :Sad: 
Το μόνο που μπορώ να κάνω για την ώρα είναι να σου δώσω το συννημένο. Αν δεν μπορέσεις ούτε έτσι να κάνεις τη δουλειά σου πες μου...

ΥΓ: Δυστυχώς δεν είναι εύκολο να βάζουμε οπουδήποτε links του rapishare κλπ  :Wink:

----------


## herctrap

ολα οκ

αλλα με ποιο να ξεκινησω?

----------


## info@kalarakis.com

Εγω θα σου πρότεινα να ξεκινήσεις απο εδω www.mcselec.com κατέβασε το εγχειρίδιο και το πρόγραμμα σε demo. Μπορεί να φτιάξει κω΄δικα μέχρι 4ΚΒ χωρίς να το αγοράσεις. Στο εγχειρίδιο έχει παραδέιγμα. Η γλώσσα έχει έτοιμες ρουτίνες π.χ για μοτέρ , πληκτρολογια, κωδικοποιητες κτλ. Εκτός απο αυτό αν εχεις κάπιο π΄ροβλημα του στέλνεις email και απαντα!!! Στο εγχειρίδο εχει και ενα απλό προγραμματιστή (ενα καλώδιο χρειαζεται) για να προγραμματίσεις το mpu 
Μέχζρι να φτάσεις στο τέλος  του εγχειριδειου θα μπορείς τυολάχιστον να κάνεις τα βασικά. Απο τα ρποηγούμενα βιβλια θα διαλεγα το Atmel AVR Microcontroller Primer programming and interfaceing Αν δεν ξερεις απο mpu θα ειναι οκ Προτεινόμενο mpu ATTINY2313

----------


## alexisk10

εχω γραψει αυτο το προγραμα στην bascom για την χρηση μιας lcd σαν counter αλλα οταν το ανεβαζω στον μC αρχιζει να μετρα χωρις να πατησω το push button που ειναι ενωμενο στην pind.3

ποιο ειναι το προβλημα?

$crystal = 2000000                                          
$regfile = "attiny2313.dat"                                 
Config Portb = Output                                       
Config Pind.3 = Input                                       
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 ,
                   Db7 = Portb.7 , E = Portb.0 , Rs = Portb.1 
Config Lcd = 16x2                                          
cls
Cursor Off
Dim Position As Byte
Dim count_incr As Integer
Locate 1 , 6
Lcd "count"
count_incr = 0
Do
   If Pind.3 = 0 Then
      Incr count_incr
      Locate 2 , 8
      Lcd count_incr

   End If

Loop
End

----------


## Hary Dee

Νομίζω ότι βοηθάει ένα σχηματάκι. Μήπως τυχόν δεν έχεις ρυθμίσει το θέμα των pull-up αντιστάσεων;

----------


## alexisk10

οταν χρησιμοποιουμε το PINX δεν ενεργοποιουμε τα pull-up resistor του mC? 
για σχηματακι ειναι λιγο δυσκολο γιατι ειναι φτοιαγμενο σε breadboard και το εχω κοιταξει παραπολλες φορες

----------


## mariosm

Μετα την εντολη:
Config Pind.3 = Input 
βαλε 
Set pind.3

----------


## tasosmos

Tο default ειναι σε tristate. 
Πρεπει να γραψεις 1 στο αντιστοιχο καταχωρητη port για να ενεργοποιηθει η pull-up. 
Αλλιως βαλε εξωτερικα μια αντισταση πχ 10ΚΩ απο το ποδαρακι προς την VCC.

----------


## alexisk10

εχω κανει αυτο που μου ειπε ο μαριος και ολα μια χαρα, λαθος εντοιπωση ειχα για το PINx τελικα. ευχαριστω για της απαντησης.

----------


## herctrap

το πηρα αποφαση να ξεκινησω

αλλα δεν μπορω γιατι εχω κολησει

avr studio 5 ή winavr

*αυτο http://www.8051projects.net/e107_fil...r_tutorial.pdf ειναι συμβατο με το avr studio 5?

----------


## shoco

> το πηρα αποφαση να ξεκινησω
> 
> αλλα δεν μπορω γιατι εχω κολησει
> 
> avr studio 5 ή winavr
> 
> *αυτο http://www.8051projects.net/e107_fil...r_tutorial.pdf ειναι συμβατο με το avr studio 5?



Ο ίδιος compiler είναι. Βάλε avr studio 5.

----------


## herctrap

ναι το εχω βαλει

αλλα δεν μπορω να καταλαβω 

ποια η διφορα του

#ifndef F_CPU 1000000UL
#define F_CPU 1000000UL

#include <avr/delay.h>
#include <util/delay.h>

ελπιζω να τα καταφερω

----------


## herctrap

που μπορω να βρω μια βιβλιοθηκη για τον HD44780 να την δουλεψω με το avr studio 5?

----------


## shoco

Αν θυμαμαι καλα googlare peter fluery lcd lib

----------


## herctrap

εδω εχει ενα καλο tutorial για Avr και C

http://www.hlektronika.gr/forum/show...l=1#post439248

παω να συνεχισω το διαβασμα

----------


## Hary Dee

> που μπορω να βρω μια βιβλιοθηκη για τον HD44780 να την δουλεψω με το avr studio 5?



Τελικά δεν κατάλαβα, βρήκες; Ποια;
Και κάτι ακόμα: Ξέρει κανείς πού θα δούμε μαζεμένες όλες τις βιβλιοθήκες του AVR Studio; Εννοώ με ορθόδοξο τρόπο, χωρίς να καθόμαστε να κάνουμε browse όλους τους φακέλους του προγράμματος...
Το κατέβασα γιατί λέγανε κάτι για 400++ έτοιμα κολοκύθια, τα οποία όμως πού είναι; Εντάξει , δεν το έχω κάνει φύλλο και φτερό αλλά θα πρέπει να υπάρχουν κάπου ευπρόσιτα.

----------


## herctrap

προσπάθησα να το δουλέψω με αυτό
http://extremeelectronics.co.in/avr-...ule-with-avrs/

αλλά δεν τα κατάφερα
το εκανα add το αρχειο αλλα δεν το εβρισκε

και εγω 3 exapmles βλεπω

ενα για UART 
ενα για το delay
και ενα για τα i/o

και που ειναι οι βιβλιοθηκες???

----------


## Hary Dee

Μήπως οι βιβλιοθήκες είναι αυτές Program Files\Atmel\AVR Studio 5.0\extensions\Application\AVR Toolchain\doc\avr-libc\avr-libc-user-manual\modules.html ; Εδώ δεν έχει ούτε καν για lcd. ΑΝ είναι αυτές όλες κι όλες καλά κρασιά.
Μου φαίνεται ή θα αρχίσω να γράφω μόνος μου τις βιβλιοθήκες με assembly (όπως κάποτε) ή θα αναγκαστώ να ασχοληθώ με arduinους και πράσινα άλογα...

----------


## info@kalarakis.com

Αντι να ασχοληθείς ξανά με την assemply πήγαινει ενα βημα μπροστά και ξεκίνα C ή www.mcselec.com και τα δύο έχουν πλήρη τις βιβλιοθήκες.

----------


## Hary Dee

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

----------


## Mihos

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

----------

Thansavv (27-07-11)

----------


## alexisk10

Ξερει κανεις τι συμμενουν αυτα στην bascom-avr       $hwstack = 40   $swstack = 10     $framesize = 40    ??????

----------


## rep

πατα επανω κανε την εντολη μπλε και πατα F1 θα σε παει στο help που λεει ακριβως τι κανει η εντολη.

----------


## alexisk10

Πως θα μπορουσα να κανω ενα bar στην LCD και πατοντας ενα κουμπι να αυξανετε ? χρισημοποιω bascom

ευχαριστω

----------


## info@kalarakis.com

αντι για γράμματα τύπωνε τετραγωνάκια 
LCD chr(223)
αν θυμάμαι καλα είναι το μικρο τετραγωνάκι

----------


## nobig

Έχει να κάνει με την "μνήμη" που κρατάει η bascom απο τον επεξεργαστή για interrupts κτλ, μου έχει τύχει να χρειαστεί να αυξήσω λίγο τα νούμερα.Αν θες περισσότερες πληροφορίες θα βρεις στο site τους σίγουρα. Πάντως bascom προτείνω ανεπιφύλακτα, πολύ καλή υλοποίηση, όλη η πτυχιακή μου βγήκε με αυτή

Mikrobasic &mikro C έχει δουλέψει κανείς;

----------


## herctrap

η φτιαξε custom χαρακτηρες οπως εγω εδω





ο ενας θα εχει την πανω και κατω γραμμη
ο αλλος θα εχει πανω κατω και την πρωτη στηλη
ο αλλος πανω κατω και τις δυο πρωτες στηλες
κτλ
και ο τελευτεος θα εχει πανω κατω και 5 στηλες

μετα 16*5 = 80 το max γραμμων

εστω οτι θες να εμφανησεις χ γραμμες

απο την αρχη θα εμφανισεις 

χ div 5 τον χαρακτηρα με τις 5 στηλες

μετα θα εμφανησεις τον αναλογο χαρακτηρα για το χ mod 5 

και τελος για τα υπολοιπα 16 - ( χ div 5 ) + 1 θα εμφανησεις τον χαρακτηρα με τις γραμμες πανω κατω


καπως ετσι πρεπει να το ειχα κανει

----------


## alexisk10

Εχω ενα crystal 32,768KHz συνδεδεμενο στο TOSC1 Και TOSC2 σε ενα ATMEGA328 αν ενεργοποιησω τον TIMER2 και τo ASYNC οπως παρακατω το προγραμμα θα λειτουργα με τον internal oscillator και η ωρα με τον κρυσταλο?

Με απλα λογια θελω ολο το προγραμα που εχω γραψει να συνχονιζετε απο τον internal oscillator και το ρολοι απο το το κρυσταλλο. Γινεται αυτο?

CONFIG TIMER2 = TIMER , ASYNC=ON 
PRESCALE = 1

----------

