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

Θέμα: Προγραμματισμός DsPIC

  1. #1
    Μέλος Το avatar του χρήστη nio-4-
    Όνομα
    Γιάννης
    Εγγραφή
    Feb 2008
    Περιοχή
    Σέρρες
    Μηνύματα
    1.277

    Προεπιλογή Προγραμματισμός DsPIC

    Καλησπερα παιδια,

    ανοιγω ενα θέμα, ελπιζω να μην υπάρχει παρόμοιο, για τον προγραμματισμό μικροελεγκτών PIC σειράς DsPIC.

    θα ήθελα να προγραμματίσω τον μικροελεγκτηDsPIC30FXXXX. Εχω εγκαταστήσει στον υπολογιστη το MPLAB X IDE και τον XC16 compiler. Ετσι ώστε να προγραμματίσω σε γλώσσα C.

    θα θελα να συζητήσουμε εδω ανεβάζοντας καποια στανταρ configuration bits και αλλων λειτουργιών.

    εγω δει καποια tutorias, projects αλλα θα ηθελα να επιβεβαιώσω τα εξής:

    1. κατα τον προγραμματισμο των configuration bits του χρονισμου λενε οτι εξωτερικος κρσταλλος ειναι για ακριβεια , αν βαλω εξωτερικο και τον διαιρεσω με PPL x4 θα έχω προβλημα στην ακρίβεια? και πως το γράφω?

    Κώδικας:
    #define _XT_PPL4_FREQ 40000000 //40ΜΗz = 25us clock period
    στο αρχειo *.h

    και πρεπει να το γράψω και στο αρχειο main.c? και πως?

    0 Not allowed! Not allowed!

  2. #2
    Μέλος Το avatar του χρήστη Fubar.gr
    Όνομα
    Γιάννης
    Εγγραφή
    Jul 2016
    Περιοχή
    Αθήνα
    Μηνύματα
    46

    Προεπιλογή

    Τα configuration bits μπορείς να τα βάλεις κατευθείαν μέσα στο κυρίως κώδικα σου (συνήθως main.c).

    Παρόλα αυτά, συνηθίζεται να φτιάχνεται ένα header file οπου να μπαίνουν τα configuration bits και στη συνέχεια να το καλείς μέσα στον κυρίως κώδικα με την εντολή #include "header.h"
    Προσοχή, το όνομα του αρχείου σε " " και όχι < > γιατι είναι τοπικό αρχείο του project και όχι universal του compiler.

    Με αυτό τον τρόπο και ο κώδικας στο main.c φαίνεται πιό καθαρός, αλλά μπορούμε και να έχουμε πολλά διαφορετικά configuration files, πχ header1, header2 κτλ. και απλά να τα επιλέγουμε κάθε φορά με την εντολή include αντί να καθόμαστε να ξαναγράφουμε με το χέρι.

    Για να δείς όλα τα configuration bits του μικροελεγκτή που έχεις επιλέξει για το project θα πάς στο Window, PIC Memory Views, Configuration Bits

    Εκεί βγάζει όλες τις πιθανές επιλογές σε drop down menu και με περιγραφή του τί κάνει η καθε μία. Στη συνέχεια πατάς απο κάτω το κουμπί Generate Code και θα σου βγάλει ετοιμο τον κώδικα για να τον κάνεις copy-paste στο header.h

    Απο κεί και πέρα δέν έχω δουλέψει κάποιο PIC με ενσωματωμένο PLL, αλλά έχω την εντύπωση οτι για να ρυθμιστεί σωστά πρέπει να ορίσεις τιμές και σε κάποιο register εκτός απο τα configuration bits.

    1 Not allowed! Not allowed!

  3. Ένα μέλος ευχαρίστησε τον Fubar.gr για αυτό το χρήσιμο μήνυμα:

    nio-4- (23-03-17)

  4. #3
    Μέλος Το avatar του χρήστη nio-4-
    Όνομα
    Γιάννης
    Εγγραφή
    Feb 2008
    Περιοχή
    Σέρρες
    Μηνύματα
    1.277

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από Fubar.gr Εμφάνιση μηνυμάτων
    Τα configuration bits μπορείς να τα βάλεις κατευθείαν μέσα στο κυρίως κώδικα σου (συνήθως main.c).

    Παρόλα αυτά, συνηθίζεται να φτιάχνεται ένα header file οπου να μπαίνουν τα configuration bits και στη συνέχεια να το καλείς μέσα στον κυρίως κώδικα με την εντολή #include "header.h"
    Προσοχή, το όνομα του αρχείου σε " " και όχι < > γιατι είναι τοπικό αρχείο του project και όχι universal του compiler.

    Με αυτό τον τρόπο και ο κώδικας στο main.c φαίνεται πιό καθαρός, αλλά μπορούμε και να έχουμε πολλά διαφορετικά configuration files, πχ header1, header2 κτλ. και απλά να τα επιλέγουμε κάθε φορά με την εντολή include αντί να καθόμαστε να ξαναγράφουμε με το χέρι.

    Για να δείς όλα τα configuration bits του μικροελεγκτή που έχεις επιλέξει για το project θα πάς στο Window, PIC Memory Views, Configuration Bits

    Εκεί βγάζει όλες τις πιθανές επιλογές σε drop down menu και με περιγραφή του τί κάνει η καθε μία. Στη συνέχεια πατάς απο κάτω το κουμπί Generate Code και θα σου βγάλει ετοιμο τον κώδικα για να τον κάνεις copy-paste στο header.h

    Απο κεί και πέρα δέν έχω δουλέψει κάποιο PIC με ενσωματωμένο PLL, αλλά έχω την εντύπωση οτι για να ρυθμιστεί σωστά πρέπει να ορίσεις τιμές και σε κάποιο register εκτός απο τα configuration bits.
    ευχαριστω για την παντηση,

    εχω δει πολλα tutorial που αναφερουν αυτα που ειπες και τα οποία τα έκανα.
    το θέμα είναι αν πρεπει να ρυθμισω κατι αλλο οπως το Low voltage ..... για να μην καη ο μικροελεγκτης.
    εχω προγραμματίει πολλους PIC 16F ομως αλλα πριν χρονια και φυσικα ολα αλλαζουν αλλα τα βασικα είναι ιδια οπως αυτο το low voltage .... το οποίο πρεπει να είναι disabled.

    παραθέτω τα configuration bits οπως τα μετέτρεψε το πρόγραμμα

    Κώδικας:
    // DSPIC30F4013 Configuration Bit Settings
    
    // 'C' source line config statements
    
    // FOSC
    #pragma config FOSFPR = XT_PLL4         // Oscillator (XT w/PLL 4x)
    #pragma config FCKSMEN = CSW_FSCM_OFF   // Clock Switching and Monitor (Sw Disabled, Mon Disabled)
    
    // FWDT
    #pragma config FWPSB = WDTPSB_16        // WDT Prescaler B (1:16)
    #pragma config FWPSA = WDTPSA_512       // WDT Prescaler A (1:512)
    #pragma config WDT = WDT_OFF            // Watchdog Timer (Disabled)
    
    // FBORPOR
    #pragma config FPWRT = PWRT_4           // POR Timer Value (4ms)
    #pragma config BODENV = BORV20          // Brown Out Voltage (Reserved)
    #pragma config BOREN = PBOR_ON          // PBOR Enable (Enabled)
    #pragma config MCLRE = MCLR_EN          // Master Clear Enable (Enabled)
    
    // FGS
    #pragma config GWRP = GWRP_OFF          // General Code Segment Write Protect (Disabled)
    #pragma config GCP = CODE_PROT_OFF      // General Segment Code Protection (Disabled)
    
    // FICD
    #pragma config ICS = ICS_PGD            // Comm Channel Select (Use PGC/EMUC and PGD/EMUD)
    
    // #pragma config statements should precede project file includes.
    // Use project enums instead of #define for ON and OFF.
    
    #include <xc.h>
    εδω λεει ενα tutorial οτι πρεπει να προσθέσουμε την ταχύτητα κρυστάλλου

    Κώδικας:
    #define _XT_PPL4_FREQ 40000000
    Στον κυρίως κώδικα βάζεις τον κρύσταλλο και την την τιμη του, παραθέτω όλες τις μορφές που βρηκα:

    Κώδικας:
    _FOSC(CSW_FSCM_OFF & XT_PLL4); //10 MHz External crystal, 4x PLL enabled
    ή

    Κώδικας:
    #define _XT_PPL4_FREQ 40000000
    παραθέτω επισης ενα πολυ ενημερωμενη ιστοσελιδα ελπιζω να σας βοηθησει να μου πειτε κατι ευκολα χωρις να ζαλιζεσστε πολυ

    http://www.studentcompanion.net/en/mplab-code-configurator/

    Eίναι σωστές όλες δεδομένου οτι θέλω 10ΜHz external osc x4 PPL?
    οταν βάζω, εσωτερικο , PPL Εχω πρόβλημα? γιατι στα datasheet λέει οτι οταν βαζω internal osc οπως και το PPL (ελπίζω μόνο να διαιρει την εξωτερικη συχνότητα) χάνω σε αρίβεια, δεν είναι ακριβης ο εσωτερικος ταλαντωτής.

    0 Not allowed! Not allowed!

  5. #4
    Μέλος Το avatar του χρήστη nio-4-
    Όνομα
    Γιάννης
    Εγγραφή
    Feb 2008
    Περιοχή
    Σέρρες
    Μηνύματα
    1.277

    Προεπιλογή

    αν μπορει καποιος να απαντησει σε ενα θεμα συδεσμολογίας...


    συνδεντας το σημα 0V-5V στην εισοδο του pic λεει οτι καλο θα ηταν να βαλω διοδους προστασιας με πτωση τασης 0,6v οποτε θα μου τρωει τα σηματα 0v- (+0,6) & +4,4v- (+5v) αλλα και αντιστασεις προστασίας να βαλω παλι θα υπαρχει πτωση τασης . Εγω όμως θελω οποσδηποτε και αυτα τα σηματα.

    τι να κανω????

    αν βάλω Vref +/- external και παραλληλα ανεβασω το σημα απο τον μεταροπεα LM 10v-15v νομιζω παραπανω δεν μπορω, πάλι θα χανω καποια σήματα

    0 Not allowed! Not allowed!

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

  1. Arduino PWM διαφορά με dsPIC
    By xmaze in forum Μικροελεγκτές
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 20-09-10, 00:43
  2. Προγραμματιστής για dsPIC
    By GeorgeK in forum Μικροελεγκτές
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 07-06-07, 18:35
  3. dsPIC vs PIC...
    By Lykos1986 in forum Μικροελεγκτές
    Απαντήσεις: 0
    Τελευταίο Μήνυμα: 20-11-05, 11:52

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

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