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

Θέμα: Βοηθεια με κωδικα στο MPLAB

  1. #1
    Νέο Μέλος
    Όνομα
    Γιάννης
    Εγγραφή
    Feb 2014
    Περιοχή
    Αθήνα
    Μηνύματα
    7

    Προεπιλογή Βοηθεια με κωδικα στο MPLAB

    Καλησπερα στην κοινοτητα.Εχω μια εργασια για τη σχολη μου πανω στο μικροελεγκτη PIC16F882 με την εξης εκφωνηση: Να γραφτεί πρόγραμμα στο MPLAB το οποίο να ανάβει και να σβήνει ένα led στην θύρα C στο bit 0 και κατόπιν να ανάβει και να σβήνει ένα δεύτερο led στο bit 2 της ίδιας θύρας.Επειδη ειναι η πρωτη μου επαφη με αυτα,μπορειτε να μου πειτε αν ο παρακατω κωδικας ειναι σωστος και αν οχι,τι πρεπει να διορθωσω;Ευχαριστω!

    Κώδικας:
    #include <p16F882.inc>    __CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
        __CONFIG _CONFIG2, _WRT_OFF & _BOR21V
        
     org 0
    
    
    bsf STATUS,RP0
    bcf TRISC,0
    bcf STATUS,RP0
    bsf PORTC,0
    bsf STATUS,RP0
    bcf TRISC,2
    bcf STATUS,RP0
    bsf PORTC,2
    end

    0 Not allowed! Not allowed!

  2. #2
    Μέλος
    Όνομα
    Βασίλης
    Εγγραφή
    Sep 2011
    Περιοχή
    Κερατσίνι
    Μηνύματα
    8.777

    Προεπιλογή

    τει πειραια?

    Θα προτεινα μετα την
    bsf status pr0
    movlw b (ολες τις θυρες που θες εισοδους/εξοδους) πχ 00000111
    movwf trisc
    bcf status,pr0
    start:

    bsf portc,0
    bcf portc,0
    bsf portc,2
    bcf portc,2
    goto start
    επειδη ομως θα το κανουν τοσο γρηγορα που δεν θα το βλεπεις πρεπει να βαλεις delay

    0 Not allowed! Not allowed!
    Δυο πράγματα είναι άπειρα, το σύμπαν και η ανθρώπινη βλακεία, αλλά για το σύμπαν δεν είμαι εντελώς σίγουρος

  3. #3
    Νέο Μέλος
    Όνομα
    Γιάννης
    Εγγραφή
    Feb 2014
    Περιοχή
    Αθήνα
    Μηνύματα
    7

    Προεπιλογή

    Ναι ΤΕΙ Πειραια,ηλεκτρολογος!Το σκεφτηκα να βαλω delay οπως λες αλλα θελουν να δουν μονο τον κωδικα,δε θα παρουσιαστει πρακτικα η εργασια οπου εκει θα ηταν επιβεβλημενο το delay για να φαινεται η διαφορα.Σε ευχαριστω για την απαντηση σου!

    0 Not allowed! Not allowed!

  4. #4
    Μέλος
    Όνομα
    Βασίλης
    Εγγραφή
    Sep 2011
    Περιοχή
    Κερατσίνι
    Μηνύματα
    8.777

    Προεπιλογή

    delay θα μπει στην ασκηση 4


    παιδια τόσο ενδιαφερον εχει ο προγραμματισμός μικ/κτη;
    ξεπερασμενη τεχνολογια τελικα....

    0 Not allowed! Not allowed!
    Δυο πράγματα είναι άπειρα, το σύμπαν και η ανθρώπινη βλακεία, αλλά για το σύμπαν δεν είμαι εντελώς σίγουρος

  5. #5
    Μέλος
    Εγγραφή
    Nov 2007
    Μηνύματα
    1.452

    Προεπιλογή

    Βασικές αρχές αρχιτεκτονικής συστημάτων..... Μην κολλάτε στο "ένα λαμπακι που αναβοσβήνει"

    0 Not allowed! Not allowed!

  6. #6
    Μέλος
    Όνομα
    Βασίλης
    Εγγραφή
    Sep 2011
    Περιοχή
    Κερατσίνι
    Μηνύματα
    8.777

    Προεπιλογή

    Μια ερωτηση κατανοησης.
    ποση ειναι η καθυστερηση που εχουμε αν η συχνοτητα ειναι 4ΜΗΖ?
    σε αυτο τον κωδικα





    start:
    bsf STATUS,5
    bcf TRISC,7
    bcf STATUS,5


    mainloop:
    bsf PORTC,7
    ondelayloop:
    decfsz delay1,f
    goto ondelayloop ;εδω εχουμε 3 εντολες *256
    decfsz delay2,f
    goto ondelayloop ; εδω 4 εντολες *256
    bcf PORTC,7
    offdelayloop:
    decfsz delay1,f ; ξανα 3*256
    goto offdelayloop
    decfsz delay2,f
    goto offdelayloop ;ξανα 4*256
    goto mainloop
    end

    και γινεται (3*256 + 4*256 )*2=(χρονους)? σωστα τα λεω?


    ή ισχυει αυτο

    OndelayLoop: decfsz Delay1,f ; Waste time.
    goto OndelayLoop ; The Inner loop takes 3 instructions per loop * 256 loopss = 768 instructions
    decfsz Delay2,f ; The outer loop takes and additional 3 instructions per lap * 256 loops
    goto OndelayLoop ; (εδω γιατι προσθετει και τις προηγουμενες 768??)(768+3) * 256 = 197376 instructions / 1M instructions per second = 0.197 sec. ; call it two-tenths of a second

    0 Not allowed! Not allowed!
    Δυο πράγματα είναι άπειρα, το σύμπαν και η ανθρώπινη βλακεία, αλλά για το σύμπαν δεν είμαι εντελώς σίγουρος

  7. #7
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.381

    Προεπιλογή

    Βασικά πρέπει να δεις από τη λίστα εντολών , η κάθε εντολή πόσους κύκλους θέλει για να εκτελεστεί .
    Μετά μετατρέπεις τη συχνότητα σε περίοδο t=1/f
    Οπότε ξέρεις πόσο είναι ο κάθε διαρκεί ο κάθε κύκλος εντολης.

    Αλλά αν θυμάμαι καλά ανάλογα τον επεξεργαστή μπορεί 4 κύκλοι ρολογιού να είναι = με 1 κύκλο εντολής . Οι dspic είναι 1 κύκλος ρολογιού = ένας κύκλος μηχανής

    0 Not allowed! Not allowed!

  8. #8
    Μέλος
    Όνομα
    Βασίλης
    Εγγραφή
    Sep 2011
    Περιοχή
    Κερατσίνι
    Μηνύματα
    8.777

    Προεπιλογή

    Aκη συγνωμη,τωρα ειδα την απαντηση (πως μου ξεφυγε).Η απαντηση στο ερωτημα μου ειναι γιατι εκτελει το delay 1 255 φορες καθε φορα που μετραει 255 στο delay 2.

    Αλλη ερωτηση..
    Πως μπορω να ρυθμιζω τον χρονο που κανω delay διαβαζωντας εναν 8bit αριθμο?

    0 Not allowed! Not allowed!
    Δυο πράγματα είναι άπειρα, το σύμπαν και η ανθρώπινη βλακεία, αλλά για το σύμπαν δεν είμαι εντελώς σίγουρος

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

  1. ARDUINO GSM ΒΟΗΘΕΙΑ ΜΕ ΚΩΔΙΚΑ
    By keap in forum Μικροελεγκτές
    Απαντήσεις: 46
    Τελευταίο Μήνυμα: 29-06-18, 11:16
  2. arduino bug σε κωδικα...βοηθεια
    By gourtz in forum Μικροελεγκτές
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 09-02-17, 16:11
  3. βοηθεια με κωδικα arduino
    By krithisg in forum Μικροελεγκτές
    Απαντήσεις: 4
    Τελευταίο Μήνυμα: 10-03-15, 14:20
  4. mplab βοηθεια
    By thanasis 1 in forum Μικροελεγκτές
    Απαντήσεις: 8
    Τελευταίο Μήνυμα: 21-06-12, 19:03

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

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