446 GÖMÜLÜ SİSTEM TASARIMI. Lab 9 UART



Benzer belgeler
Adım Motoru: açıya adım. Şekil 8.2 tekyönlü. Lab 8. Siyah (A) Mavi ( B ) Kırmızı (B)

Sistem Programlama Deney 1

Code Composer Studio İndirilmesi ve Kurulması

Paralel ve Seri İletişim. Asenkron/Senkron İletişim. Şekil 2: İletişim Modları

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

F8914 ZİGBEE RF MODEM İLE MODBUS HABERLEŞME KILAVUZU

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Rezistivite Cihazı Kullanım Klavuzu

Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Biyomedikal Mühendisliği, Bölümü Tel:

HMI (insan makine ara yüzü) EĞİTİM NOTLARI

Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } }

SERNET ET485CAS x2 RS485/RS422 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

Mac OS İşletim Sisteminde MetaTrader4 Kurulumu

ACS790 Programından OZW672 Web Server a tesis diyagramının aktarılması

Mikrokontrolcu Portları {\} /\ Suhap SAHIN

KÖHLER. Okuma Programı Kullanma Klavuzu v 2.86 TEL: TEL: FX: FX:

DENEY-2. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

Mifare Kart Yazıcı/Okuyucu Modül (MFM-200)

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

Programlama Dilleri 1. Ders 4: Diziler

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

LAB 0 : Xilinx ISE Kullanımı

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

MİKROSAY YAZILIM VE BİLGİSAYAR SAN. TİC. A.Ş.

icono Kullanıcı Kılavuzu

XILINX PROGRAMI İLE PROJE HAZIRLANMASI İÇİNDEKİLER

LPC2104 Mikro Denetleyicisini KEIL İle Programlamak

MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK

MY PANEL METER KULLANIM KILAVUZU

BQ Modbus Analog Giriş Kartı 6 Kanal 4 20mA. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

Grove Parmak İzi Okuyucu Sensör ile Arduino Uno

CP1E KM-N2-FLK MODBUS HABERLEŞMESİ

C için tümleşik geliştirme ortamı (IDE) kurulumları

ZTerminal KULLANMA KILAVUZU. yazılımı. USB Terminal

ACS434 kurulum yardımcısı. LMS14 / LMS15 için parametre ve veri dönüştürülmesi için PC yazılımı. Kurlum ve çalıştırma talimatları

ELN1001 BİLGİSAYAR PROGRAMLAMA I

C Konsol Giriş Çıkış Fonksiyonları

BÖLÜM 6 Seri Port Đşlemleri

IFD8520 ADRESLENEBİLİR RS-485/RS-422 İZOLELİ ÇEVİRİCİ KULLANIM KILAVUZU

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

MCR02-AE Ethernet Temassız Kart Okuyucu

SOKKIA LINK PROGRAMI KULLANILARAK SOKKIA ELEKTRONIK TOTAL STATION CIHAZLARINA ( 10K VE 30RK SERILERI) DATA GÖNDERME VE ALMA İŞLEMİ

C Programlama printf() Fonksiyonu

PlayOnMac Dowload System Preference Security&Privacy clickthelocktomakechnages (değişiklik yapmak için kilidi tıklayın) Allow apps downloaded from:

BU CİHAZ BİLGİSAYAR BAĞLANTILI SİSTEM OLMAYIP, BAĞLI OLDUĞU BİLGİSAYAR İLE DEVAMLI İLETİŞİM YAPMAMAKTADIR. Mali Onaylı Yazarkasa

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Deney 4. Gerçek Zamanlı Kesme Uygulamaları

XILINX ISE WEBPACK 14.7 UYGULAMA TUTORIAL

BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ DERSİ

WeldEYE. Kurulum Kılavuzu. İçindekiler

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

Şekil 2.1 : Şekil 2.2 : Şekil 2.3 :

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

BQ Modbus Analog Giriş Kartı 6 Kanal PT100 - PT1000. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

İÇİNDEKİLER 1. KLAVYE KLAVYE RB KLAVYE RBHIGH DİSPLAY... 31

1. TANIMLAR 1.1 Laboratuvarım

XILINX ISE WEBPACK 14.7 UYGULAMA TUTORIAL

Scream! e gelen veri akışlarından bazılarını diğer bir kurum yada bilgisayarla paylaşmak için kullanılabilir.

DENEY 9-A : PIC 16F877 ve LM-35 ile SICAKLIK ÖLÇÜM UYGULAMASI

TL-WPS510U PRINT SERVER KURULUM DÖKÜMANI

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

iotech Ölçüm Sisteminin Bilgisayara Tanıtım Rehberi

Alıcı Devresi; Sinyali şu şekilde modüle ediyoruz;

TRIMBLE DATA TRANSFER VE HESAP. Tüm çıkışlar, EGHAS(Etkileşimli Grafik HArita Sistemi),NETCAD,GEOCAD, KARTOCAD uyumludur.

F2114 İLE VIRTUAL COM PORT (TCP2COM) KILAVUZU

LMS PC aracı ACS420. LMS parametre ayarlarının yapılması için PC yazılımı. Kurlum ve çalıştırma talimatları

Windows Live Mail Programı Kurulumu ve Ayarlanması

ELEKTRONİK BELGE YÖNETİM SİSTEMİ KOORDİNATÖRLÜĞÜ (EBYS KOORDİNATÖRLÜĞÜ) ELEKTRONİK İMZA KURULUM AŞAMALARI VE EBYS PROGRAMI SİSTEM GEREKSİNİMLERİ

Temel Dosya İşlemleri. Kütük Organizasyonu 1

P-TECH RF MODEM MODBUS SERİ HABERLEŞME KILAVUZU

AutoCAD 2011 Kurulumu

Gerekli bağlantıları yapıp, ACS420 V3.03 programını çalıştırınız. Program açıldığında, LMS14 ün içindeki parametrelerin okunmasını bekleyiniz.

MİKROİŞLEMCİLER LABORATUVARI İÇİN PROGRAM DERLEME VE YÜKLEME DOKÜMANI

AYBEY ELEKTRONİK. LiftNet KURULUM KILAVUZU

ZEBEX 107X EL TERMİNALLERİNE FIRMWARE YÜKLEME

ADF Transfer Kılavuzu

C için tümleşik geliştirme ortamı (IDE) kurulumları

Wolvox Kapı Ekranı. AKINSOFT Wolvox Kapı Ekranı Yardım Dosyası. Doküman Versiyon :

JOBCONTROL KURULUMU. 2 numaralı görüntüde kırmızı daire içerisine alınmış kısımda, bilgisayarınızın kaç bit olduğunu görebilirsiniz.

Bilgisayar ile Dijital Devrelerin Haberleşmesi. FT232R ve MAX232 Entegreleri. Çalışma Raporu

DS150E Kullanıcı El Kitabı. Dangerfield June V3.0 Delphi PSS

BÖLÜM 23 TD F8 F4 SHIFT ESC ENTER M1.7 M1.6 M1.5 M1.4 M1.3 M1.2 M1.1 M1.0 F8 F7 F6 F5 F4 F3 F2 F1. Shift + F1

HDD Password Tool. Kullanıcı Elkitabı. Türkçe

INTERNET BAĞLANTISININ KURULMASI İÇİN GEREKLİ AĞ GEÇİDİ AYARLARI

7. Port Programlama. mikroc Dili ile Mikrodenetleyici Programlama Ders Notları -42- Şekil 2.1. Atmega16 mikrodenetleyici pin şeması

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

HSancak Nesne Tabanlı Programlama I Ders Notları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

#ifndef COMPLEX_H #define COMPLEX_H

robotsan idea Kontrol Kartı (idea Board) Kurulum

TOPCON RECEIVER UTILITY (TRU)

OEM ürünleri Sık Sorulan Sorular Ağustos 2014

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

1. Kurulum ve ilk kez çalıştırma

İSTANBUL ECZACI ODASI BİLGİ İŞLEM BİRİMİ

BLGM423 Gömülü Sistem Tasarımı

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

Transkript:

446 GÖMÜLÜ SİSTEM TASARIMI Lab 9 UART 9.1 Amaç Bu laboratuvarda LaunchPad ve bilgisayar arasında seri haberleşme gerçekleştirilecektir. Bunun için TExaSdisplay terminal programı kullanılacaktır. UART0 kullanılarak okunan sayılar ASCII karşılığına dönüştürülecek ve görüntülenecektir. PLL aracılığıyla sistem saatinin ayarlanması (80MHz) yapılacaktır. 9.2 Gerekli Malzeme ve Sistem: Bu lab için Tiva LaunchPad gereklidir. Gerekli Sistem: UART0 a karakter katarları (strings) ve işaretsiz sayı gönderen ve okuyan I/O programları yazılacaktır. Yazacağınız program kullanıcıdan iki tane işaretsiz sayı isteyecek ve sayıların toplamını bulup ekrana yazacaktır. Toplam 0 ile 999 arasında olmalıdır. Eğer değil ise seri porta *** gönderilmelidir. Örnek girdi/çıktı aşağıdadır. Birinci sayiyi giriniz: 2 İkinci sayiyi giriniz: 4 Sayilarin toplami = 6 Birinci sayiyi giriniz: 20 İkinci sayiyi giriniz: 990 Sayilarin toplami = *** Lab 9 39

9.3 Simülasyon: Başlangıç Projesi: // Daniel Valvano // August 3, 2013 /* This example accompanies the book "Embedded Systems: Introduction to ARM Cortex M Microcontrollers", ISBN: 978-1469998749, Jonathan Valvano, copyright (c) 2013 Copyright 2013 by Jonathan W. Valvano, valvano@mail.utexas.edu */ // Bu bağlantı USB derleme kablosunu kullanmaktadır // U0Rx (PA0) PC deki seri porta bağlı // U0Tx (PA1) PC deki seri porta bağlı // // standard ASCII sembolleri #define CR 0x0D #define LF 0x0A #define BS 0x08 #define ESC 0x1B #define SP 0x20 #define DEL 0x7F #include tm4c123gh6pm.h //fonksiyon tanimlari void PLL_Init(void); void UART_Init(void); void UART_KatarGonder (unsigned char []); //karakterleri gonderir void UART_KarakterGonder(unsigned char); //seri porta karakter gonderir unsigned long UART_SayiOku(void); //isaretsiz sayiyi UART tan okur unsigned char UART_KarakterOku(void); void UART_SayiGonder(unsigned long); //isaretsiz sayiyi UART a gonderir void UART_SayiCevir(unsigned long); //isaretsiz sayiyi karakter dizisine cevirir //global degisken unsigned char k_dizi[10]; int main(void){ unsigned long n,m,toplam; PLL_Init(); //PLL baslat UART_Init(); // UART baslat UART_KatarGonder("Sayilarin toplamini bulan program\n"); while(1){ UART_KatarGonder("\n\rBirinci sayiyi giriniz:"); n = UART_SayiOku(); UART_KatarGonder("\n\rikinci sayiyi giriniz:"); m = UART_SayiOku(); UART_KatarGonder("\n\rSayilarin toplami:"); toplam=n+m; UART_SayiGonder(toplam); // sizin fonksiyonuz //------------UART_Init------------ // UART 115200 baud rate icin ( 80 MHz UART saati)ayarlar, // 8 bit bilgi, no parity bits, bir stop biti, FIFOs etkin void UART_Init(void){ SYSCTL_RCGC1_R = SYSCTL_RCGC1_UART0; // UART0 aktif et SYSCTL_RCGC2_R = SYSCTL_RCGC2_GPIOA; // port A aktif et UART0_CTL_R &= ~UART_CTL_UARTEN; // UART pasif Lab 9 40

UART0_IBRD_R = 43; //IBRD=int(80,000,000/(16 * 115200)) =int(43.402778) UART0_FBRD_R = 26; // FBRD = round(0.402778 * 64) = 26 // 8 bit bilgi (no parity bits, bir stop bit, FIFOs) UART0_LCRH_R = (UART_LCRH_WLEN_8 UART_LCRH_FEN); UART0_CTL_R = UART_CTL_UARTEN; // UART etkin GPIO_PORTA_AFSEL_R = 0x03; // alt funct PA1,PA0 icin etkin GPIO_PORTA_DEN_R = 0x03; // PA1,PA0 digital I/O etkin // PA1,PA0 UART0 olarak ayarla GPIO_PORTA_PCTL_R = (GPIO_PORTA_PCTL_R&0xFFFFFF00)+0x00000011; GPIO_PORTA_AMSEL_R &= ~0x03; // PA1,PA0 icin analog pasif //------------UART_KatarGonder------------ // Karakter dizisini UART gonderir // (NULL ulastiginda biter) void UART_KatarGonder(unsigned char buffer[]){ unsigned long i=0; char Karakter; Karakter=buffer[i]; while(karakter!= 0){ UART_KarakterGonder(Karakter); i++; Karakter=buffer[i]; //------------UART_KarakterGonder------------ // ASCII Karakterini (8-bit) seri porta gonderir void UART_KarakterGonder(unsigned char data){ while((uart0_fr_r&uart_fr_txff)!= 0); UART0_DR_R = data; //------------UART_SayiOku------------ // ASCII giris unsigned decimal formatinda kabul eder ve // 32-bit isaretsiz sayiya donusturur // gecerli aralik 0-4294967295 (2^32-1)arasi // Backspace ile girilen son basamak silinebilir unsigned long UART_SayiOku(void){ unsigned long sayi=0, uzunluk=0; char karakter; karakter = UART_KarakterOku(); while(karakter!= CR){ // <enter> girilene kadar kabul et // girilen sayinin elmani (digit), 0-9 arasinda mi? // eger degilse unut ve yansitma (not echoed) if((karakter>='0') && (karakter<='9')) { sayi = 10*sayi+(karakter-'0'); uzunluk++; UART_KarakterGonder(karakter); // eger giris backspace ise, sayi degistirilir ve // backspace ekrana yansitilir else if((karakter==bs) && uzunluk){ nsayi /= 10; uzunluk--; UART_KarakterGonder(karakter); karakter = UART_KarakterOku(); return sayi; // sayi > 4294967295 ise yanlis Lab 9 41

//------------UART_KarakterOku------------ // yeni seri port girisi icin bekler // ASCII karakterini okur unsigned char UART_KarakterOku(void){ while((uart0_fr_r&uart_fr_rxfe)!= 0); return((unsigned char)(uart0_dr_r&0xff)); //-----------------------UART_SayiGonder----------------------- // 32-bit sayiyi isaretsiz decimal formatinda seri porta gonderir // sabit 3 basamakli, sayidan sonra bir bosluk, null bitirir void UART_SayiGonder(unsigned long sonuc){ UART_SayiCevir(sonuc); // Sayiyi karakter dizine cevir ve // k_dizi sinde sakla UART_KatarGonder(k_dizi); // seri porta gonder //-----------------------UART_SayiCevir----------------------- // 32-bit isaretsiz decimal sayiyi karakter dizisine donusturur // donusturme sonucu global degisken k_dizi[10] saklanir // sabit 3 basamakli, sayidan sonra bir bosluk, null bitirir // sayi (toplam) 999'dan buyukse *** verir // Ornek // 4 to " 4 " // 31 to " 31 " // 102 to "102 " // 2210 to "*** " //buna gore fonksiyonu tamamlayiniz void UART_SayiCevir(unsigned long t){ Part a) 1- Project->New uvision Project yeni proje oluşturunuz. Projenize bir isim veriniz. Gelen Select Device for Target penceresinden base\texas Instruments\TM4C123GH6PM seçiniz. Copy startup_tm4c123.s seçeneğine Hayır deyiniz. 2- Project penceresinden Target1\Source Group 1 üzerine sağ tıklayarak Add New Item tıklayınız. Açılan pencerden C File(.c) seçip main ismini veriniz. 3- Başlangıç programını kullanarak programınızı gerekli şartları sağlayacak şekilde tamamlayınız. 4- Project penceresinden Target1\Source Group 1 üzerine sağ tıklayarak Add Existing Files tıklayınız. Açılan pencereden startup_rvmdk.s asembler kaynak dosyasını programınıza ekleyiniz. 5- Project->Options For Target tıklayınız. Debug tabında, Use Simulator seçiniz. Dialog DLL Parameter kısmında -pcm4 yanına dlaunchpaddll yazınız. 6- Projenizi derleyiniz (Project->Build target) 7- UART penceresi görünmez ise View->SerialWindows->UART0 seçiniz. 8- Değişik girdiler girerek programın doğru çalışıp çalışmadığını gözlemleyiniz. Lab 9 42

9.4 Gerçek Sistemde Çalıştırılması: Part a) 1. Projenizi açınız. 2. Project->Options For Target tıklayınız. Debug tabında, Stellaris ICDI seçiniz. 3. Projenizi derleyininiz Project->B Build Target 4. Flash->Download menüsünden object kodu Flash EEPROM download ediniz. 5. Debug->Start/Stop Debugging Session menüsünden programı çalıştırınız. 6. Programı LauchPad te çalıştırmak için TExaSdisplay uygulaması başlatılmalıdır. \Keil\TExaSware\ TExaSdisplay.exe seçerek uygulamyı başlatınız. Bu uygulama mikrodenetleyici ile PC arasındaa seri port haberleşmey yi sağlar. Bunun yerine başka programlarda kullanılabilir. 7. Aşağıdaki iki adımı takip edip gerekli COM port ayarlamasını yapınız. 8. Programı çalıştırmak için COM-> >Open Port seçiniz. 9. LaunchPad deki reset düğmesine basınız. Programın çalışıp çalışmadığını test ediniz. Adım 1) Eğer bilgisayarınız birçok COM porta sahipse Aygıt yöneticindenn Stellaris Virtual Serial Port numarasını bulunuz. Lab 9 43

Adım 2) TExaSdisplay programında COM->Setting seçip açılann pencereden COM portu ayarlayınız. 9.5 Kaynaklar: 1- Embedded Systems - Shape The World https://www.edx.org/course/utaustinx/utaustinx-ut-6-01x-embedded-systems-1172 2- http://users..ece.utexas. edu/~valvano/ 3- http://users..ece.utexas. edu/~valvano/volume1/e-book/ Lab 9 44