Mikroçip Teknolojisinden gelen plastik mikro kontroller sayısız gömülü sistemler – otomotiv kontrolörlerinden ve tıbbi cihazlardan hobi robotlara ve akıllı ev aletlerine kadar. Düşük güç tüketimi, güvenilir periferiler ve geniş bir gelişim araçları ekosistemi, onları gelişmiş debugging tekniklerine kadar her şeyi kapsayan bir programda, MPLAB XAllenity Çevresi (IDE), kodlama, derleme, programlama ve debugging.
MPLAB X Neden?
MPLAB X, eski MPLAB IDE'ye dönüştürülüyor ve proje yönetimi için bir araya gelen modern, çapraz platform ortamı sunuyor. Tüm Microchip PIC, dsPIC ve SAM mikro kontrolcü ailelerinizi destekler, MPLAB XC Compiler (C ve C++ desteği) ile sorunsuz bir şekilde entegre eder ve proje yönetimi, kod düzenleme, simülasyon ve donanım debugging için birleşik bir arayüz sunar. İlk LED diskinizi veya deneyimli bir geliştirici ailenizi, ihtiyaçlarınızı karşılamak için çok katmanlı bir çalışma ile birleştirir.
Önlemler ve İlk Kurulum
Koda dalmadan önce, gerekli donanım ve yazılım bileşenlerine sahip olduğunuzu onaylayın:
- [FONT:0] Uygun bir PIC mikrokontroller[Dönetici:0])[Dönetici:0)))))))) - PIC16F877A, PIC18F4520 veya PIC32 ailelerinden herhangi bir cihaz, hedef cihazınızın MPLAB X tarafından desteklenmediğini.
- [FONT:0]Bir bilgisayar desteklenen bir işletim sistemi [Döntilmiş: 1) Windows 10/11, Mac 10.15+ veya modern bir Linux dağıtım (Ubuntu, Fedora, vs.) MPLAB X gerçekten çapraz platformdur.
- [FONT=0)MPLAB X IDE[[[Dönetici: 1 ) - resmi Microchip web sitesinden en son sürümü indirin. OS için uygun yükleme sihirbazını seçin ve yükleme sihirbazını takip edin.
- [FONT:0]Bir programcı /debugger aracı – Microchip's PICkit 4, ICD 5 veya MPLAB Snap ortak seçeneklerdir.
- [FONT=0]Bir uyumlu derleyici[[Dönetici: 8-bit PICs için MPLAB XC8, 16-bit PIC /dsPIC için 16-bit PIC/dsPIC veya XC32 için 32-bit / SAM için ücretsiz baskılar tamamen işlevsel ve yeterlidir.
- [0]Bir ekmek dolabı, LED, direnççiler ve bir güç tedariki[Dönetici: 1 ) - basit test devreleri oluşturmak için.
IDE ve derleyiciyi kurduktan sonra, MPLAB X başlatıp, araç zincirinizin tespit edildiğini onaylayın. UnderurFLT:0)Tools > Seçenekleri > Gömülü > Compiler Family), Kombinasyon sürümlerini görmeniz gerekir.Eğer bir derleme sürüm eksikse, IDE'nin kurulum kılavuzuna göre manuel olarak ayarlanır.
MPLAB X IDE Interface'i anlamak
MPLAB X çalışma alanı, istenen olarak yeniden düzenlenebilir birkaç paniğe bölünmüştür:
- [FONT=0]Projeler Pencere[[Dönemli:0][Dönemli projeler, kaynak dosyaları, başlıklar ve kütüphaneler.
- [FONTor Pencere[[[DÜT:1)[[Üye Olmayanlar İçindeki İlk Kod editörü, kod katlanarak ve akıllı tamamlanma (C ve assembly için)
- [FONT=0)Output Pencere[[DÜT:1] - sonuçlar, hata mesajları ve derleyici uyarılar oluşturur.
- [FONT=0)Debugging Windows[[Dönetici:0)[Dönetici izleme, Call Stack ve Disassembly penceresi dahil olmak üzere, takip eden pencereleri aktif olarak görünür.
- [FONT:0]Navigator[[Dönetici: 1) - sınıfların, işlevlerin ve makroların yapısal bir bakış açısı sağlar (özellikle daha büyük projeler için yararlı).
Bu panes ile ilgili olarak, iş alanı düzeninizi büyük ölçüde hızlandıracaktır. Ayrıca farklı proje türleri için özel çalışma alanları da kurtarabilirsiniz.
Yeni Bir Proje Yaratmak
Yeni bir Yazılım projesine başlamak için:
- <0|0|File > Yeni Proje veya basın |Ctrl+Shift+N) (Windows/Linux / Windows) / www.Cmd+Shift+N)
- [FONT=0)Mikroçinin adı verilen bir başka nokta ise, aşağıdaki gibi, aşağıdaki gibi bir şekilde kullanılmaktadır.
- Ekranda:0) Cihazın [Dönetici:0) Seçilmesi[Dönetici:0) Sayfa, belirli PIC16F877A) filtre alanına yazın ve cihazınızdan listeden seçmeyin.Projeniz belirli bir pin sayıyı hedeflerseniz paket seçeneklerine dikkat edin.
- In theFLT:0) Tool[DÜDÜDÜDÜDÜDÜDÜSÜSÜSÜSÜSÜSÜSÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ
- [FONT=0) Compiler) seçilir, uygun derleyiciyi seçin (örneğin, XC8 8-bit PIC için). Eğer sadece bir derleyici kurulsa, önceden seçilir.
- Son olarak, projenize bir isim verin ve disk üzerinde bir yer belirtin. ClickETHFLT:0)Finish) projesi oluşturmak için.
IDE boş bir şekilde ortaya çıkar:0) Dosya (Eğer C dili seçtiyseniz) ve gerekli yapılandırma dosyaları. AurFLT:0)Configuration Bits) dialog otomatik olarak görünebilir, oscillator tipini ayarlamanıza izin verir ve diğer cihaz yapılandırma dosyalarının sabit işlem için kritik olduğunu belirtir - cihaz verileri tabloyu referans olarak belirtir.
Proje ve Cihazı Yeniden yapılandırın
Kod yazmadan önce, proje ayarlarınız donanımınızı eşleştir.Proje pencerede yer alan projeyi doğru tıkla ve aşağıdakiler için aşağıdakiler için aşağıdakiler için aşağıdakiler için aşağıdakiler için aşağıdakiler için tıklayınız.Properties[DD:0).
- [FONT=0)Compiler Seçenekleri) - optimizasyon seviyesini ayarlar (default özgür derleyiciler için ücretsizdir, ancak -O1, -O2, vb. lisanslı bir sürüm kullanırken.
- [FONT=0)Device Yapılandırma[[Dönetici:0))[[[FONT=0)))))))[[[[FONT=0))))Device Yapılandırma[[[[[[[FONT=0)))))))PKKAT (C) ve diğer birçok geliştirici, bir dosya veya satırda kullanılabilir.
- [FONT=0)Memory Model[[[DDDDDDDDDDD 1) - 8-bit PIC için büyük veya küçük kod modelini seçebilirsiniz; varsayılan çoğu proje için iyidir.
- [FONT:0]Debugging[[[Dönetici:0) – bir donanım debugger kullanarak, debug aracının düzgün bir şekilde seçilip, debug seçeneklerinin (gerçek zamanlı değişken güncellemeler gibi) etkinleştirildiği için.
İlk bir proje için, varsayılanlar genellikle kodunuzda osilatör frekansı manuel olarak ayarlarsanız yeterlidir. Ancak, yapılandırma bitlerinin gerçek devreyi eşleştirdiğini her zaman doğrulayın.
Yazı dolaşımı Şirketware: A Practical Örnek
Çoğu yeni başlayanlar bir LED'i kırarak başlar. Aşağıdaki örnek, MPLAB XC8 kullanarak bir PIC C programının temel yapısını gösterir. RB0'da bir LED'e bağlı bir çıktı pin takarak.
#include <xc.h>
#include <stdint.h>
// Configuration bits (example for PIC16F877A)
#pragma config FOSC = XT // External crystal oscillator
#pragma config WDTE = OFF // Watchdog Timer disabled
#pragma config PWRTE = ON // Power‑up Timer enabled
#pragma config BOREN = ON // Brown‑out Reset enabled
#pragma config LVP = OFF // Low‑Voltage Programming disabled
#pragma config CPD = OFF // Data EEPROM write protection off
#pragma config CP = OFF // Flash program memory code protection off
#define _XTAL_FREQ 4000000 // Crystal frequency for __delay_ms()
void main(void) {
// Set RB0 as output
TRISBbits.TRISB0 = 0;
while(1) {
// Toggle the LED
LATBbits.LATB0 = ~LATBbits.LATB0;
__delay_ms(500); // Wait 500 milliseconds
}
}
Bu kodda:
- [[Dört:) kayıtları [[FONTFLT:5) ve [[FONTFLT:6 gibi tanımlayan özel başlıkta çeker.
- [FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=
- [[DÜDÜDÜ: Ücretsizlerin, herhangi bir çağrının doğru zamanlamayı hesaplayabilmesi için tanımlanmalıdır.
- [FONT=) Bir çıkış olarak RB0'ı yapılandırın. port latch ([DÜT:11) doğrudan kullanım ile kıyaslanmış bir güvenli mekanizması sunar.
- Ana döngü her yarı ikinci çıktı durumunu göz ardı etmek, görünür bir bardak yaratmak.
Daha karmaşık projeler için, Microchip'un Peripheral Kütüphanesi (PLIB) veya UART gibi periferiklar için daha yüksek seviyeli API'ler sağlayan yeni Harmony 3 çerçevesi için, ADC ve zamanlayıcılar. Ancak, doğrudan kayıt erişimi (yukarıdaki gibi) düşük seviyeli davranışları anlamak için önemlidir.
Peripherals Beyond GPIO
GPIO ile rahat bir kez, diğer periferikları keşfedin. Örneğin, bir zamanlayıcıyı kullanarak yazılım gecikmelerini kullanarak daha hassas bir zamanlama sağlar ve CPU'nun diğer görevleri gerçekleştirmesine izin verir. XC8 derr, kesinti hizmeti rutinleri için ayrıntılı işlevleri sağlar (ISR).
void __interrupt() timer0_isr(void) {
if (INTCONbits.TMR0IF) {
LATBbits.LATB0 = ~LATBbits.LATB0;
INTCONbits.TMR0IF = 0; // Clear interrupt flag
TMR0 += 130; // Preload timer for 10ms (adjust as needed)
}
}
void main(void) {
TRISBbits.TRISB0 = 0;
// Configure Timer0
OPTION_REGbits.T0CS = 0; // Use internal instruction clock
OPTION_REGbits.PSA = 0; // Assign prescaler to timer0
OPTION_REGbits.PS = 0b111; // Prescaler = 1:256
TMR0 = 130; // Initial value
INTCONbits.TMR0IE = 1; // Enable timer0 interrupt
INTCONbits.GIE = 1; // Enable global interrupts
while(1) {
// Main loop can do other work
}
}
Bu kesintiye dayalı yaklaşım, ana döngünün diğer görevler için ücretsiz kalmasına izin verir, örneğin okuma sensörleri veya seri aracılığıyla iletişim kurma gibi.
Projeyi Tamamlamak
Kodunuzu yazdıktan sonra, onu [[Dönetici:0)Build) düğmesine basarak veya baskılı [[Dönetici:2)F11)) Çıktık.If errors appear, double-up the error message to at the suçlularing line.
- Eksik veya yanlış yapılandırma, bağlantıcının ayrılmış hafıza alanları hakkında şikayet etmesine neden olur.
- Tanımlanmamış semboller (örneğin, unutma)
- Tanımsız bir gecikme işlevi kullanmak (İngilizce).
- Projedeki seçilmiş kısım ve gerçek donanım arasında yanlış bir uyum.
[FONT:0]Temiz ve Yapı[Dönetici:0)[Dönetici:0)) Bir araya gelen, bazı bağlantı elemanlarını çözebilecek olan bir yeniden inşa eden, bir kez daha, [FONT=2} [DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜNCÜDÜDÜDÜDÜDÜNÜDÜDÜDÜNÜDÜNÜDÜNÜDÜNÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜNÜDÜDÜDÜDÜŞÜNÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜNÜDÜDÜDÜDÜDÜDÜDÜDÜDÜNÜDÜNÜDÜDÜNÜDÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜDÜNÜDÜŞÜNÜDÜDÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜN
Cihaz Programlama
Başarılı bir yapı ile, bu adımları takip eden PC mikrokontrolünüze kadar, bu adımları takip edebilirsiniz:
- Programcınıza (PICkit 4, ICD 5, vs.) geliştirme kuruluna veya ekmek dolabına bağlanın: ICSPDAT, ICSPCLK, VD, VSS ve opsiyonel olarak VPP (MCLR) Çift kontrol edin - çoğu programcı 5 V veya 3.3 V tedarik eder, ancak hedef mikro kontrol cihazı maça ihtiyaç duyar.
- MPLAB X, [[DÜSÜSÜSÜSÜSÜSÜSÜSÜSÜSÜSÜSÜSÜSÜSÜSÜŞÜNÜSÜŞÜNÜSÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜye:0)Yap ve Program Cihazı[DÜye Olmayanlar (DÜye Olmayanlar) ve sonra programlama sırasına başlayacaktır.
- Programcının statüsü LED'leri ve Çıktı pencere mesajlarını göz önünde bulundurun. Başarılı bir program “Programlama Tamamı” rapor edecek.
- Güç döngüsü, gemiyi ve beklenen oranda LED bardakları gözlemleyin.
Programlama başarısız olursa, programcının proje özellikleri altında doğru şekilde tespit edildiğini doğrulayın. Ayrıca hedef geriliminin mevcut olduğundan ve ICSP hatlarının müdahale edebilecek diğer devrelerle paylaşılmamasını sağlayın.
MPLAB X ile Debugging
Donanım debugging MPLAB X'in en güçlü özelliklerinden biridir. sadece oscilloskoplara veya LEDlere güvenmek yerine, kod hattınıza, kayıt değerlerinize ve set uç noktalarınıza adım atabilirsiniz.
- [FONT=0)Debug > Debug Main Project[[Dönetici: 1) veya Debug düğmesine tıklayın (bug ikon).
- IDE cihazı bir debug yöneticisi ile programlayacaktır ve sonra ilk satırda 16.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.)
- Debug aracı çubuğunu ([Dönetici:0)) üzerinden ([Dönetici: 1)) veya devam ([Dönemli) veya devam ([Düzdüncü)))) işlemine adım at.
- Açık:0)Watch[Döneticileri eklemek için pencereye tıkılır (örneğin, [[Düzg., 03.03.5), [[Düzg., [[Düzg., 03. Bölüm: 00|S.S.)
- Sol marja bir çizgi numarasına tıklayarak mola noktaları ayarlayın.Bu çizgiye ulaştığında, program durdu ve durumu inceleyebilirsiniz.
Simülasyon modu, donanımın erişilebilir olmadığı zamanlarda da mevcuttur. Simülatör kullanmak için, selecturFLT:0)Simulator[Döneticileri) proje özelliklerindeki araç olarak.The Simulator can provide sensitive cycle count, cut zamanlama, and periferik davranış -hepsi fiziksel donanım olmadan.
Gelişmiş Debugging Teknikleri
Daha karmaşık böcekler için, [[Döneticileri:0)Data Streams veya MPLAB XC32) veya [[Dönetici[Döneticiler) bazı programcılara inşa edilmiş olan [[Döneticileri:) Bu nedenle, normal bir araç olmadan gerçek zamanlı GPIO veya periferik sinyalleri yakalamanıza izin verir. Ek olarak, MPLAB X koşullu bir mola noktaları destekler: bir mola noktası ve bir koşul (örneğin, [[Dönetici).
Çoklu Projeler ve Kütüphaneleri Yönetin
İşiniz büyüdükçe, muhtemelen birden çok ilgili projeye sahip olacaksınız - bir bootloader geliştirme ve uygulama bilgisayarı için başka bir MPLAB X, iş alanı düzeyinde proje yönetimine bağlı olarak, aynı anda birkaç proje açabilir ve "bak" projesi olarak bir araya gelebilirsiniz.
En İyi Uygulamalar ve İpuçları
- [FONT:0]Always datasheet[[Dönler: 1 ) - Her PIC cihazı benzersiz kayıt haritaları, elektrik özellikleri ve periferik quirks. Veri sayfası, yapılandırma seçenekleri ve zamanlama için birincil referansınızdır.
- [[DÜDÜ:0)Use version control[[DÜT:1) – küçük projeler için bile, IMLAB X içinde entegre edilmiş olan kuraklama ve kontrolleri kazaktan kurtarabilirsiniz.
- [FONT:0) Basit başlayın, sonra karmaşıklık ekleyin[Dönetici:0)[Dönetici:0) Basit başlayın, sonra karmaşıklığı ekleyin[Dönetici: 1 ) – her periferik veya iletişim periferilerini kesmek için hareket etmeden önce temel bir LED bardak alın.
- [FONT=0) Kodunuzu tamamen – PICware genellikle kayıt ayarları ve zamanlama varsayımları hakkında yorum yapmak için yıllarca daha sonra muhafaza edilmesi gerekir.
- [FONT:0] Uygun bir şekilde şarj edici kapasitörler – her VD / VSS çiftine yakın 0.1 μF seramik kapasitor yer. Bu, yanlış anlaşılma sırasındaki sorunları ortadan kaldırır.
- [FONT:0] Mikroçip topluluğuna ([Döntme: 1) – [[Dönetici:2) Mikroçip Forumları) aktif ve yararlı mühendislerle dolu.Eğer bir snag vurmadan önce arama yapın.
Becerilerinizi genişletmek
Temel iş akışına hakim olduğunuzda, daha gelişmiş konuları keşfedin:
- [FONT:0)Real-Time İşletim Sistemleri (RTOS))[MTRT:0)[değiştir | kaynağı değiştir] Microchip, multitasking Software etkinleştiren FreeRTOS portları sağlar.
- [FONT=0] XP ve Ethernet yığınları[[Dönetici: 0) – MPLAB X USB cihazı /host ve TCP/IP ağ için çerçeve desteği içeriyor, IoT projeleri için ideal.
- [FONT:0) Ekran algılama[[Dönem: 1) Mikroçip'in m Ekran görüntüsü, dokunmatik düğme ve kaydırıcı uygulamalar için MPLAB X ile entegre eder.
- [FONT=0) Düşük Güç modları[[Dönetici: 1) Uyku, boş ve taşınabilir uygulamalarda pil yaşamı genişletmek için derin uyku modları kullanmayı öğrenin.
Microchip'un resmi belge merkezi, [[0)MPLAB X IDE[DÜT:1) ve [[FONTD:2)MPLAB XC Compiler) sayfaları, her bir araçdaki ayrıntılı bilgiler sunar.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
MPLAB X ile programlamak, basit LED disk örneği ile sizi rahatlatan ve sürekli olarak gömülü endüstride uygulanan becerilerle donatanmış bir süreçtir.Çevreyi anlamak, projeleri doğru şekilde yapılandırmayı öğrenmek, verimli C kodu yazmak ve ustalaştırmak, neredeyse her uygulama için sağlam bir donanım geliştirmek. Basit LED disk örneği ile başlayın, zamanlayıcılarla başlayın ve çok daha karmaşık bir çevresel alanınızı ekleyin.Mevcut kaynakların kullanımı ile tutarlı bir şekilde çalışırsınız.