CCS C İLE PIC PROGRAMLAMA DERS-3-

Slides:



Advertisements
Benzer bir sunumlar
Hazırlayan ve Sunan Ali Yasin Çakılcı HUNROBOTX
Advertisements

PLC.
ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
OP-AMP PWM.
BİLGİSAYAR PROGRAMCILIĞI
Kasalar Kasanın içinde anakart takma tepsisi, güç kaynağı yuvası, birkaç tane 5.25" ve 3.5"luk yuvalar -ki buralara sabit disk ve CD-ROM sürücü gibi aygıtlar.
Ali AKMAN Reset, WDT, Basic Timer, Timer-A BİL325  C Ders - 6.
Bölüm I Temel Kavramlar
Ders Adı: Sayısal Elektronik
İletişim Lab. Deney 2 Transfer fonksiyonu, birim dürtü cevabı, frekans cevabı ve filtreleme 19 Ekim 2011.
DC-AC DÖNÜŞTÜRÜCÜLER / İNVERTERLER
ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama
MikroC ile PIC Programlama
ORT – 104 Hoş Geldiniz.
HABERŞLEŞMENİN TEMELLERİ
5. EGITIM Mikrodenetleyiciler PIC16F628 – PIC16F877
16F628 TANIMLAMA KISMI Devrenizi çalıştırmak için 16F628 mikrodenetleyicisini programlarken kullanacağınız tanımlama kısmı verilmiştir. Defterinize not.
ARDUINO DİJİTAL PİN KONTROLÜ
ARDUINO.
Timer 1 16bit (65535) Programlanabilir dahili ve harici saat kaynağı
Bölüm 5: Osiloskop ile Sinüs, Üçgen ve Kare Dalga Analizi
CEIT 101 Teorik Emrah Soykan - Konu 5 -.
17 Aralık ‘08 Onur Zeybek Projenin Amacı Herhangi bir sensordan (sıcaklık, nem, hareket, ışık, ses vs.) okunan değerin anlık ve grafiksel.
Ece Olcay Güneş & S. Berna Örs
ANALOG/SAYISAL ÇEVİRİM
KESİRLERİ TANIYORUM Kesir nedir? Kesir çeşitleri
ARDUINO RÖLE KONTROLÜ.
DERS 9 PIC 16F84 PROGRAMLAMA.
Bölüm 1: Laboratuvarda Kullanılacak Aletlerin Tanıtımı
Bilişim Teknolojileri Öğretmeni İsmail ÖZTÜRK
LD/LDI LD X0 LDI X0 X0 Y0 X0 Y1 Temel Komutlar
6. ADC (Analog to Digital Conversion):
MANTIKSAL KAPILAR.
SAYI SİSTEMLERİ EĞİTİM ÖĞRETİM YILI ÖZEL MOSB ATL VE AML
Dijital Çıkış Mantığı.
CCS C İLE PİC PROGRAMLAMA DERS -1-
Mikrodenetleyiciler.
CCS C İLE PIC PROGRAMLAMA DERS-2-
CCS C İLE PIC PROGRAMLAMA DERS-4-
ARDUINO DİJİTAL PİN KONTROLÜ
OTO
Bileşik Mantık Devreleri (Combinational Logic)
SAYISAL DEVRELERE GİRİŞ ANALOG VE SAYISAL KAVRAMLARI (ANALOG AND DIGITAL) Sakarya Üniversitesi.
BASYS KARTININ TANITIMI. KARTIN GÖRÜNÜMÜ KARTIN ÖZELLİKLERİ 100,000 lojik kapılı Xilinx Spartan 3E FPGA; JTAG programlama bağlantı noktası FPGA biçimlendirme.
Mekatronik Mühendisliği
Mikrodenetleyiciler. M IKROIŞLEMCI N EDIR ? Mikrodenetleyiciler ve mikroişlemciler transistörlerden oluşmakta ve sadece 1-0 değerleriyle işlem yapmaktadır.
PWM (Pulse Width Modulation- Sinyal Genişlik Modülasyonu)
BMET 262 Sayısal İşaret İşleme.
C Programlama Dili Bilgisayar Mühendisliği.
ARDUİNO Arduino Eğitimleri Bölüm 6 Analog Giriş – Çıkış İşlemleri
DERS 9 PIC 16F84 PROGRAMLAMA.
Ders Adı: Sayısal Elektronik
DERS 10 PIC 16F84 ile ZAMAN GECİKME DÖNGÜLERİ
Sayıcı Entegreleri Prof. Dr. Hüseyin EKİZ.
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
MİkroİŞlemcİler ve programlanmasI Mekatronik Mühendisliği Bölümü
BLOK ŞEMALAR: Bir blok şema örneği:
MİkroİŞlemcİler ve programlanmasI Mekatronik Mühendisliği Bölümü
MİkroİŞlemcİler ve programlanmasI Mekatronik Mühendisliği Bölümü
DERS 1 Gömülü Sistemlere Giriş
Display (7 Sengment Display) Uygulamaları SİSTEM KONTROL UYGULAMALARI
Ders 6 Atmega328P Mikrodeneyleyicisi
ARDUİNO Arduino Eğitimleri Bölüm 6 Analog Giriş – Çıkış İşlemleri
GAZİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
Arduino Eğitimleri Bölüm 5 Dijital Giriş – Çıkış İşlemleri
Konu: EĞİTİM AMAÇLI BLDC MOTOR HIZININ PID KONTROLÜ
Ders Adı: Sayısal Elektronik
PROJEKTÖR.
Bilişim Teknolojileri Öğrt.
MİkroİŞlemcİler ve programlanmasI Mekatronik Mühendisliği Bölümü
Sunum transkripti:

CCS C İLE PIC PROGRAMLAMA DERS-3-

CCP MODÜLÜ VE PWM İŞLEMLERİ

CCP BİRİMİNE GENEL BAKIŞ CCP birimi, 3 değişik modül içeren bir birimdir. Bu modüller Capture(yakalama), Compare(karşılaştırma) ve PWM(pals genişlik modülasyonu)dir.

PWM MODU CCP biriminin PWM modu, istenen CCPx ucundan istenen görev çevrimine (duty cycle –doluluk oranı) sahip PWM sinyali elde etmek için kullanılır. PWM birimi Timer2 zamanlayıcısını kullanır. PWM olarak kullanılacak pinler çıkış olarak yönlendirilmelidir. PWM sinyali; denetleyici osilatör frekansı, Timer2 zamanlayıcı/sayıcı biriminin PR2(Periyot) değeri ve bölme oranı değeri ile belirlenir. TPWM=Tkomut x (PR2+1) x (TMR2 bölme oranı)

PWM dalga şeklinde görüldüğü gibi PWM sinyalin bir görev çevrimi –doluluk oranı- (duty cycle) bölümü vardır. Bu bölüm PWM sinyalinde lojik-1(high) olan süredir. Bu görev çevrimi PWM periyodundan uzun olamaz. PWM en fazla 10 bitlik bir değer alabilir.

Örnek: #use delay (clock=4000000) setup_timer_2(T2_DIV_BY_4,120,1); fkomut=4Mhz/4=1Mhz TPWM=Tkomut x (PR2+1) x (TMR2 bölme oranı) =1/1000000hz x (120+1) x 4 = 0.000484 sn

SET_PWMX_DUTY() FONKSİYONU PWM modunda oluşturulan PWM sinyalinin görev çevrimi süresini (duty cycle) belirlemeye yarayan fonksiyondur. Fonksiyonda «değer» kısmına 8 veya 10 bitlik sabit veya değişken yazılabilir. «değer» 8 bitlik kullanılırsa 4 ile çarpılır. Örnek: setup_timer_2(T2_DIV_BY_4,120,1); // Timer2 ayarları yapılıyor. Yukarıdaki örnekde PR2 değeri yani periyot değeri 120 olarak belirlenmiştir. Bu nedenle PWM sinyalinin görev çevrimi (duty cycle) süresi belirlenirken kullanılan fonksiyona 120’den fazla değer girilmemelidir. Yukarıda verilen örnekteki PR2=120 değerine göre aşağıdaki durumları verebiliriz. set_pwm1_duty(30); // %25 görev çevrimi set_pwm1_duty(60); // %50 görev çevrimi set_pwm1_duty(90); // %75 görev çevrimi set_pwm1_duty(120); // % 100 görev çevrimi

SETUP_CCPX() FONKSİYONU Bu fonksiyon ile PIC donanımı içinde bulunan(her modelde yoktur) CCP modülü ile ilgili ayarlamaları yapar. setup_ccp1(mod); , setup_ccp2(mod); … CCP modülü ister Capture, ister Compare, isterse PWM modunda çalıştırılır. Fonksiyondaki «mod» kısmına sabit tanımlamalar yazılır. Fonksiyondaki x kısmına kullanılan CCP modülü birimi numarası yazılır. CCP birimini devre dışı bırakmak için; CCP_OFF = CCP birimi devre dışı Capture Mode; Compare Mode; PWM Mode; CCP_PWM = PWM modunu aç.

PWM SİNYALİNİN OSİLOSKOP İLE GÖZLENMESİ

15 DAKİKA ARA ZAMANI …

ANALOG/DİJİTAL ÇEVİRİCİ MODÜLÜ İŞLEMLERİ

A/D MODÜLÜ Doğada doğal olarak bulunan tüm sistemler analog düzendedir. Kullandığımız mikrodenetleyiciler ise dijital sistemlerdir. Bu nedenle dış dünya ile iletişim kurmak ve dış dünyadan veri almak için bu iki sistemin bir şekilde birbirini anlaması gereklidir. Bu iş için doğada bulunan analog sinyallerin(ısı, ışık, ses, nem vb.) dijital sistemlerin anlayacağı dijital sinyallere çevrilmesi gereklidir. Bu işlem için ADC(Analog Digital Converter) devreleri ve entegreleri kullanılmaktadır.

Bir ADC sinyali 10 bitlik çözünürlüğe sahiptir Bir ADC sinyali 10 bitlik çözünürlüğe sahiptir. Yani bir ADC sinyali 210 =1024 farklı parçaya bölünebilir. ADC entegrelerinde analog sinyali dijitale çevirirken kullanılan Vref(+) ve Vref(-) uçları vardır. Bu uçlar sinyalin üst ve alt aralıklarını belirlemek için kullanılır.

SETUP_ADC() FONKSİYONU Bu fonksiyon ile A/D biriminin mod ayarı yapılır. ADC’nin kapalı olup olmayacağı, ADC frekansı olarak mikrodenetleyicinin kendi frekansını mı? yoksa dışarıdan bir giriş frekansını mı? kullanacağını, eğer kendi frekansı kullanılacaksa bu frekansı kaça böleceğini belirlemek için kullanılır. Kullanılacak «mod» seçenekleri mikrodenetleyici modeline göre değişebilir, bunları denetleyicinin tanıtım dosyasında(16f876a.h) bulabilirsiniz. setup_adc(mod); setup_adc(ADC_OFF); // ADC biriminin kullanılmayacağını belirtir. setup_adc(ADC_CLOCK_INTERNAL); //saat sinyalinin içerdeki osilatör //olduğunu belirtir. setup_adc(ADC_CLOCK_DIV_2); //ADC çalışma frekansı fADC = fOSC/2 setup_adc(ADC_CLOCK_DIV_8); //ADC çalışma frekansı fADC = fOSC/8 setup_adc(ADC_CLOCK_DIV_32); //ADC çalışma frekansı fADC = fOSC/32

SETUP_ADC_PORTS() Bu fonksiyonla denetleyicideki analog pinlerin hangilerinin aktif edileceği belirlenir. Bu pinler denetleyicinin modeline göre değişir ve başlık dosyasında(16f876a.h) bulunabilir. setup_adc_ports(sabit tanım); Örnek: setup_adc_ports(ALL_ANALOG);

SET_ADC_CHANNEL() FONKSİYONU Analog-Dijital çevrim yapılacak kanal seçimini yapan fonksiyondur. Analog sinyali dijital sinyale çevir komutu geldiğinde mikro denetleyicinin hangi girişteki(kabaldaki) analog sinyali dijital bilgiye çevireceğini bilmesi gerekir. set_adc_channel(kanal); Bu fonksiyonda kanal kısmına 0,1,2… diye kanal numaraları yazılır. Her numara kullanılan mikrodenetleyicinin bilgi sayfalarında(data sheet) pin diyagramı kısmında (AN0, AN1,AN2,… diye) görülebilir.

READ_ADC() FONKSİYONU Bu fonksiyon belirtilen kanaldan alınan sinyalin dijital bilgi karşılığını okur ve o değerle geri döner. Önceden anlatılan «setup_adc(), setup_adc_ports(), set_adc_channel()» fonksiyonlarının önceden tanımlanması gerekmektedir. Değişken ismi = read_adc(); setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(ALL_ANALOG); set_adc_channel(1); bilgi=read_adc();

PWM SİNYALİ İLE ANALOG VERİ OKUMA

BİZİ DİNLEDİĞİNİZ İÇİN TEŞEKKÜR EDERİZ  BU SLAYT HAZIRLANIRKEN SERDAR ÇİÇEK’İN CCS C İLE PIC PROGRAMLAMA KİTABINDAN FAYDALANILMIŞTIR.