Εμφάνιση αποτελεσμάτων : 1 έως 7 από 7

Θέμα: pwm με εξωτερικες διακοπες!

  1. #1
    Μέλος Το avatar του χρήστη ventouza6969
    Όνομα
    Σπύρος
    Εγγραφή
    Oct 2008
    Περιοχή
    Σεπόλια
    Μηνύματα
    210

    Προεπιλογή pwm με εξωτερικες διακοπες!

    Για τους καλους λυτες...

    Παρακατω εχω επισυναψει ενα απλο προγραμμα pwm το οποιο
    δεν κανει τιποτε αλλο απο παραγει παλμους μεταβαλοντας ccpr1l
    καταχωρητη.Το ερωτημα ειναι πως μπορω εγω με εξωτερικες παρεμβολες
    πΧ πατημα ενος μπουτον να μεταβαλω τον καταχωρητη ως συνεπεια
    και τους παλμους ΄η με το μπουτον να προκαλω μια λειτουργια on/off του pwm??


    Eυχαριστω!
    Συνημμένα Αρχεία Συνημμένα Αρχεία

    0 Not allowed! Not allowed!
    ===============================================
    Ο μικροΕλεγκτης παυει εκει που η φαντασια ολοκληρωνει!
    ===============================================

  2. #2
    Μέλος
    Όνομα
    Δημήτρης
    Εγγραφή
    Feb 2007
    Περιοχή
    Κύπρος
    Μηνύματα
    124

    Προεπιλογή

    Φίλε Σπύρο,

    Οι PIC έχουν το INT interrupt που θα μπορούσες να χρησιμοποιήσεις για να ανιχνεύσεις εξωτερικό πάτημα κάποιου button. Οπότε μπορείς να χρησιμοποιήσεις αυτό το Interrupt για να αλλάξεις την τιμή του CCPR1L το οποίο κρατάει και το duty cycle του PWM. Το on/off μπορείς να το κάνεις μέσω του CCP1CON.

    Τώρα αν χρειάζεσαι περισσότερα inputs για πιο " πολύπλοκη " λειτουργία (π.χ. αύξηση, μείωση duty cycle, on/off και άλλα), μπορείς να συνδέσεις περισσότερα buttons και να τα ελέγχεις με την μέθοδο polling. Δηλαδή θα περνάς σε ένα loop που θα ελέγχει ένα ένα τα buttons αν είναι πατημένα και θα εκτελεί τις ανάλογες εντολές. Εδώ χρειάζεται λίγη προσοχή στην ταχύτητα ελέγχου.

    Ελπίζω να βοήθησα!

    0 Not allowed! Not allowed!

  3. #3
    Μέλος Το avatar του χρήστη ventouza6969
    Όνομα
    Σπύρος
    Εγγραφή
    Oct 2008
    Περιοχή
    Σεπόλια
    Μηνύματα
    210

    Προεπιλογή

    Eχω προσπαθησει να το επιτυχω με τον τροπο του INT interrupt
    και δεν τα εχω καταφερει λες κ δεν συνεργαζονται...
    Αν ειχες καποιο τροπο στο μυαλο σου, αν μπορουσες να το γραψεις
    θα ηταν καλυτερα!

    Ευχαριστω!

    0 Not allowed! Not allowed!
    ===============================================
    Ο μικροΕλεγκτης παυει εκει που η φαντασια ολοκληρωνει!
    ===============================================

  4. #4
    Μέλος
    Όνομα
    Δημήτρης
    Εγγραφή
    Feb 2007
    Περιοχή
    Κύπρος
    Μηνύματα
    124

    Προεπιλογή

    Αν θες κάνε post τον κώδικα για το INT να δούμε τι παίζει.

    Για άλλη μέθοδο, κοίταξε την δεύτερη παράγραφο του προηγούμενου post. Ότι βοήθεια πες μου...




    Άσχετο αλλά σας αρέσει το καινούργιο μου μπλουζάκι? Προσέξτε που έχει ένα pixel καμένο? Χε χε χε...

    0 Not allowed! Not allowed!

  5. #5
    Μέλος Το avatar του χρήστη ventouza6969
    Όνομα
    Σπύρος
    Εγγραφή
    Oct 2008
    Περιοχή
    Σεπόλια
    Μηνύματα
    210

    Προεπιλογή

    Koiτα τωρα για να κανω την δουλεια μου χρησιμοποιησα δυο αναλογικες εισοδους που συνεραγαζεται καλα με το pwm κ εφτιαξα ετσι το προγραμμα να τισ αντιλαμβανεται σαν μπουτον.εγω απλα ηθελα με το ξεκινιμα του πικ η εξοδοσ ccp1 να εχει ενα duty cycle ταδε, να ανιχνευει δυο μπουτονς απο τα οποια οταν πατιεται το πρωτο να αλλαζει το duty cycle και με το πατημα του δευτερου μπουτον να επανερχεται στο αρχικο duty...Επειδη νομοιζω οτι τροποσ μου ειναι λαθοσ ασχετα αν δουλευει θα αναιβασω το προγραμμα και αν θελεισ να δοκιμασεισ καοιον διαφορετικο τροπο ευχαριστως να τον ακουσο...
    (το προγραμμα που εχει επισυναφθει παιζει σε πικ 16φ872 και δεν γνωριζω ακομα για 12φ683 αναμενεται απο την παραγγελια αν υαρχει καποιο λαθοσ
    θα ηθελα να μου το πειτε)

    Ευχαριστω!
    Συνημμένα Αρχεία Συνημμένα Αρχεία

    0 Not allowed! Not allowed!
    ===============================================
    Ο μικροΕλεγκτης παυει εκει που η φαντασια ολοκληρωνει!
    ===============================================

  6. #6
    Μέλος Το avatar του χρήστη typografos
    Όνομα
    Φάνης
    Εγγραφή
    Jun 2009
    Περιοχή
    Ναύπλιο
    Μηνύματα
    65

    Προεπιλογή Ο παλιός (γνώριμος) αγαπημένος μου pic ...

    Νομίζω πως η λογική γενικά είναι λάθος.
    και
    επίσης και εκείνο το delay δεν μου άρεσε... Γενικά κάνουμε delays με χρήση των timers και των διακοπών τους...

    Συγχώρα με αλλά έχω πολύ καιρό να ασχοληθώ με pic-άκια (από τότε που υπήρχαν μόνο οι 16c54... αλήθεια υπάρχουν ακόμα ?) είμαι λίγο παππούς σ' αυτά αλλά μόλις βρήκα το forum μπριζώθηκα και

    Θα με βάλεις στην πρίζα να το ψάξω....

    Αλλά ας ξεκινήσω με μια βασική αρχή: Τον «θόρυβο» που προκαλεί το πάτημα ενός πλήκτρου...

    1. Για να τσεκάρουμε το πάτημα πλήκτρου πάντα χρησιμοποιούμε digital είσοδο (με pullup αντίσταση ...?)

    Τώρα για να γίνει αυτό χρησιμοποιούμε έναν timer που κάνει interupt κάθε 10ms (περίπου). Σε κάθε διακοπή και στην υπορουτίνα εξυπηρέτησης της διακοπής αποθηκεύουμε την κατάσταση του πλήκτρου.

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

    Είναι ευνόητο νομίζω γιατί το κάνουμε αυτό... Αν τσεκάρουμε για πάτημα πλήκτρου απλά με μια εντολή σύγκρισης «την πατήσαμε» γιατί πατώντας το πλήκτρο ο pic-άκιας θα νομίζει ότι το πατήσαμε καμιά δεκαριά φορές μπορεί και παραπάνω..... τόσο γρήγορα που τρέχει.... Δηλ. πάντα βεβαιωνόμαστε για το ανερχόμενο μέτωπο του παλμού από το bouton. Μην ξεχνάτε ότι όταν πατάμε ένα πλήκτρο δεν έχουμε παλμό αλλά χρχρχρχτσσ-παλμό

    Με λογικό διάγραμμα η υπορρουτίνα εξυπηρέτησης της διακοπής λέει:
    Η προηγούμενη κατάσταση του πλήκτρου LO ?
    Αν ναι τότε Αν και η τωρινή κατάσταση του πλήκτρου LO τότε πατήθηκε ! Βάλε το flag ότι πήραμε το μύνημα ότι το πλήκτρο πατήθηκε και άσε το main program να κάνει τη δουλειά του (και να μην ξεχάσει να το μηδενίσει πάλι...) Διαφορετικά πήραμε ένα LO πριν αλλά η τωρινή κατάσταση του πλήκτρου είναι HI - άρα θόρυβος - Ξαναμηδένισε το flag που έλεγε την προηγούμενη κατάσταση του πλήκτρου και exit από την υπορρουτίνα.


    Να λοιπόν γιατί οσμίζομαι ότι δεν σου δούλεψε-συνεργάστηκε.

    Δεν ξέρω και πολλά για τον συγκεκριμένο pic-άκια που χρησιμοποιείς αλλά δεν νομίζω αυτό να μην γίνεται. Ασε λίγο να κοιτάξω datasheets και τα ξαναλέμε...

    0 Not allowed! Not allowed!
    ReliabilityConsistencyFeedback - NeverAchievable

  7. #7
    Μέλος Το avatar του χρήστη ventouza6969
    Όνομα
    Σπύρος
    Εγγραφή
    Oct 2008
    Περιοχή
    Σεπόλια
    Μηνύματα
    210

    Προεπιλογή

    Περιμενω τισ προτασεις σου....

    0 Not allowed! Not allowed!
    ===============================================
    Ο μικροΕλεγκτης παυει εκει που η φαντασια ολοκληρωνει!
    ===============================================

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

  1. PWM vs dimmer , PWM vs PSU για μοτερ ?
    By BeetleJuice in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 38
    Τελευταίο Μήνυμα: 29-04-15, 15:23
  2. Απαντήσεις: 5
    Τελευταίο Μήνυμα: 04-09-12, 22:43
  3. Απανωτες διακοπες ΙΝΤΕΡΝΕΤ
    By jeik in forum Software Η/Υ
    Απαντήσεις: 8
    Τελευταίο Μήνυμα: 10-11-10, 16:25
  4. ΚΑΛΕΣ ΔΙΑΚΟΠΕΣ ΣΕ ΟΛΟΥΣ
    By dovegroup in forum Γενική Συζήτηση
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 01-08-09, 11:20
  5. Απαντήσεις: 9
    Τελευταίο Μήνυμα: 03-04-09, 01:54

Tags for this Thread

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

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