Σελίδα 1 από 2 1 2 ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 1 έως 10 από 14

Θέμα: reset σε μικροελενκτή

  1. #1
    Μέλος Το avatar του χρήστη Δημήτρηςκα
    Όνομα
    Δημήτρης
    Εγγραφή
    Mar 2009
    Περιοχή
    Αθήνα
    Μηνύματα
    434

    Προεπιλογή reset σε μικροελενκτή

    Καλησπέρα σας,
    Γνωρίζει κάποιος πως μπορώ (και αν μπορώ) όταν κάνω reset στο μικροελενκτή μου να μη χάνω κάποια δεδωμένα, πχ έναν counter που έχω δημιουργήσει.
    Χροισιμοποιώ τον atmega16 και τον προγραματίζω με το avrstudio Gcc.
    Ευχαριστώ!

    0 Not allowed! Not allowed!

  2. #2
    Μέλος
    Όνομα
    Όνομα
    Εγγραφή
    Nov 2009
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    197

    Προεπιλογή

    Μπορείς να αποθηκεύεις οτι θέλεις στην EEPROM πριν κάνεις reset τον μικροελεγκτή και στη συνέχεια να τα ανακτάς από εκεί μετά το reset, τα δεδομένα στην EEPROM διατηρούνται και κατά το reset αλλά και κατά τη διακοπή της τροφοδοσίας. Τη διαδικασία θα τη βρεις στο datasheet αλλά και στο ιντερνετ...

    0 Not allowed! Not allowed!

  3. #3
    Μέλος Το avatar του χρήστη Δημήτρηςκα
    Όνομα
    Δημήτρης
    Εγγραφή
    Mar 2009
    Περιοχή
    Αθήνα
    Μηνύματα
    434

    Προεπιλογή

    Εάν δεν κάνω λάθος εκεί αποθηκεύετε και ο κωδικας σωστά; Υπάρχει περίπτωση εάν αποθηκεύσω εκεί ένα byte να πέσει πάνω στο σημείο που έχει αποθηκευτεί ο κώδικας και να έχει επιπλοκές; Πρέπει να λάβω και αυτό υπόψην μου;

    ΥΓ Βρήκα ένα tutorial αλλά δεν το διάβασα ακόμη(μάλλων θα το πιάσω αύριο)

    0 Not allowed! Not allowed!

  4. #4
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Feb 2010
    Περιοχή
    Αθήνα
    Μηνύματα
    4.618

    Προεπιλογή

    Αν και δεν έχω εμπειρία με AVR, θα σημειώσω ότι στους μC το reset δεν σημαίνει "αλλοίωση δεδομένων" στους καταχωρητές του εκτός από το program counter, status register, ίσως και κάποιους καταχωρητές περιφερειακών. Η έλλειψη τάσης έχει σαν αποτέλεσμα την "απροσδιοριστία" των δεδομένων στους καταχωρητές (περιγράφονται στα datasheet) και την προβλεπόμενη κατάσταση στο status register και στα περιφερειακά.

    Αρκετές φορές το reset είναι μέρος της σχεδίασης!

    Αν το πρόβλημά σου είναι "τι γίνεται με το reset" και όχι "τι γίνεται μετά από διακοπή/επαναφορά τάσης" δοκίμασε να διαβάσεις απευθείας ένα καταχωρητή (low level, assembly) και όχι μέσω της δήλωσής του ως μεταβλητής του προγράμματος. Για τη διακοπή τάσης η EEPROM είναι η λύση.

    G

    0 Not allowed! Not allowed!

  5. #5
    Μέλος Το avatar του χρήστη Δημήτρηςκα
    Όνομα
    Δημήτρης
    Εγγραφή
    Mar 2009
    Περιοχή
    Αθήνα
    Μηνύματα
    434

    Προεπιλογή

    Αρχικα σας ευχαριστώ για τις απαντήσεις σας,
    Το tutorial είναι αυτόi (σε περίπτωση που κάποιος το θέλει).
    Αρχικά να σας πω πως είμαι αρχάριος και δεν πολυκαταλαβαίνω τους"όρους" που χροισιμοποιείτε και ίσως είπα κάτι και καταλάβατε κάτι άλλο,
    Όταν φτιάχνω ένα πχ int που τον έχω κάνει counter και βρίσκετε πχ στο 10 όταν κάνω reset γίνετε 0.
    1)Εάν εγώ θέλω μετά το reset ή τη διακοπη της τάσης να θυμάτε πως είναι 10 εάν το αποθηκεύσω στην epprom θα το "θυμάτε" ο μc;
    2)Από ότι είδα στο tutorial το να γράψω ένα byte στην epprom του μc είναι πολύ απλό(2 εντολές), εγώ όμως πρέπει να λάβω τίποτα άλλο υπόψην μου όταν το κάνω αυτό;

    0 Not allowed! Not allowed!

  6. #6
    Μέλος Το avatar του χρήστη klik
    Όνομα
    just a click away
    Εγγραφή
    Oct 2009
    Περιοχή
    Θεσσαλλλονίκη
    Μηνύματα
    2.563

    Προεπιλογή

    Μήπως δεν εννοείς reset αλλά επαναπρογραμματισμό του επεξεργαστή;
    Ακόμα και έτσι, πολλοί μικροελεγκτές μπορούν να σβήσουν επιλεκτικά κάποια κομμάτια μνήμης ώστε να μην πειράζεις την EEPROM (πχ) όταν περνάς νέο πρόγραμμα.

    Φυσικά μπορείς να χρησιμοποιήσεις και κανέναν 24C01 για να μην σε νοιάζει τίποτα.

    (Μήπως αγχώνεσαι με το ότι κάποιοι μικροελεγκτές μπορούν να προγραμματιστούν περίπου 1000 φορές μόνο; )

    0 Not allowed! Not allowed!

  7. #7
    Μέλος Το avatar του χρήστη klik
    Όνομα
    just a click away
    Εγγραφή
    Oct 2009
    Περιοχή
    Θεσσαλλλονίκη
    Μηνύματα
    2.563

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από Δημήτρηςκα Εμφάνιση μηνυμάτων
    ...2)Από ότι είδα στο tutorial το να γράψω ένα byte στην epprom του μc είναι πολύ απλό(2 εντολές), εγώ όμως πρέπει να λάβω τίποτα άλλο υπόψην μου όταν το κάνω αυτό;
    ναι να μην προσπαθήσεις να γράψεις κατά το power off γιατί μπορεί να γραφτούν αρλούμπες.

    0 Not allowed! Not allowed!

  8. #8
    Μέλος Το avatar του χρήστη Δημήτρηςκα
    Όνομα
    Δημήτρης
    Εγγραφή
    Mar 2009
    Περιοχή
    Αθήνα
    Μηνύματα
    434

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από klik Εμφάνιση μηνυμάτων
    ναι να μην προσπαθήσεις να γράψεις κατά το power off γιατί μπορεί να γραφτούν αρλούμπες.
    Tι ενοείς λέγοντας power off;

    Ενδιαφέρον το 24C01 σε αυτό μπορείς να αποθηκεύσεις και δεδωμένα εκτός epprom;

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη Δημήτρηςκα : 07-05-11 στις 23:01

  9. #9
    Μέλος Το avatar του χρήστη klik
    Όνομα
    just a click away
    Εγγραφή
    Oct 2009
    Περιοχή
    Θεσσαλλλονίκη
    Μηνύματα
    2.563

    Προεπιλογή

    Αν εσύ δώσεις εντολή για γράψιμο στην eeprom, αυτή θέλει ας πούμε 10msec για να γίνει. Ο μικροελεγκτής θέλει 100msec να καταλάβει ότι του έκοψες το ρεύμα. Αν μείνει χωρίς ρεύμα μέσα στα 10 κρίσημα msec τι θα γραφτεί στην eeprom; Συνήθως μπαίνει ένα σήμα στον μικροελεγκτή από το τροφοδοτικό σου όταν κοπεί το AC για να ξέρει ότι σε λίγο θα χάσει την τροφοδοσία του και να μην κάνει (ή να κάνει) κρίσημα πράγματα (ανάλογα πως θέλεις να το σχεδιάσεις).

    Το 24c01 είναι μια εξωτερική ανεξάρτητη eeprom που επικοινωνεί με 2 ακίδες με τον μικροελεγκτή (με πρωτόκολλο i2c).

    0 Not allowed! Not allowed!

  10. #10
    Μέλος
    Όνομα
    Καλαρακης Μιχαλης
    Εγγραφή
    Jan 2011
    Περιοχή
    Ηρακλειο
    Μηνύματα
    2.043

    Προεπιλογή

    To mpu εχει flash ram όπου αποθηκεύτε το πρόγραμμα που γράφεις, Ram όπου μπάινουν οι μεταβλητές και EEprom, είναι και αυτή τύπου RAM με τη διαφορά οτι τα δεδομένα παραμένουν και οταν "κλήσει" η συσκευη. Για την EEPROM υπάρχουν άλλες εντολές γραφής και ανάγνωσης. Η EEPROM μπορει να γραφεί μεγιστο 100.000 φορές Για το λόγο αυτό οι μεταβλητές εξ ορισμού φυλάσονται στη RAM. Για να φυλάξεις το μετρητή σου βάλτον στην ΕΕPROM και κατά την εκκίνηση διάβασε τη θέση που τον έχεις φυλάξει. Ο επεξεργαστης μπορεί να κάνει επανεκκίνηση (reset) από το κοινό reset, απο το κύκλωμα ΒΟC ,απο το watchdog ή απο κλησιμο του ρεύματος τροφοδοσίας.
    Το ΒOC ρύθμισε το στα 4.3V Αυτό επιτυρεί την τάση και όταν πέσει κατω απο το επίπεδο αυτό κάνει reset το mpu και σταματά διεργασίες εγγραφής στην EEPROM για να μη κατααστραφούν δεδομένα
    Κατα την εκκίνηση δίαβασε το καταχωρητή του reset για να δείς απο που "ήρθε" η εκκίνηση, και ανάλογα αποφάσισε τι θα κάνεις με το counter.
    Αν εννοείς τώρα να μη σβήνει η EEPROM όταν ξαναγράφεις τη FLASH (το πρόγραμμα), υπάρχει τέτοια δυνατότητα δες το εγχειρίδιο προγραμματισμού.

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη info@kalarakis.com : 07-05-11 στις 23:34

Σελίδα 1 από 2 1 2 ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Χρονόμετρο σε μικροελενκτή PIC18F1320
    By bxenos in forum Μικροελεγκτές
    Απαντήσεις: 13
    Τελευταίο Μήνυμα: 02-09-13, 00:26
  2. οδήγηση βηματικού κινιτήρα με μικροελενκτή
    By Δημήτρηςκα in forum Ηλεκτρονικά
    Απαντήσεις: 24
    Τελευταίο Μήνυμα: 10-07-13, 03:36
  3. Βοήθεια με αισθητήρες και μικροελενκτή.
    By L3fteris in forum Μικροελεγκτές
    Απαντήσεις: 11
    Τελευταίο Μήνυμα: 22-12-12, 01:53
  4. Πρόβλημα κατά το άγγιγμα του μικροελενκτή
    By acmilangr in forum Κυκλώματα Τροφοδοτικών
    Απαντήσεις: 15
    Τελευταίο Μήνυμα: 31-07-11, 18:43
  5. Απαντήσεις: 5
    Τελευταίο Μήνυμα: 21-01-10, 18:55

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας